Last updated: 2026-03-23
Build a dense-geometry platform for Godot that makes the engine highly competitive with Nanite for the content classes that matter most in production:
- static opaque world geometry
- photogrammetry
- scanned props
- dense architecture
- heavy instancing
- shadowed high-detail scenes
This is not a "Nanite clone" project. It is a compute-first, streaming-first, hybrid dense-geometry renderer with room for multiple geometry representations over time.
Godot can import dense static assets and render them with:
- automatic clustered LOD
- GPU-driven culling
- crack-free transitions
- bounded memory through streaming
- good shadow performance
- minimal artist-authored LOD work
Add:
- strong foliage workflows
- terrain and landscape integration
- broader material coverage
- more mature streaming and residency
- better tooling and editor iteration
Add:
- deforming and skeletal geometry
- broader platform reach
- stronger RT integration
- production-grade workflows across more content classes
Do not promise these in the first production target:
- full material parity with all Godot
ShaderMaterialusage - transparency-heavy geometry
- skeletal meshes
- VR
- split screen
- web
- mobile
- broad renderer parity across Vulkan, D3D12, and Metal
The real baseline is not "plain meshes." The project must beat or strongly justify itself against:
- stock Godot Forward+
- stock auto mesh LOD
- stock visibility ranges / HLOD
- stock occlusion culling
- high-detail static opaque content
- large instance counts
- dense shadowed scenes
- foliage and aggregate geometry via a hybrid strategy
- future compressed-geometry and procedural-detail workflows
The baseline renderer path will use:
- compute culling
- indirect execution
- visibility buffer or equivalent deferred geometry path
Mesh shaders are an optional acceleration path, not the foundation.
Streaming is not polish. The renderer must be designed around:
- page-sized geometry chunks
- async loading / decode
- bounded GPU memory
- residency scheduling
The system should ultimately support more than one representation:
- clustered explicit geometry for solid assets
- specialized foliage / aggregate geometry paths
- optional procedural resurfacing for selected asset classes
- compressed geometry paths aligned with future RT workflows
Use:
- GDExtension for importer, resources, editor tooling, debug UX, and experiments
- standalone Vulkan for renderer proof and profiling
- engine module or fork for the real integrated runtime renderer unless stock Godot exposes sufficient renderer ownership later
Duration:
- 4 to 6 weeks
Deliverables:
- stock Godot benchmark scenes and numbers
- renderer integration feasibility memo
- architecture decision on
GDExtension-onlyvshybridvsengine module - asset format sketch
- early importer spike
Exit criteria:
- architecture is frozen
- benchmark methodology is frozen
Duration:
- 6 to 10 weeks
Build:
- meshlet generation
- hierarchical simplification
- crack-safe cluster boundaries
- cluster/page packing format
- custom resource format
- fallback mesh generation
- command-line builder and Godot importer integration
Exit criteria:
- dense assets import deterministically
- generated resources pass validation and can be inspected
Duration:
- 10 to 14 weeks
Build:
- Vulkan prototype
- compute-driven instance and cluster culling
- HZB occlusion
- visibility buffer
- constrained PBR material resolve
- shadow pass for virtualized geometry
- residency and page streaming
Exit criteria:
- large static scenes render interactively
- memory stays bounded under camera traversal
Duration:
- 8 to 16 weeks
Build:
VGeoMeshresource- runtime scene integration
- editor and debug visualization
- benchmark harness inside Godot
- shadow and material bridge for the supported v1 subset
Exit criteria:
- a Godot scene uses the runtime path end to end
- benchmark wins are measurable on target scenes
Duration:
- 8 to 12 weeks
Build:
- page scheduler tuning
- import speed improvements
- material and shadow optimization
- vendor-specific profiling and fixes
- content authoring guidance
Exit criteria:
- repeated wins against stock Forward+ on the benchmark suite
Build selectively:
- mesh shader acceleration path
- hybrid foliage / aggregate geometry path
- compressed geometry runtime formats
- procedural resurfacing for specific asset classes
- RT-aware dense geometry path
The project is successful when it can demonstrate all of the following on a public benchmark set:
- Dense static scenes that are materially faster than stock Godot at similar quality.
- No visible cracks or unacceptable LOD popping in supported content.
- Bounded memory use under prolonged camera movement.
- Practical import workflow for dense source assets.
- Shadow behavior that remains usable under heavy geometry density.
- Delivery vehicle mismatch
The largest strategic risk is spending too long on a pure GDExtension runtime path that cannot truly own the render pipeline.
- Material scope explosion
The renderer can fail by trying to support too much material behavior too early.
- Streaming deferred too late
A renderer that culls well but cannot stream well will not be competitive with Nanite in real scenes.
- Shadow work under-scoped
Dense geometry without dense-geometry-aware shadow behavior will feel incomplete immediately.
- Chasing frontier features before the portable core works
Work graphs, mesh nodes, compressed RT paths, and neural techniques are promising, but they must not replace the core roadmap.
- Finalize architecture decisions.
- Build the benchmark suite.
- Build the offline cluster/page pipeline.
- Build the standalone Vulkan renderer.
- Integrate into Godot only after the runtime path is proven.