Dream Loop · Generated 3D assets

Same scene.
One more pass.

Can better lighting and a walking character close the gap? Play the new pass and see what the extra work buys.

An experiment from the team behind OhMyUnicorn Forge.

11 September · Performance repair

A lighter scene. Consistent walking speed.

The latest preview now adjusts its resolution automatically, reuses water reflections between updates and refreshes smaller shadow maps less often. Use the quality menu inside the scene to choose Auto, Smooth or High detail. The FPS counter reports that browser’s current frame rate.

The character previously slowed down whenever rendering dropped below 20 FPS. Movement now covers the same distance per second at simulated 10, 20, 30 and 60 FPS. Long stalls above 250 ms are capped to prevent a sudden jump; hidden tabs stop movement.

Software rendering testBeforeAfter · Auto
Median frame time1558 ms482 ms
Mean frame time1559 ms488 ms
95th percentile frame time1578 ms584 ms

Same 1280 × 900 viewport and Chromium software renderer, tested sequentially. Auto reduces internal resolution under load, so this is a practical performance/quality tradeoff. Software rendering remains slow. These results do not establish FPS on your device. A server hardware-rendering attempt lost its graphics context and was excluded.

The courtyard’s assets and lighting are retained. This repair improves rendering cost and responsiveness; it does not close the remaining artistic gap with the original demo.

Repair time, tokens & cost

Published repair: 12 min 11 s after work started. In the public software-browser check, first frame submission was 3.83 s after navigation; the first frame with loaded assets was 5.33 s. These measure draw submission, not completed GPU work or first paint on your device.

Repair start: 2026-09-11T09:54:44Z. Ledger cutoff: 2026-09-11T10:11:37.001162+00:00 (16.9 minutes). Root Astra only: 2,438,360 input tokens, including 2,242,944 cached; 27,375 output tokens. $5.566 API equivalent, using official Astra rates. Later responses are excluded. No new asset-generation calls.

Subscription meter: 46% → 46%. Rounded account-wide seven-day allowance; exact attribution to this repair is unavailable. Earlier lane and polish costs remain frozen.

Frame-time measurements · Movement timing checks · Published controls checks · Mobile touch checks · Repair ledger · Source and timing record

11 September · One additional visual & animation pass

What does one more pass buy?

A darker courtyard, warm firelight, wet reflections and a traveler with moving legs, arms and cape. The earlier scene remains playable alongside it.

Before · D, pass 3

Generated assets, static traveler

Earlier pale courtyard with static red-cloaked traveler

The completed asset-assisted experiment.

After · Additional polish

Courtyard & articulated traveler

New dark courtyard with warm firelight, cyan sanctuary and articulated red-cloaked traveler

Press Play, then use arrows or WASD / ZQSD. Click / tap to walk, X to stop, drag to orbit, scroll / pinch to zoom.

Closer in atmosphere. Still short of the original.

Lighting and composition make a larger immediate difference than simply supplying another detailed mesh. Walking now articulates the character’s limbs and deforms its cape. The remaining gap is in asset variety, natural surfaces, vegetation, effects and the finish of the character itself.

This is a separate polish exercise, not another controlled lane. We changed the visual target to the darker courtyard in the author’s demo and used one fresh Astra low-effort builder with Astra direction and verification. The generated arch is reused; the static traveler is replaced with an articulated model authored in code. No new asset-generation call was made. Historical A/B/C/D results are unchanged.

Time for this extra step

MilestoneFrom task start
First complete scene captured6m 50s
Controls & animation validated16m 34s
Embedded preview & mobile validated19m 27s
Scene published14m 23s
Report and accounting cutoff21m 10s

On the first local navigation, the first WebGL draw was submitted at 4.68s and the first draw with the loaded arch at 9.40s. The complete screenshot was saved at 25.02s. Draw submission is not a measured browser paint or GPU completion; the captured scene is the evidence of visible rendering. This browser used software rendering; hardware FPS was not measured.

Tokens & API equivalent

