Roadmap & Status

Easy3D / Guide / Roadmap & Status

This roadmap is intentionally conservative. Easy3D grows only as far as Galaxy Eggbert actually needs it. If a feature is not needed soon, it is not built. Anything not listed here is out of scope until explicitly approved.

Phase 0 — Scaffold done

Phase 1 — Camera helpers done

Phase 2 — Data-side batching and atlas helpers done

Non-rendering, CPU-side data storage — no GPU work, no draw calls.

Phase 3 — CPU-side vertex builders in progress

Turn queued BillboardItem / CubeItem / DebugLine / DebugBox data into vertex/index arrays (CPU-side geometry only) — still no GPU calls, no GraphicsDevice, no shaders.

Phase 4 — CNA renderer adapters in progress

Consume the Phase 3 vertex/index data and actually issue CNA draw calls (GraphicsDevice, BasicEffect, vertex/index buffers). Draw-path decision (made, 2026-07-02): raw VertexBuffer + IndexBuffer + BasicEffect + GraphicsDevice::DrawIndexedPrimitives — the same pattern CNA's own examples/house3d_demo.cpp proves works. SpriteBatch was considered and rejected: it is 2D-only, not usable for cube/billboard geometry.

Phase 5 — Galaxy Eggbert support future

Phase 6 — Optional future no implementation yet

Current build & test status

ConfigurationBuildsTests
Default (headers-only)libeasy3d.a + CNA-free tests + compile-only checks of the CNA-dependent tests/examplebasics, texture_atlas pass
CNA-linked (-DEASY3D_LINK_CNA=ON)SHARP_RUNTIME + backend + CNA + easy3d + camera example + all runnable test executablesbasics, texture_atlas, camera, batches, cube_mesh, billboard_mesh pass

The CubeMeshRenderer/BillboardMeshRenderer tests are compile-checked only, in every configuration — they need a live GraphicsDevice from an open window, which a plain test main() can't produce. See Testing for how the full two-tier test setup works.

Hard limits (do not cross without explicit approval)

No ECS, physics, navigation, networking, editor, asset database, resource cache, model importer, MeshCraft import, plugin system, or PBR renderer. The reasoning is on Design Principles.