Wildstash commited on
Commit
d044543
·
verified ·
1 Parent(s): 267bb29

Document Living Canvas Minecraft bridge

Browse files
CODEX_BUILD_LOG.md CHANGED
@@ -24,3 +24,4 @@ This file records how Codex was used to build the hackathon entry.
24
  - Improved Living Graffiti with prompt-derived names, explicit 32x32 block sizing, 10-frame footprint metadata, and staged growth from seed sketch to server myth.
25
  - Added Living Moving Canvas mode: a multi-prompt 12x12 Minecraft wall simulation with neighbor fusion, attention weather, growth stages, and a `living_canvas.mc.v1` packet.
26
  - Upgraded Living Moving Canvas into an animated wall: stable Minecraft coordinates, pulsing timeline frames, visible fusion links, evolution events, and a clearer Thousand Token Wood demo runbook.
 
 
24
  - Improved Living Graffiti with prompt-derived names, explicit 32x32 block sizing, 10-frame footprint metadata, and staged growth from seed sketch to server myth.
25
  - Added Living Moving Canvas mode: a multi-prompt 12x12 Minecraft wall simulation with neighbor fusion, attention weather, growth stages, and a `living_canvas.mc.v1` packet.
26
  - Upgraded Living Moving Canvas into an animated wall: stable Minecraft coordinates, pulsing timeline frames, visible fusion links, evolution events, and a clearer Thousand Token Wood demo runbook.
27
+ - Added per-tile Minecraft origins/bounds and documented the Paper bridge path for placing Living Canvas tiles and representing motion through particles, map updates, or block-frame updates.
README.md CHANGED
@@ -74,6 +74,8 @@ The MVP emits:
74
  - a named Gradio API endpoint: `living_graffiti`
75
  - a named Gradio API endpoint: `living_canvas`
76
 
 
 
77
  The repo also includes a Paper plugin scaffold in [`paper-plugin/`](paper-plugin/) that can reach the live Space and is ready to extend into block placement.
78
 
79
  ### API Shape
 
74
  - a named Gradio API endpoint: `living_graffiti`
75
  - a named Gradio API endpoint: `living_canvas`
76
 
77
+ Each `living_canvas.mc.v1` tile includes a stable `minecraft_origin` and `minecraft_bounds`, so the Paper bridge can place it directly on the 384x384 wall.
78
+
79
  The repo also includes a Paper plugin scaffold in [`paper-plugin/`](paper-plugin/) that can reach the live Space and is ready to extend into block placement.
80
 
81
  ### API Shape
app.py CHANGED
@@ -787,6 +787,19 @@ def summarize_wall_tile(prompt: str, index: int, wall_zone: str, tick: int) -> d
787
  "prompt": prompt,
788
  "creator": player,
789
  "plot": plot,
 
 
 
 
 
 
 
 
 
 
 
 
 
790
  "moods": moods,
791
  "palette": palette_names,
792
  "value": value["creative_value"],
@@ -965,6 +978,12 @@ def living_wall_canvas(prompt_block: str, wall_zone: str, tick: int):
965
  "growth_stage_unlocks",
966
  "server_packet_export",
967
  ],
 
 
 
 
 
 
968
  "fusion_links": links,
969
  "evolution_events": events,
970
  "tiles": tiles,
 
787
  "prompt": prompt,
788
  "creator": player,
789
  "plot": plot,
790
+ "minecraft_origin": {
791
+ "x": plot["world_x"],
792
+ "y": 80,
793
+ "z": plot["world_z"],
794
+ },
795
+ "minecraft_bounds": {
796
+ "x1": plot["world_x"],
797
+ "y1": 80,
798
+ "z1": plot["world_z"],
799
+ "x2": plot["world_x"] + PLOT_SCALE - 1,
800
+ "y2": 80 + PLOT_SCALE - 1,
801
+ "z2": plot["world_z"],
802
+ },
803
  "moods": moods,
804
  "palette": palette_names,
805
  "value": value["creative_value"],
 
978
  "growth_stage_unlocks",
979
  "server_packet_export",
980
  ],
981
+ "minecraft_animation_plan": {
982
+ "v1": "place stable 32x32 tiles as map art or wool blocks",
983
+ "v2": "pulse fusion links with particles between tile centers",
984
+ "v3": "periodically update tile frames from the GIF timeline",
985
+ "redstone_required": False,
986
+ },
987
  "fusion_links": links,
988
  "evolution_events": events,
989
  "tiles": tiles,
docs/MINECRAFT_SERVER_BLUEPRINT.md CHANGED
@@ -65,12 +65,35 @@ total canvas: 384 x 384 blocks
65
  2. Install Paper and WorldEdit.
66
  3. Upload DreamWall bridge jar.
67
  4. Run `/dreamwall fetch`.
68
- 5. Manually place one generated row-run mural on a test wall.
69
- 6. Record a 20-second proof clip.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
 
71
  ## Second Server Milestone
72
 
73
- Implement real block placement from `grid.row_runs`:
74
 
