feat(ludic.lab): the visual lab as a package - a scene on a plate, never a world
A scene is an entry in the open registry LabScenes, shown on a plate: a flat lit disc, the package's own small sky with the sun at one hour, and a frame clock. Headless each camera (lab_shot, lab_shot_at) settles and is written as build/lab/<scene>/<shot>.png (a stored PNG, written here); in a window N and P step through them. tools/lab/run.sh and sheet.py make the contact sheet; tools/lab/plate_build.py makes plate/. ludic.render3d gains r3d_plate_mode (no terrain, grass or water is made) and r3d_sky_path. quit() in a program with no frame loop links. The example takes ~120 MB resident, 417 MiB peak footprint. Reseed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
cc930a114f
commit
b401f7acc1
35 changed files with 4184 additions and 2986 deletions
|
|
@ -582,7 +582,7 @@ function emit_call(e: Node) -> Val {
|
|||
emit(" call void @L_world_load(ptr "); emit(b.code); emit(", i32 "); emit(l.code); emit(")\n")
|
||||
return val("0", "void")
|
||||
}
|
||||
if (name == "quit") { emit(" store i32 0, ptr @L_running\n"); return val("0", "void") }
|
||||
if (name == "quit") { g_uses_quit = true; emit(" store i32 0, ptr @L_running\n"); return val("0", "void") }
|
||||
# NETWORKING (NETWORKING-DESIGN §5) — the low-level freedom layer, callable from
|
||||
# Ludic. serialize/apply/sync_size lower to the @Sync by-kind dispatchers (N2);
|
||||
# owner/set_owner/is_owner to the @Owned storage (N3); is_server/local_id read
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue