Documentation Status
This page is a living record of documentation completeness against the Plume3D engine source. Update this file whenever the engine gains new features or doc pages are added/updated.
Engine version at last review: 2026.1.1
Engine source: Plume3d/Source/Plume3d
Last reviewed: 2026-03-25
API pages — Status
Section titled “API pages — Status”| Page | Status | Notes |
|---|---|---|
/api/engine | Current | Version format updated to Year.Month.Patch (2026.1.1) |
/api/logger | Current | — |
/api/shader | Current | Minimal; shader has only a name property |
/api/mesh | Current | Covers all Mesh methods |
/api/input | Current | Covers keyboard, mouse, gamepad (4 players), touch not explicitly shown |
/api/window | Current | Covers size, fullscreen, design size, scale modes |
/api/graphics | Current | Updated 2026-03-25: added setLights, setShadowMappingEnabled, setShadowBias, setShadowMapSize, setDebugView |
/api/gui | Current | Updated 2026-03-25: expanded from 7 to full API (~100 methods). Bug fixed 2026-03-25: all color parameters corrected to 0–255 (not 0–1); separator last param documented as Bool (not rounding radius); colorPicker return corrected to 0–255; setWindowAlpha stays 0–1. |
/api/audio | Current | Covers global audio, Source 3D |
/api/scene | Current | Updated 2026-03-25: added findNodeById, createCharacterController, createParticleEmitter, createInstancedMesh, findInstancedMesh |
/api/node | Current | — |
/api/camera | Current | — |
/api/light | Current | Updated 2026-03-25: added castsShadows / castsShadows= |
/api/raycast | Current | Covers all Raycast methods and RaycastHit |
/api/config | Current | — |
/api/resource | Current | Covers Resource, BlendResult |
/api/animation | Current | Updated 2026-03-25: added blend layers, crossfade, stopLayer, full AnimationPlayOptions (loop, speed, timeOffset, blendWeight, layer, crossfadeDuration) |
/api/math | Current | — |
/api/physics | New 2026-03-25 | Physics class: forces, impulses, velocities, gravity, pause, raycast, contact events, addStaticBox, addDynamicBox. PhysicsContact described inline. |
/api/character-controller | New 2026-03-25 | CharacterController + CharacterState constants |
/api/instanced-mesh | New 2026-03-25 | InstancedMesh: addInstance, setInstancePosition, setInstanceTransform, GPU instancing (SSBO) |
/api/particles | New 2026-03-25 | ParticleEmitter: play/stop/burst, setPosition/setNormal, setMeshFromNode |
API gaps / not yet documented
Section titled “API gaps / not yet documented”- Touch input —
InputStatesupports up to 8 touch fingers (SDL_FINGER_DOWN/UP/MOTION) but there is no dedicated/api/inputsection for touch beyond thetouchmention. Consider adding touch sub-section when fleshed out in Wren. - BlendResult.classes / BlendResult.configs — Not fully documented (just noted on
/api/resource). These return the list of class names and config paths found in the blend; may want example usage added. - Material textures via Wren — PBR texture handles exist in the C++
PBRMaterialstruct but are not yet exposed to Wren scripts. NoloadTextureAPI exists. Document when wired. - SkeletalAnimation via Wren — The C++ engine has full bone skinning (
ArmatureState,BoneState, GPU bone matrix SSBO), but the Wren API exposes animation only throughAnimationState. Direct bone matrix access is not yet exposed. Document if/when bone override API is added. - Physics constraints — C++ supports Fixed/Point/Hinge/Slider/Cone/SixDOF constraints (
ConstraintSettings), but these are not yet exposed to Wren. NoPhysics.addHingeConstraintetc. Document when added. - Physics shapes beyond box —
sphere,capsule,cylinder,convexHull,meshshapes exist in C++ but onlyaddStaticBoxandaddDynamicBoxare currently Wren-exposed. Document when remaining shapes are wired. - Particle Tier 1 (GPU compute) — The
ParticleTierenum hasGPUandHybridtiers in C++ but only Tier 2 (Jolt physics) is currently wired to Wren. Document when implemented. - Audio reverb/EFX — OpenAL Soft EFX extension is not yet exposed to Wren. No
Audio.setReverbZoneetc. - Coroutines — Not in Wren runtime.
- Save/load — No scene serialisation API.
Example pages — Status
Section titled “Example pages — Status”| Page | App | Status | Notes |
|---|---|---|---|
/examples/plume-triangle | apps/plume_triangle | Current | — |
/examples/aspect-ratio | apps/aspect_ratio_demo | Current | — |
/examples/window-demo | apps/window_demo | Current | — |
/examples/audio-basic | apps/audio_basic | Current | — |
/examples/audio-3d | apps/audio_3d | Current | — |
/examples/audio-player | apps/audio_player | Current | — |
/examples/audio-player-3d | apps/audio_player_3d | Current | — |
/examples/blend-load | apps/blend_load | Current | — |
/examples/physics-simple | apps/physics_simple | New 2026-03-25 | — |
/examples/physics-stack | apps/physics_stack | New 2026-03-25 | — |
/examples/physics-friction | apps/physics_friction | New 2026-03-25 | — |
/examples/physics-constraint-hinge | apps/physics_constraint_hinge | New 2026-03-25 | — |
/examples/physics-particles-debris | apps/physics_particles_debris | New 2026-03-25 | — |
/examples/character-controller | apps/character_controller | New 2026-03-25 | — |
/examples/gui-overview | apps/gui_overview | Current | — |
/examples/gui-input | apps/gui_input | Current | — |
/examples/gui-calculator | apps/gui_calculator | Current | — |
/examples/gui-configurator | apps/gui_configurator | Current | — |
/examples/gui-terminal | apps/gui_terminal | Current | — |
/examples/mesh-lines | apps/mesh_lines | Current | — |
/examples/mesh-points | apps/mesh_points | Current | — |
/examples/mesh-indexed | apps/mesh_indexed | Current | — |
/examples/mesh-draw-range | apps/mesh_draw_range | Current | — |
/examples/mesh-dynamic | apps/mesh_dynamic | Current | — |
/examples/mesh-attributes | apps/mesh_attributes | Current | — |
/examples/instanced-mesh-gpu | apps/instanced_mesh_gpu | New 2026-03-25 | — |
/examples/gui-buttons | apps/gui_buttons | New 2026-03-25 | — |
/examples/gui-chart | apps/gui_chart | New 2026-03-25 | — |
/examples/gui-combo | apps/gui_combo | New 2026-03-25 | — |
/examples/gui-drawing | apps/gui_drawing | New 2026-03-25 | — |
/examples/gui-labels | apps/gui_labels | New 2026-03-25 | — |
/examples/gui-layout | apps/gui_layout | New 2026-03-25 | — |
/examples/gui-menu | apps/gui_menu | New 2026-03-25 | — |
/examples/gui-popup | apps/gui_popup | New 2026-03-25 | — |
/examples/gui-property | apps/gui_property | New 2026-03-25 | — |
/examples/gui-showcase | apps/gui_showcase | New 2026-03-25 | — |
/examples/gui-sliders | apps/gui_sliders | New 2026-03-25 | — |
/examples/gui-theme | apps/gui_theme | New 2026-03-25 | — |
/examples/gui-toggles | apps/gui_toggles | New 2026-03-25 | — |
/examples/gui-tree | apps/gui_tree | New 2026-03-25 | — |
/examples/gui-window | apps/gui_window | New 2026-03-25 | — |
Example apps with no doc page yet
Section titled “Example apps with no doc page yet”| App | Category | Status |
|---|---|---|
apps/low_tide | Game (pre-production) | No game.toml or Wren scripts yet — only a .blend file and a PDF design doc. Document when the game is runnable. |
Other pages — Status
Section titled “Other pages — Status”| Page | Status | Notes |
|---|---|---|
/ (landing page) | Updated 2026-03-25 | Roadmap restructured; Physics/Animation/Particles/Instancing/CharacterController/Shadows moved to “What’s in place”. Vaultis added to Tools table. |
/getting-started | Current | — |
/downloads | Updated 2026-03-25 | Added Vaultis companion tool section |
/blender-addon | Current | Covers install, config path, pipeline, engine load/validate flow |
/configuration | Current | Covers [Physics] section; [Game] and [Window] example provided |
/licensing | Current | — |
/engine-license | Current | Third-party table accurate as of 2026-03-25 |
Engine features not yet reflected anywhere in the docs
Section titled “Engine features not yet reflected anywhere in the docs”| Feature | Location in engine | Doc needed |
|---|---|---|
Wren #!command terminal attribute | wren_engine_module.cpp (EngineHelper) | Covered in GUI Terminal only; could use a dedicated guide |
| Hot-reload | modules/hotreload/ | Mentioned in landing page and getting-started; no dedicated page |
| PhysicsFS virtual filesystem | engine/src/fs_mount.cpp | Not documented; .p3d archive format not described |
| Blender 5.0 Kaitai spec | tools/validate_plume3d_blend_kaitai5/ | Tools page in engine repo covers this; no website page |
| CI/CD (Gitea Actions, Docker) | .gitea/workflows/, docker/ | Dev-only; no website page needed |
| Wren syntax highlighting bundle | tools/Wren.tmbundle/ | Could note in Getting Started as an optional setup step |
PLUME3D_BLEND_DUMP=file.txt env var | Engine runtime | Mentioned in Blend Load example; could be a debug guide |
| CMakePresets.json (24 presets) | Root CMakePresets.json | Engine BUILDING.md covers this; no website page needed |
Vaultis
Section titled “Vaultis”Vaultis is now referenced in:
/(landing page) → Tools table/downloads→ Companion Tools section
Not yet done:
- No dedicated
/vaultispage (may be appropriate as the integration matures) - Plume3D-specific
EngineType.plume3dexport preset does not yet exist in Vaultis source; it usesEngineType.other+ custom import root. Update this note when a dedicated preset is added.