FoliMesh

3D Asset Packs for Babylon.js

Babylon.js pulls GLB vegetation in through the glTF loader in @babylonjs/loaders: ImportMeshAsync for a specific scene, or LoadAssetContainerAsync when you plan to clone many copies with instantiateModelsToScene. Because every model ships with LOD0–LOD3, chaining lod0.addLODLevel(30, lod1) and addLODLevel(80, lod2) keeps a forest smooth in the browser tab.

Leaves arrive as MASK maps, which Babylon.js resolves into alpha-tested PBRMaterial (MATERIAL_ALPHATEST); the collision mesh stays hidden with isVisible = false for checkCollisions or Havok via PhysicsAggregate. Thousands of trees via thinInstanceAdd with matrices cost one draw call per mesh, while createInstance suits trees that need their own picking. The 8 packs — Temperate Forest, Conifer Forest, Tropical Beach, Savanna & Dry Lands, Desert Kit, Low-Poly Starter, Rocks & Cliffs and the Free Sampler — cover exploration, survival and city-builder scenes.

Using it in Babylon.js

Babylon.js loads GLB through the glTF loader in @babylonjs/loaders: ImportMeshAsync (or SceneLoader.ImportMeshAsync in older code), or LoadAssetContainerAsync when you need many copies via instantiateModelsToScene.

  • LOD: lod0.addLODLevel(30, lod1), addLODLevel(80, lod2) and so on; passing null as the mesh hides the object beyond that distance.
  • Thousands of trees: thin instances (thinInstanceAdd with matrices) render in one draw call per mesh; use regular createInstance when each tree needs its own picking or logic.
  • Leaves: glTF MASK maps to alpha-tested PBRMaterial (MATERIAL_ALPHATEST).
  • Collision mesh: set isVisible = false and use it with checkCollisions or Havok physics (PhysicsAggregate with a MESH shape).

Packs

Same in other styles

Same for other engines