Cyberpunk Agent Scaffold

The agent brief both models were given on the cyberpunk cases. No reference build code: each agent authors its own build and iterates until both the metric and its own look at the rendered frame pass.

brief/CLAUDE.md

Cyberpunk street build — agent brief (Claude Code harness, model = Muse Spark 1.1)

You drive a running Unreal Engine 5.8 editor through the simworld-bridge MCP tool execute_python_script (runs Python inside the editor, returns stdout). Build a fancy, non-repeating cyberpunk L-corner NIGHT street into a fresh map, then verify — by metric AND by looking at a rendered screenshot — and iterate until BOTH pass AND it genuinely looks like a dark cyberpunk night.

Use the skill (progressive disclosure)

Skill at ./skill/cyber-street-build/. Read SKILL.md first, then open a file under references/ when you reach that phase. Read them with the Read tool.

Hard rules (a metric score is NOT enough — the PICTURE must look right)

  • Write your OWN build code. No ready-made build script; do not look for one or exec one.
  • Drive the editor ONLY via the execute_python_script MCP tool. Small increments (<= ~50 actors/call).
  • Scale ALWAYS 1, ground z0, don't reassign materials to defaults.
  • RESTRAINT: keep dynamic lights UNDER ~100 total. Piling on lights blows the scene out to white (light pollution) AND makes it so heavy the renderer crashes. A few big hero neons beat hundreds.
  • The distant backdrop must be BUILDING/TOWER meshes — NEVER a billboard/screen/panel that shows a photo (several show a daytime BEACH). A beach/sky backdrop = automatic fail.
  • Lock night exposure (unbound PostProcessVolume, auto_exposure min0.05/max0.5) — see the skill.
  • Map name: use the exact map path given in your task prompt (it is unique per run).
  • NEVER trigger a modal dialog (they freeze the editor headlessly). Before new_level, if the map already exists, unreal.EditorAssetLibrary.delete_asset(map) first. Save only with save_current_level() / EditorLoadingAndSavingUtils.save_map(world, path) (these overwrite silently); do not use any API that pops an "overwrite existing?" prompt.

The loop — metric + VISUAL gate (this is the whole point)

  1. Build phases A-F from the skill (small calls), save after each with unreal.get_editor_subsystem(unreal.LevelEditorSubsystem).save_current_level().
  2. Metric verify (via the bridge tool): exec(open(r"./tools/verify_cyberpunk_scene.py",encoding="utf-8").read())
  3. VISUAL gate — render via the SAME bridge tool (do NOT shell out to a separate renderer): a. Call execute_python_script with: exec(open(r"./render_vgate.py",encoding="utf-8").read()) (renders your current map at eye level, light settings, to vgate/). It returns immediately; the render is async. b. Then in a Bash tool call: python ./analyze_frame.py (waits for the frame, prints pixel stats + VISUAL SCORE + issues, saves vgate_last.png). This is fast (no rendering). c. Then LOOK yourself: use the Read tool on ./vgate_last.png and judge it as a picture. Is it a believable DARK cyberpunk night street? Over-exposed? Washed to daytime? Is the backdrop a city or a beach? Too many lights? Write down the visual problems you SEE.
  4. Fix the WORST problems — BOTH the low metric checks AND the visual problems you saw (e.g. delete excess lights, replace a beach-photo backdrop with tower meshes, strengthen the exposure lock). Re-verify + re-render + re-look. A high metric with a bad-looking render is a FAIL.
  5. Done only when metric >= ~92 AND VISUAL SCORE >= 80 AND the picture genuinely looks like a dark cyberpunk night street to you.

Finish

Summary: round-by-round metric + visual scores, the visual problems you found and fixed, final map name. Work fully autonomously — do not ask questions.

brief/AGENTS.md

Cyberpunk street build — agent brief

You drive a running Unreal Engine 5.8 editor through the simworld-bridge MCP tool execute_python_script (it runs Python inside the editor and returns stdout). Your job: assemble a fancy, non-repeating cyberpunk L-corner street into a fresh map, then self-verify and iterate.

Use the skill (progressive disclosure — read only what you need)

A skill is available at ./skill/cyber-street-build/. - Start by reading ./skill/cyber-street-build/SKILL.md. - It has a reference index; open a file under references/ ONLY when you reach that phase (assets, ue-api, layout, lighting, signage, verify-and-iterate). Read them with your normal file tools.

Hard rules

  • Write your OWN build code. There is no ready-made build script and you must not look for one or exec one. The skill gives you APIs + a plan; you author the Python you send to execute_python_script.
  • Drive the editor ONLY via the execute_python_script MCP tool. NEVER take a screenshot.
  • Build in small increments — at most ~40-50 actors per execute_python_script call, many short calls. Keep each script focused; do not send one giant script.
  • Scale ALWAYS 1, ground at z≈0, don't reassign materials to defaults. (See the skill's golden rules.)
  • The verifier script MAY be exec'd (only the BUILDER must be your own) — see the skill's references/verify-and-iterate.md.
  • Keep total actors under ~1100.

Definition of done

A saved map /Game/Maps/CyberOC_1 scoring ≥ ~92/100 on the verifier, built in your own incremental code, with a final summary: round-by-round score progression, final scorecard, and what you built/changed. Work fully autonomously — do not ask questions.