WorkInputOutputAPI equivalent
Scene builder
Astra
953.1K in
907.1K cached subset
12.1K out$1.972
Direction, checks & publication
Astra
3,178.7K in
3,076.2K cached subset
31.8K out$5.690
TotalOne additional pass, including delivery work$7.662

Input includes cached tokens; output includes reasoning. Standard Astra API rates are an equivalent, not a subscription charge. Existing assets and hardware costs are excluded. Cutoff: 2026-09-11T09:11:10.255436+00:00; later responses are excluded.

Subscription meter: 44% → 45%. This rounded seven-day reading covers the whole account, including concurrent activity. Exact consumption by this pass or model is unavailable.

Token & quota ledger · Timing evidence · Movement & pose checks · Preview controls · Mobile checks · Walking capture · Scene source

Press Play on a preview to control the scene, or open it full screen. Move with arrow keys, WASD / ZQSD, or click / tap. Drag to orbit, scroll / pinch to zoom, and X to stop. Fresh-load control checks ↗

Before · Lane C

Authored geometry

Previous lane C final browser capture

Full Luna direction, three fresh Astra passes, authored in-engine geometry.

Explore C ↗
Follow-up · Lane D

Textured 3D assets

New lane D final browser capture with generated arch and traveler

The same fixed target and seed, with a generated archway and traveler supplied before the three passes.

Explore D ↗

Better objects; no clear overall win over C.

In our visual assessment, D has a much more detailed traveler and convincingly weathered stonework. C still has stronger Gothic silhouettes, denser scenery and more dramatic lighting. Supplying better objects helped, but three passes did not automatically produce a more cohesive world. The practical result is a working asset-generation route, not a demonstrated quality or cost breakthrough.

Both captures use the same probe viewport and initial/reset view. Each run controls its camera composition, so this is a workflow comparison, not a pixel-aligned quality test. Runs took place sequentially.

Three passes, under Luna’s direction

Luna xhigh directs one fresh Astra low worker per pass. Each worker receives the reference and current scene; Luna verifies the browser between passes. No separate judge agents.

What changed before pass one

Forge converted two existing source images into textured 3D meshes. The browser loads those GLB assets and renders them as part of the scene.

Asset generation: 7m 38s · $0 external 3D API fee. This used an existing GPU; hardware cost is unallocated. The source images were inherited from the earlier experiment, so their generation time and cost are not included.

The traveler is a static mesh. Character motion does not establish skeletal walking animation.

Generation and mesh evidence ↗
Fixed reference image of a red-cloaked traveler in flooded Gothic ruins
The unchanged reference image. This is the target, not the output.
Source image for the ruined arch
Arch source
Generated arch rendered as a textured 3D mesh
Generated arch · side · back
Source image for the cloaked traveler
Traveler source
Generated traveler rendered as a textured 3D mesh
Generated traveler · side · back

Original experiment: time, tokens & cost

Asset generation: 7m 38s. Kit inspected and ready: 13m 21s from task start. Luna’s complete three-pass handoff: 54m 15s from task start.

First paint or a partial first element was not instrumented. The first scene is evidenced by 27m 01s from task start; the final pass by 48m 32s. These are captured-render upper bounds.

First captured renderFrom that pass’s startFrom full task start
Pass 15m 56s27m 01s
Pass 23m 28s41m 44s
Pass 33m 57s48m 32s

Times are cumulative to the first completed capture in each pass, an upper bound on first visible rendering. The earliest capture can precede control fixes; the screenshots above show the validated pass. Tokens and model costs are incremental per pass. K = thousand tokens; input includes cached input, and output includes reasoning.

PassC · Full Luna directionD · Same direction + generated assets
Pass 17m 50s from C start
Luna: 5,095.8K in / 20.9K out · $0.142
Astra: 344.1K in / 9.9K out · $1.169
Pass total $1.311
Account meter: 40% → 40%*
13m 40s from kit ready
27m 01s from follow-up start
Luna: 5,275.2K in / 18.2K out · $0.143
Astra: 215.8K in / 7.6K out · $0.941
Pass total $1.084
Account meter: 42% → 42%*
Pass 218m 35s from C start
Luna: 1,764.6K in / 9.8K out · $0.059
Astra: 334.9K in / 4.3K out · $0.709
Pass total $0.768
Account meter: 40% → 40%*
28m 23s from kit ready
41m 44s from follow-up start
Luna: 2,251.7K in / 4.1K out · $0.054
Astra: 242.0K in / 5.0K out · $0.946
Pass total $1.000
Account meter: 42% → 42%*
Pass 326m 28s from C start
Luna: 3,163.3K in / 10.4K out · $0.092
Astra: 359.8K in / 5.5K out · $0.844
Pass total $0.936
Account meter: 40% → 40%*
35m 11s from kit ready
48m 32s from follow-up start
Luna: 636.7K in / 6.6K out · $0.032
Astra: 289.5K in / 5.5K out · $0.807
Pass total $0.839
Account meter: 42% → 42%*

C total: $3.181 · D total: $3.173 API equivalent. These include each director’s recorded setup and finishing. C had no equivalent generated-asset preparation stage. The recorded lane costs are effectively unchanged.

Setup, finishing and separate root overhead

D director setup: Luna: 5,658.5K in / 31.5K out · $0.189.
D director finishing: Luna: 1,849.3K in / 10.4K out · $0.060.

Separate root research, asset preparation, accounting, publication and controls repair: $17.708.
Astra: 10,337.3K in / 81.7K out · $17.708

Total recorded follow-up language-model equivalent: $20.881. Root overhead is excluded from the C/D lane comparison. Asset generation and director preparation overlapped; the three scene workers ran sequentially. An initial child coordinator lacked nested-worker tools, so Luna continued in the standalone harness used for C. The failed preparation is included in D setup, and its delay remains in the elapsed times.

Task began 2026-09-10T17:58:11Z. Accounting cutoff 2026-09-10T19:07:16.311206+00:00. Elapsed to cutoff: 69m 05s. Responses after this cutoff are excluded.

Subscription meter: 41% → 43%

*This is the rounded, account-wide seven-day allowance during the follow-up. It includes other activity and root work. Exact subscription consumption by lane, pass or model is unavailable; an unchanged reading does not mean zero usage. API dollars cannot be converted into a subscription percentage.

API-equivalent pricing

Standard rates per million tokens: Astra $10 fresh input / $1 cached / $50 output; Luna $0.20 / $0.02 / $1.20. Cache-write rates are $12.50 and $0.25. Per-request input above 272K applies the documented long-context multipliers. These are comparisons, not charges on a subscription invoice. Astra rates · Luna rates.

Exact time, request, token and quota ledger · Preserved first-pass timing evidence · Original C pass figures

How close is this to the original demo?

The author’s initial prompt asks for an isometric fantasy scene in Three.js: realistic shading, reflective wet floors, a character, click-to-move, lazy camera follow, drag to orbit, scroll to zoom, and an environment with subtle motion. The requested frame rate exceeds 60 fps; no gameplay is required. The post separately reports $0.90 for assets; our $0 external 3D API fee uses existing GPU capacity whose cost is unallocated.

We now follow the asset-assisted workflow as well as the direct Luna-to-fresh-Astra structure. This uses Forge’s image-to-3D system and two inherited source images; it does not reproduce the author’s exact assets, 3D model, rendering setup or undocumented iteration history. Root handled asset preparation and publication separately.

The author’s follow-up correction puts savings around 40–70% across his threads and acknowledges differing techniques. This single follow-up cannot establish those savings or the earlier 80–90% subscription claim. There is no new Astra-only run with this same asset kit.

Validation and limits: All three desktop probes pass loading, movement, lazy camera follow, orbit, zoom and advancing animation. The final public checks are linked below. The assets are static, character movement is not skeletal walking, and the floor, vegetation and distant architecture remain visibly procedural. Lighting, reflections and composition still fall short of the reference. Software rendering does not validate the author’s hardware frame-rate target.

Independent public browser verification · Final pass interaction report · Final source archive

Keyboard controls added after the experiment: arrow keys and WASD / ZQSD move the character. The recorded captures, timings and lane costs describe the original runs. Control update source manifest · Keyboard checks · Repair time, tokens & cost.