# Afterimage / Direction room

A connected native-video authoring loop: a direction, an explicit geometric interpretation, candidate selection, native checks, a new render, a kept revision, and another passage carrying the same decisions.

## Available controls

- Two one-second Settlers development passages, 24 source frames each. These are separate passages, not a continuous two-second shot.
- 108 measured native camera paths per passage, varying yaw, distance, elevation and horizontal shift at a fixed 28 mm lens. The original performance and inherited 0.8 m root translation stay fixed.
- Six ranking directions: previous screen framing, closer, wider, higher, lower, or nearest the pointed screen target.
- Editable commitments: head/hair separated from formations; head-center RMS distance from a selected image point; minimum projected head height (12–40%).
- The legacy separation checkbox starts with the existing fixed 2% width native-triangle rule. Nearest included rock or steep ground triangle is forbidden; flatter floor is allowed. 320×180 monitor; 45° slope definition. Plants, optical transparency, cast shadows and artistic meaning are outside this rule. Its observations are reused from the unchanged source, not rerun or invented on each click. Legacy observations may stop at the first failed frame. The editable-condition extension below uses a separately hashed complete set of all 24 frames for every projection-feasible camera.
- Conflicts report the current finite pool. Release suggestions enumerate minimal sets of commitments to relax; nothing is relaxed automatically.

## What is new

The local Node server can accept an allowlisted camera choice, validate the unchanged native scene on all 24 frames and render a fresh Blender film. Full checks include source-relative geometry, foot contact, framing, sampled head visibility and camera continuity. The job stores its camera recipe, native measurements, source hash, resource receipt and encoded film hash. Identical camera jobs reuse an explicit receipt. No model API calls or source-scene writes occur.

A browser revision stores its parent, literal direction note, selected camera, explicit numeric commitments, passage and local film reference. Browser choices are labeled as explicit choices. The initial example is labeled agent-authored. User words are not converted through keyword matching or claimed as understood; executable controls specify the current interpretation.

Projects export as JSON and can be reopened on a compatible installation. Additional local films are referenced, not embedded in JSON; they must accompany a shared project or be rendered again. The portable edition carries bundled examples and the same decision/ranking engine, but cannot start Blender on Netlify.

## Limits

This connects previously separate mechanisms; it does not establish general semantic understanding, preference learning, open-ended synthesis, aesthetic quality, new-scene generalization or an advantage over an expert conventional workflow. Ranking a camera path is not generating a new scene. Geometry validation is not a human review. No new human preference scores are created by the demo.

## Runtime and resources

Local server: `node server.mjs` in the Afterimage project, then `direction.html`. Native dependency paths come from `native/revisions/plan.json`. Blender 3.4.1, Python with psutil and FFmpeg must be present. One render runs at a time, with an 8 GiB process-tree RSS ceiling, 3 GiB system-memory reserve, 4 GiB free-disk reserve and 20-minute deadline. Cancellation is polled and terminates only the owned Blender process group. Monitoring is a safeguard, not an OS memory-allocation guarantee.

Settlers — Blender Studio / Blender Foundation, CC BY 4.0. Source: https://studio.blender.org/projects/settlers/?asset=2533

## Editable conditions / October 2 extension

“Correct what separation means” now exposes the measured subject, surrounding surface category, clearance, local frame interval, intentional exception and required/preferred priority. Applying a correction changes camera eligibility and ranking; it is not just a note. The visible per-frame strip retains failures in exempt frames and distinguishes them from passing checks. The same condition is copied into later revisions and passages. The old interpretation remains in earlier revision snapshots.

Subject measurements use declared projected geometry: the legacy head/hair convex envelope or the union of native mesh triangles for the four-part figure or backpack. Every projection-feasible camera is measured over all 24 frames. Separation data remains cached native geometry evidence; this is not a new visual-language model. The current UI supports a bounded vocabulary and explicitly leaves other meanings unresolved.

See [the author pilot protocol](../conditions/PILOT.md). The unprepared participant correction and conventional-workflow comparison remain pending; no new human-value result is claimed.


## Guided rehearsal

[Replay the two revisions](../../direction.html?example=guided-rehearsal). This is a user-authorized, assistant-proposed exercise, stored separately from the ordinary browser project. It corrects an overly broad rock-object-only interpretation to include steep terrain, then carries the same full-figure separation condition from a wider, higher view to tighter, lower framing. “Closer” is a screen-framing interpretation: both distance parameters remain 3m, with yaw and shift changes disclosed. A physically nearer/lower camera is unavailable in the qualifying pool. Both revisions enforce all 24 frames with no exception. [Project](../rehearsal/project.json) · [Evidence](../rehearsal/report.json). This is not the independent author trial or an expert workflow comparison.
