Files
ARCADIA-Studio/harness/experiments/behavior-layout-policy-20260912

Scenario layout policy experiment — bounded evidence

Question: can absolute desired coordinates and gap-before records express the same small feasible layouts, and what semantics must a movement planner preserve? This is an isolated JavaScript experiment, not production Rust or a substitute for actual Arcadia Scene, parser, REST, history, or native acceptance. The ten-unit separation and rectangle metrics are illustrative.

Source executed through Node REPL and wrote results: 3,555 feasible three-row layouts and 53,325 single-move cases passed. Handwritten numeric cases expose different naive reorder/delete/resize behavior. Both encodings can express the enumerated feasible outputs. Changed-coordinate counts compare only the specific single-edit forward policy, not equally expressive retained intent across histories. Elapsed time includes assertions and this machine’s load; it is not a renderer performance result.

Independent review found an omitted conflict-then-zero-motion history. The negative probe reuses the same experiment with that additional assertion; root executed it and reproduced the expected assertion failure: a zero-screen-motion operation changes B.desired from200 to280. The original source/results remain preserved. No production failure is implied.

The next experiment must distinguish a pointer gesture (original frame and actual delta; zero motion preserves authored input) from an explicit SetDesiredY/Normalize operation, and test move-away/back and resize histories. Equal visible geometry does not imply equal latent layout intent. Before schema adoption, exercise one parsed real scenario through the actual Scene/attachment adapter, including self-message and nested/lifetime cases. The design proposal and critique remain conditional.

To reproduce, copy experiment.mjs and negative-zero-motion.mjs into an empty directory and run node experiment.mjs, then node negative-zero-motion.mjs. The first writes results.json; the second must fail its zero-distance assertion. Existing output is never overwritten. Node built-ins only; no package installation or network is required. Hashes bind the exact executed source/result artifacts.