FoliMesh

Palms for Bevy

Bevy's glTF pipeline keeps palm placement simple: load the scene with asset_server.load(GltfAssetLabel::Scene(0).from_asset("coconut_palm.glb")) and spawn it through SceneRoot. The set covers five palms — Coconut Palm, Date Palm, Canary Palm, Washingtonia and Fan Palm — each with LOD0–LOD3 meshes you can switch with VisibilityRange start and end margins, using dithered crossfades.

Leaf cards carry glTF alphaMode MASK, which becomes AlphaMode::Mask on StandardMaterial; fronds are double-sided, so back-face culling is disabled. Entities sharing a mesh and material are batched and instanced automatically, so long rows of coconut palms stay cheap. Collision meshes drop straight into Avian or bevy_rapier colliders, and the base pivot seats every trunk on the terrain.

Models
5
Levels of detail
LOD0 – LOD3
Formats
GLB · FBX · OBJ

Using it in Bevy

Bevy loads glTF/GLB through the AssetServer: asset_server.load(GltfAssetLabel::Scene(0).from_asset("tree.glb")), spawned with SceneRoot; individual meshes and materials are addressable by label. FBX and OBJ need third-party crates, so GLB is the format to use.

  • LOD: give the LOD0–LOD3 entities a VisibilityRange (start and end margins) for distance switching with dithered crossfade — Bevy's HLOD mechanism.
  • Leaves: glTF alphaMode MASK becomes AlphaMode::Mask(cutoff) on StandardMaterial, and double-sided materials disable back-face culling.
  • Entities that share a mesh and material are batched and instanced automatically, so many tree copies stay cheap.
  • Collision: Bevy has no built-in physics; build a collider from the collision mesh with Avian or bevy_rapier.

Packs

Other categories

Same in other styles

Same for other engines