Make the renderer editable
Twizel began on 8 September as a material lab: five materials under one shared light field. The current workspace has a scene hierarchy, a viewport, material assets and a component inspector.
Around them, these tools turn the material lab into an authoring workflow:
- Primitive creation and object selection.
- Transforms and grouping, with undo.
- Saved cameras.
- Versioned scene files that keep geometry, materials, camera views and optional stage settings.




Build a scene with motion and light
The woodland cottage preset combines window lighting, moving foliage, a flowing stream and an authored camera shot.
Triangle meshes use a bounding-volume hierarchy, which fixed-topology animation can refit.

Clean enough to inspect
Spatial denoising and weighted stage-light selection help make the scene practical to inspect. Both are scene settings that save with the scene, and the cottage preset turns both on.
In the 12 September quality run, at an equal 32 samples per pixel, weighted selection with denoising reduced the error against a 1,024-sample reference by these amounts, compared with uniform selection and no denoising:
| Shot time | Tone-space error reduction | Linear error reduction |
|---|---|---|
| 0 s | 61.8% | 9.8% |
| 4 s | 62.5% | 12.4% |
| 8 s | 60.4% | 13.9% |


The comparison holds the sample count equal. It makes no claim about equal render time or about image quality in general, and the 1,024-sample reference is itself noisy. Some grain stays on thin foliage, edges and reflections, where the filter leaves pixels raw.
Retain the limits with the result
The retained 13 September validation record, the source of the editor captures above, reports 50 CPU and 45 browser tests plus the production build.
The movie frame at the top of this page was rendered on 12 September at 64 samples per pixel, before the later geometry optimizations. It is an engine render, not a real-time frame-rate demonstration.
What's next
- Asset-file import.
- Reusable assets.
- Instancing.
- UV mapping.
- A full game runtime.
What I learned
A renderer needs reproducible scenes as much as attractive images. Keeping source snapshots, test fixtures and capture settings makes it possible to tell an editor improvement from a transport regression or an unfair performance comparison.
Sources & development context
Twizel Engine README; docs/editor-workspace.md, scenes.md, woodland-stage.md, geometry.md and godot-performance.md; retained validation 2026-09-13T00-51-57-401Z. Image: Twizel's own 64-spp cottage shot, 2026-09-12T19-57-17-991Z-hardware-requested, frame-00000.png. No Godot comparison image is used as Twizel output. Figures: docs/preview.png (the README capture as of 8 September); browser-test captures from validation 2026-09-13T00-51-57-401Z (editor docks, move gizmo, authoring, woodland stage); quality run 2026-09-12T19-50-31-650Z-hardware-requested (4-second frame, uniform raw and weighted filtered, 32 spp), with the error reductions from its comparison.json and docs/denoising.md.

