Skip to content

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


PageStatusNotes
/api/engineCurrentVersion format updated to Year.Month.Patch (2026.1.1)
/api/loggerCurrent
/api/shaderCurrentMinimal; shader has only a name property
/api/meshCurrentCovers all Mesh methods
/api/inputCurrentCovers keyboard, mouse, gamepad (4 players), touch not explicitly shown
/api/windowCurrentCovers size, fullscreen, design size, scale modes
/api/graphicsCurrentUpdated 2026-03-25: added setLights, setShadowMappingEnabled, setShadowBias, setShadowMapSize, setDebugView
/api/guiCurrentUpdated 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/audioCurrentCovers global audio, Source 3D
/api/sceneCurrentUpdated 2026-03-25: added findNodeById, createCharacterController, createParticleEmitter, createInstancedMesh, findInstancedMesh
/api/nodeCurrent
/api/cameraCurrent
/api/lightCurrentUpdated 2026-03-25: added castsShadows / castsShadows=
/api/raycastCurrentCovers all Raycast methods and RaycastHit
/api/configCurrent
/api/resourceCurrentCovers Resource, BlendResult
/api/animationCurrentUpdated 2026-03-25: added blend layers, crossfade, stopLayer, full AnimationPlayOptions (loop, speed, timeOffset, blendWeight, layer, crossfadeDuration)
/api/mathCurrent
/api/physicsNew 2026-03-25Physics class: forces, impulses, velocities, gravity, pause, raycast, contact events, addStaticBox, addDynamicBox. PhysicsContact described inline.
/api/character-controllerNew 2026-03-25CharacterController + CharacterState constants
/api/instanced-meshNew 2026-03-25InstancedMesh: addInstance, setInstancePosition, setInstanceTransform, GPU instancing (SSBO)
/api/particlesNew 2026-03-25ParticleEmitter: play/stop/burst, setPosition/setNormal, setMeshFromNode
  • Touch inputInputState supports up to 8 touch fingers (SDL_FINGER_DOWN/UP/MOTION) but there is no dedicated /api/input section for touch beyond the touch mention. 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++ PBRMaterial struct but are not yet exposed to Wren scripts. No loadTexture API 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 through AnimationState. 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. No Physics.addHingeConstraint etc. Document when added.
  • Physics shapes beyond boxsphere, capsule, cylinder, convexHull, mesh shapes exist in C++ but only addStaticBox and addDynamicBox are currently Wren-exposed. Document when remaining shapes are wired.
  • Particle Tier 1 (GPU compute) — The ParticleTier enum has GPU and Hybrid tiers 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.setReverbZone etc.
  • Coroutines — Not in Wren runtime.
  • Save/load — No scene serialisation API.

PageAppStatusNotes
/examples/plume-triangleapps/plume_triangleCurrent
/examples/aspect-ratioapps/aspect_ratio_demoCurrent
/examples/window-demoapps/window_demoCurrent
/examples/audio-basicapps/audio_basicCurrent
/examples/audio-3dapps/audio_3dCurrent
/examples/audio-playerapps/audio_playerCurrent
/examples/audio-player-3dapps/audio_player_3dCurrent
/examples/blend-loadapps/blend_loadCurrent
/examples/physics-simpleapps/physics_simpleNew 2026-03-25
/examples/physics-stackapps/physics_stackNew 2026-03-25
/examples/physics-frictionapps/physics_frictionNew 2026-03-25
/examples/physics-constraint-hingeapps/physics_constraint_hingeNew 2026-03-25
/examples/physics-particles-debrisapps/physics_particles_debrisNew 2026-03-25
/examples/character-controllerapps/character_controllerNew 2026-03-25
/examples/gui-overviewapps/gui_overviewCurrent
/examples/gui-inputapps/gui_inputCurrent
/examples/gui-calculatorapps/gui_calculatorCurrent
/examples/gui-configuratorapps/gui_configuratorCurrent
/examples/gui-terminalapps/gui_terminalCurrent
/examples/mesh-linesapps/mesh_linesCurrent
/examples/mesh-pointsapps/mesh_pointsCurrent
/examples/mesh-indexedapps/mesh_indexedCurrent
/examples/mesh-draw-rangeapps/mesh_draw_rangeCurrent
/examples/mesh-dynamicapps/mesh_dynamicCurrent
/examples/mesh-attributesapps/mesh_attributesCurrent
/examples/instanced-mesh-gpuapps/instanced_mesh_gpuNew 2026-03-25
/examples/gui-buttonsapps/gui_buttonsNew 2026-03-25
/examples/gui-chartapps/gui_chartNew 2026-03-25
/examples/gui-comboapps/gui_comboNew 2026-03-25
/examples/gui-drawingapps/gui_drawingNew 2026-03-25
/examples/gui-labelsapps/gui_labelsNew 2026-03-25
/examples/gui-layoutapps/gui_layoutNew 2026-03-25
/examples/gui-menuapps/gui_menuNew 2026-03-25
/examples/gui-popupapps/gui_popupNew 2026-03-25
/examples/gui-propertyapps/gui_propertyNew 2026-03-25
/examples/gui-showcaseapps/gui_showcaseNew 2026-03-25
/examples/gui-slidersapps/gui_slidersNew 2026-03-25
/examples/gui-themeapps/gui_themeNew 2026-03-25
/examples/gui-togglesapps/gui_togglesNew 2026-03-25
/examples/gui-treeapps/gui_treeNew 2026-03-25
/examples/gui-windowapps/gui_windowNew 2026-03-25
AppCategoryStatus
apps/low_tideGame (pre-production)No game.toml or Wren scripts yet — only a .blend file and a PDF design doc. Document when the game is runnable.

PageStatusNotes
/ (landing page)Updated 2026-03-25Roadmap restructured; Physics/Animation/Particles/Instancing/CharacterController/Shadows moved to “What’s in place”. Vaultis added to Tools table.
/getting-startedCurrent
/downloadsUpdated 2026-03-25Added Vaultis companion tool section
/blender-addonCurrentCovers install, config path, pipeline, engine load/validate flow
/configurationCurrentCovers [Physics] section; [Game] and [Window] example provided
/licensingCurrent
/engine-licenseCurrentThird-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”
FeatureLocation in engineDoc needed
Wren #!command terminal attributewren_engine_module.cpp (EngineHelper)Covered in GUI Terminal only; could use a dedicated guide
Hot-reloadmodules/hotreload/Mentioned in landing page and getting-started; no dedicated page
PhysicsFS virtual filesystemengine/src/fs_mount.cppNot documented; .p3d archive format not described
Blender 5.0 Kaitai spectools/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 bundletools/Wren.tmbundle/Could note in Getting Started as an optional setup step
PLUME3D_BLEND_DUMP=file.txt env varEngine runtimeMentioned in Blend Load example; could be a debug guide
CMakePresets.json (24 presets)Root CMakePresets.jsonEngine BUILDING.md covers this; no website page needed

Vaultis is now referenced in:

  • / (landing page) → Tools table
  • /downloads → Companion Tools section

Not yet done:

  • No dedicated /vaultis page (may be appropriate as the integration matures)
  • Plume3D-specific EngineType.plume3d export preset does not yet exist in Vaultis source; it uses EngineType.other + custom import root. Update this note when a dedicated preset is added.