75
  ```text
76
  world_x = canvas_origin_x + plot.x * 32 + run.x
 
65
  2. Install Paper and WorldEdit.
66
  3. Upload DreamWall bridge jar.
67
  4. Run `/dreamwall fetch`.
68
+ 5. Call the `living_canvas` Space endpoint and copy the `living_canvas.mc.v1` packet.
69
+ 6. Manually place one generated 32x32 tile from `tiles[].minecraft_origin` on a test wall.
70
+ 7. Add signs for title, creator, stage, weather, and value.
71
+ 8. Record a 20-second proof clip.
72
+
73
+ ## Living Canvas Packet
74
+
75
+ The main demo packet is `living_canvas.mc.v1`.
76
+
77
+ It gives the server:
78
+
79
+ - stable tile coordinates
80
+ - per-tile `minecraft_origin`
81
+ - per-tile `minecraft_bounds`
82
+ - `stage`, `weather`, `value`, and `mutation_rate`
83
+ - `fusion_links` between tiles
84
+ - `evolution_events` for narration
85
+ - a `minecraft_animation_plan`
86
+
87
+ The wall does not need physical redstone for V1. Use the Space GIF as proof of motion, then represent motion in Minecraft with one of:
88
+
89
+ - animated map updates
90
+ - particles between linked tiles
91
+ - block-frame updates on a timer
92
+ - lamps or command-block pulses around high-stage artifacts
93
 
94
  ## Second Server Milestone
95
 
96
+ Implement real block placement from one `living_canvas.mc.v1` tile or one `dreamwall.mc.v1` `grid.row_runs` packet:
97
 
98
  ```text
99
  world_x = canvas_origin_x + plot.x * 32 + run.x
paper-plugin/README.md CHANGED
@@ -9,6 +9,7 @@ The hackathon Space is the official submission surface. This plugin scaffold is
9
  - `/dreamwall` shows the configured Space endpoint.
10
  - `/dreamwall fetch` calls the Space app domain and confirms the bridge can reach Hugging Face.
11
  - A scheduled task can be extended to poll approved wall jobs.
 
12
 
13
  ## Planned Placement Behavior
14
 
@@ -25,6 +26,21 @@ The Space emits a `dreamwall.mc.v1` JSON packet with:
25
  - `grid.row_runs`
26
  - WorldEdit preview lines
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  The next plugin step is converting `grid.row_runs` into wall block placement:
29
 
30
  ```text
@@ -41,10 +57,12 @@ The Space also emits a `neuropets.mc.v1` packet from the `hatch_pet` endpoint. T
41
 
42
  For the hackathon video, the safest route is:
43
 
44
- 1. Generate art in the Space.
45
- 2. Copy the bridge packet or call the Gradio API.
46
- 3. Use the Paper plugin to place the packet at a fixed gallery wall.
47
- 4. Walk through the server gallery.
 
 
48
 
49
  ## Flat World Canvas
50
 
@@ -62,6 +80,8 @@ The Space assigns the plot. The plugin should trust the packet and place the mur
62
  canvas_origin + plot.x * plot_size, y=80, canvas_origin_z + plot.z * plot_size
63
  ```
64
 
 
 
65
  ## Build
66
 
67
  ```bash
 
9
  - `/dreamwall` shows the configured Space endpoint.
10
  - `/dreamwall fetch` calls the Space app domain and confirms the bridge can reach Hugging Face.
11
  - A scheduled task can be extended to poll approved wall jobs.
12
+ - The Space now emits `living_canvas.mc.v1`, a multi-prompt wall packet for the main hackathon demo.
13
 
14
  ## Planned Placement Behavior
15
 
 
26
  - `grid.row_runs`
27
  - WorldEdit preview lines
28
 
29
+ The stronger cash-prize path uses `living_canvas.mc.v1` from the `living_canvas` endpoint:
30
+
31
+ - `tile_size_blocks`: `32 x 32`
32
+ - `canvas_size_tiles`: `12 x 12`
33
+ - `minecraft_wall_size_blocks`: `384 x 384`
34
+ - `tiles[].minecraft_origin`
35
+ - `tiles[].minecraft_bounds`
36
+ - `tiles[].stage`
37
+ - `tiles[].weather`
38
+ - `fusion_links`
39
+ - `evolution_events`
40
+ - `minecraft_animation_plan`
41
+
42
+ The plugin should treat each tile as a stable wall address. Motion comes from particles, map updates, or block-frame updates, not from moving the artifact to a new plot.
43
+
44
  The next plugin step is converting `grid.row_runs` into wall block placement:
45
 
46
  ```text
 
57
 
58
  For the hackathon video, the safest route is:
59
 
60
+ 1. Run Living Moving Canvas in the Space.
61
+ 2. Copy the `living_canvas.mc.v1` packet or call the Gradio API.
62
+ 3. Place one or more `tiles[]` at their `minecraft_origin`.
63
+ 4. Add signs for creator, title, value, stage, and weather.
64
+ 5. Use particles or a command-block pulse to show fusion links.
65
+ 6. Walk through the server gallery.
66
 
67
  ## Flat World Canvas
68
 
 
80
  canvas_origin + plot.x * plot_size, y=80, canvas_origin_z + plot.z * plot_size
81
  ```
82
 
83
+ For `living_canvas.mc.v1`, the packet already includes `tiles[].minecraft_origin`, so the plugin can skip recomputing the address.
84
+
85
  ## Build
86
 
87
  ```bash