Fixes you can feel
- Large resource packs no longer crash on open
- Ten improvements switched on after side-by-side checks
- New interface and AI animation assistant land behind switches
Patch notes for every dev build, and every dated milestone since the first attempt in June. Known issues and things that did not work stay in, because they are part of the record.
Fourteen builds with public patch notes, newest first. Scroll sideways or use the arrows.
93 entries from the project history, newest first, rewritten in plain language.
A server that lets an AI assistant read and edit a project's animation through 14 typed tools is in the codebase, and timing logic that existed twice in the renderer was merged into one, with identical output.
Five interface packages landed in a day behind an off switch, and bounced light can now take its colour from a captured dome of the surroundings (still off, waiting for a visual check).
Large resource packs no longer crash on open, pasted keyframes land on the selected object, and lights without shadows light the scene again. Decision: every project will use one full render path.
Five improvements became defaults after side-by-side checks (contact shadows, reflection-capture refresh fix, local light shadows, PNG overlay edges, glow in mirrors), each with an off switch that restores the old picture exactly.
GPU resource handling, a single lighting loop instead of two copies, one source for 199 default values, and editor undo were reworked with zero pixels changed. Settings moved to a fixed user folder.
Playback can render without a window, tests now fail when sabotaged, movie export no longer reports success after a failed write, and the model importer work landed in the main codebase.
The whole engine was read in 17 chapters. The main source file was split into modules, from 77,072 lines to about 10,700, and a full shader build became about 2.5 times faster.
A hands-on test on real animation work found playback using incomplete lighting data. That case was fixed, and the frame-rate cost of the new features was published as measured.
Screen-space and mirror reflections were switched on together after a visual check, then three real bugs were fixed, including sky reflections that came out too dark.
Film grain is one pixel fine instead of large smudges, bloom is taken from the scene's light before tonemapping, and thin leaves or fences from imported models can cast shadows from both sides.
Curved metal no longer fills with black holes, fog now appears inside reflections, and two tonemapping looks were added: PBR Neutral and AgX looks.
Particle blocks use the gloss, metal and glow you set, the first exported frame stops drifting, contact shading really renders, and building one heavy shader went from 59 minutes to under 4.
Five rounds of visual checks switched on 15 improvements, from sky lighting to glass and reflection fixes, and three reflection bugs found along the way were fixed.
Cheap fixes, cures for visible symptoms and a single path for all colour maths landed, which reduced one source of preview and export differences; full parity is still in progress.
Sixteen measuring tools were installed in one day with zero pixels moved, including a fix for a shader-naming bug that could stop the app at start.
A research campaign read the renderer topic by topic (tonemapping, reflections, shadows, AO and GI, temporal and more) and found the root causes of four long-standing complaints.
GLB and glTF models show up with textures, emissive and normal maps, correct two-sided faces and mirrored parts, and bones in their rest pose.
Semi-transparent textures are composited in the right colour space, measured before and after, and switched on after a visual check.
Environment keyframes work in any order, glow on back faces appears, sky shine stops leaking into floor mirrors, and accumulated renders use blue-noise sampling.
A VRAM budget setting (Auto, or 2 to 8 GB) with texture and mesh eviction, so heavy scenes lower their detail quietly instead of failing.
Preview playback got 48% faster and scrubbing 58% faster; per-frame shadow cost dropped 93%, and a crash when the shadow atlas grows was fixed.
Four reflection-quality improvements became defaults after a hands-on test, so the preview window reflects the same way as the main viewport and far mirrors stop flickering.
The clear mirror floor when playback stops returns, and camera shake now moves only the active camera.
Two lighting strength sliders that moved each other are independent again, and a glow fix based on two diagnosed root causes landed.
Twelve changes landed in a single day, each with a full build check, closing a misleading test and nearly removing the ghost trail after camera moves.
The preview window's display modes came back, and ambient-occlusion noise now sticks to the world instead of the screen, reducing moving-camera flicker in measurements (held off pending a visual check).
In a visual check, the cleaner distant-shadow fix won and became the default; a world-locked noise fix lost because the screen looked noisier.
The per-pixel memory for AO and GI was finished: emissive light now reacts faster, and a blind comparison ended in a tie, so the safe default stayed.
Nova got a separate per-pixel memory for AO and GI, built with zero visual change by design, and lighting on stretched objects became correct by default.
Banding in far shadows was largely removed while close contact shadows stayed intact, and a measurement tool pinned most moving-camera wobble on bounced light.
The main viewport no longer waits for the preview window, checked on the heaviest test scene, with exports unchanged.
On three test scenes, checked twice each, the preview window's Render mode matched the final export, and a hands-on test agreed.
Lighting direction on stretched and mirrored parts, which could be visibly off, is now correct (opt-in at first).
Four rendering fixes were measured pixel by pixel and kept off until a visual check, so nothing changes on screen without a decision.
The test guarding the surface direction fix passed 44 of 44 checks and can be re-verified on a clean copy of the code.
Nine clean-up items landed, including one shared source for colour maths, proven with 178 of 178 shaders byte-identical.
A new timing slot and a fail-closed performance check mean claims like "this is cheaper" can be tested instead of argued.
Every open item in the progress tracker now states what it is for, why it has its status, what it depends on, and how it is checked.
The first overnight work batch landed 7 of 8 items, with an independent review agreeing on all six of its checks.
All open items were gathered into a single double-check plan, organised as two parallel work tracks.
Planning only: the mirror behaviour in the preview window was explained, and two small defects plus nine interface items were sorted into three waves.
After soak and endurance tests (20 runs, byte-identical) and a visual check, flat mirrors became the default for everyone, with an off switch.
Groundwork for a soft blurred backdrop behind the Export menu landed, a suspected memory leak turned out to be normal growth, and work recovered cleanly after a power cut.
The pulsing in reflections turned out to have two parts, only one of them inherited, and a colour error in bounced light was found: the first visible chance to look better than before.
An adversarial audit checked 104 claims and the corrections were applied in the open; two decisions got stronger after being challenged.
A motion-data issue blamed on playback came from the camera; the measuring tool was fixed and no product code was needed.
Four approved fixes became defaults, including the band along screen edges that came and went; AO error at the edges fell clearly.
The closing pass ended with two documents for decision: five changes to approve, each with its downsides stated, and the scope of the next big loop.
A dedicated test scene pinned the screen-edge band to one AO step, and a fix that already existed was lined up for approval.
Per-pixel heat maps showed a fixed-width band on all four screen edges, narrowing the suspects to one blur step.
Hands-on tests showed the flicker appears when the camera moves, and split it into a large AO part and a small GI part.
The preview window settles to an identical frame when the playhead is still; the remaining issue only happens while playing.
Bounced light wobbles far more on moving pixels than on still ones, which set the next step: proper motion vectors.
A broad audit confirmed the renderer's structure is sound and matches industry practice, and named what was missing for stable bounced light.
Render presets landed with two save fixes, opening the heaviest test scene got faster, and six of ten old visual doubts turned out not to be Nova bugs.
Glow on the reference scene landed on its target brightness, and precision fixes for transforms, normals and leaf highlights landed in a day.
Bend IK with target and influence controls landed with its own test, plus a Modifiers panel, and a 45-item plan was picked from 236 candidates.
Ambient occlusion with an optional GTAO mode and hybrid global illumination landed, and imported material maps now actually work.
Direct lighting and shadows landed as one complete package, with a 3D shadow cache, after an independent review found no blockers.
The long-standing "render looks different from the viewport" complaint was addressed: on the test scenes, the viewport's Render mode and the exported image matched.
Exact, deterministic progressive supersampling landed as an opt-in foundation, and four smaller items, including block sets and paths, were merged.
The export, the viewport's Render mode and the second view now share one quality recipe, wind timing no longer depends on frame rate, and an interface mock-up was finished.
Scene texture capacity went from 256 to 1,024, HD pack mipmaps arrived, and face-rig eyes, extruded shapes and transparency edges were fixed on real projects.
The timeline gained 19 improvements, from row dragging and marquee select to keyframes at the playhead, and fog no longer leaves a white band at the horizon. Hands-on test: 12 of 12.
Importing Minecraft worlds as scenery was completed, models render as expected by default, and face rigs show the right parts from the front and the back.
The first render phase merged after a line-by-line audit, and full multi-select transform with per-part paste landed in the editor.
A full hands-on test passed, and work began on a new map reader that brings sky light, block light and biome colours to imported worlds.
A splash screen, a What's New panel, cinematic export, font import and a first particle editor tab landed, and material maps, subsurface scattering and soft sun became defaults.
A re-scan of the feature list confirmed the tracker was in sync, and realistic water was added as a planned idea.
Backups with timed autosave, project properties and a new micro-motion system for the interface were among 25 items that landed.
Specular and normal material maps and the first stage of subsurface scattering became defaults; Save As copies resources, and Blockbench import arrived.
Special blocks, folders and template management moved forward, and a VRAM profiler pointed at the biggest memory cost.
Soft sun shadows landed, five timeline improvements were confirmed in hands-on use, and blue tree canopies were traced to light passing through the leaves.
A line-by-line check of the feature list against the tracker found two finished items that were not yet marked done.
Undo was traced through four layers of bugs and confirmed working in hands-on use, alongside a large batch of timeline improvements.
Onion skinning (five frames before and after) and audio playback with a waveform on the timeline landed, plus eight quality-of-life fixes.
Six design specs were approved (special blocks, banners, paths, soft sun, subsurface scattering and an interface framework) and the build queue started.
Eleven feedback items from a test user were logged, one timeline bug was fixed right away, and a nine-item spec pack was completed.
A work-priority list put the animation workflow (onion skin, audio, IK) first, and dark clouds were fixed.
Depth of field, enchantment glint, sun, moon and star billboards, horizon haze and global wind arrived, plus spot and point lights.
Copy and paste for objects and keyframes, keyframe duplication, and spawning characters and mobs from the workbench landed.
GPU picking lets you click even tiny objects such as eyes, and a Render Settings panel exposes glow, AO, shadows, GI, reflections and anti-aliasing.
The glow pass landed, so gates, eyes and gems finally light up, along with a second view and a big interface sprint (13 of 19 items).
Walk navigation, tool modes, snapping, a grid overlay and image skyboxes landed, and camera controls follow the familiar scheme.
Deterministic particles with 14 presets, scenery import from .schem, .schematic and Minecraft worlds, and OBJ and Blockbench import.
Long-term ideas (video motion capture to keyframes, ray tracing, volumetrics, upscaling) were recorded outside the plan, and Project 0 was recorded as the origin story.
HDR scene rendering with deferred tonemapping brought global illumination, glass shadows were fixed, and temporal anti-aliasing landed (now experimental, off by default).
The interface and quality-of-life work was split into 35 tracked items, growing the plan from 90 to 105 features.
Three-cascade sun shadows arrived, and a bug that switched off shadow casters was fixed.
Each feature in the tracker was tagged with the work track that builds it.
A progress tracker started with 90 features in 12 areas, each with a status.
Development restarted as a fully native C++ engine with no dependency on the old one, using a detailed plan learned from Project 0.
A first attempt attached a modern renderer to the original engine. It hit a quality ceiling and was retired. Its lessons became Nova's plan.