Grid Placement 6.0 — snap-fit grids for Godot 2D + 3D
Place buildings on an isometric map, paint layered terrain with fences that keep the ground underneath, build side-view platformer levels, settle hex tiles — or snap together a 3D modular house. Every clip below is captured from a real running demo, driven through the real placement pipeline. In the 3D house proof, floors, walls, door, windows, four CORNER posts, both roof slopes and both gables are real placement commits (44 total); only the chimney is staged dressing, labeled as such wherever it appears.
Kit-house assembly — floors through GRID roof, end to end
The page-head clip is the full build: floor deck → N/S walls and door → E/W window columns → four CORNER posts → House Roof slopes → House Gable triangles, each through catalog ghost → valid → click. Chimney is the only visual-only dressing. No closing orbit — 94.0 s, readable per beat with eased camera and cursor, in a woodland clearing with the compact idle UI. Valid previews render as a neutral wash (the ghost shows where the piece lands; green verdicts live on the ground quads) instead of a full-volume green slab. Poster: first walls rising over the laid deck with the catalog live — one real film frame.
Proof details + object classification
Cut (frames 92–2910, no reordering — catalog select through finished house + chimney, orbit excluded) from media/demos/grid_placement_6_house_proof.mp4 (3155 f, 105.2 s, driver godot/test/smoke/demo_3d_house_film.gd, PROOF_DONE placed_total=44, fail-closed). The 24-tile 1×1 floor deck is laid with one rect-fill drag through the demo-owned drag path (click = corner A, cursor glide = corner B, release commits the inclusive rectangle through the real service); walls, door, windows, four CORNER posts, two per-slope roof pieces and two dedicated yaw-0 gable scenes commit through the GRID CELL/CORNER ghost paths. Placement ops come from HouseBuildPlan — the same SSOT the GdUnit geometry suite enforces. Per-object classification: placement_service 44 (24 deck fill tiles, N row + NW/NE corners, E column + E shutters + SE corner, S row + door + SW corner, W column + W shutters, 2 roof slopes, 2 gables) · visual_only 1 (chimney — staged, never registered) · authored_environment (grid + woodland clearing + dressing props). The camera glides per beat with eased in/out (deck, N face, S face, E/W columns, corners, roof, both gables) so every commit lands on screen. A fail-closed PROOF_GEOM gate verifies dressed-face-outward on all 12 wall-family slots and full 24-cell deck coverage before PROOF_DONE. Captured at source 32f27923d (branch work/site-final: eased-motion pass — smootherstep camera glides, ease-in-out cursor, deterministic dwell breathing; same woodland clearing + neutral valid-ghost wash).
1. Watch placement happen — five workflows
The four 2D demos are driven through their real placement flow — paint, select, preview, place, rotate, move, demolish, mode-switch — and recorded at fixed 30 fps through the release-gate pipeline (scripts/ci/demo_video_proof.py generate, commit-bound manifest, guard --strict green at 11cdeb1f2 for isometric/platformer/hex and at d1c6749 for the top-down refix); the 3D house film v7 is captured at 32f27923d with the rect-fill deck drag, eased per-beat camera, woodland clearing and neutral valid-ghost wash. Press play on any card.
Top-down — layered terrain, objects and fences
Fences occupy their own layer — painting a fence never replaces the ground underneath. The fence goes down as one hollow 4×4 pen with a stone pillar parked beside it on bare ground; rotate/flip, demolish and a clean mode-switch close the loop. 14/14 checkpoints, zero skips. Refix at d1c6749: the resource display now uses the dark-deck navy panels matching the rest of the HUD.
Isometric — grid-aligned building on an isometric map
Single snow, then a grass drag across the diamond grid, then a blacksmith snapped onto it. Then the failure workflow: a tile is demolished, the building re-selected, hovered over its own occupied tile — red ghost, rejected — and the cursor moved away. 12 supported checkpoints pass, 2 honestly unsupported.
Platformer — side-view placement and editing
Wall blocks need neighbors: an isolated single is rejected on the spot, a connected block lands. The crate lands in the empty cell above its painted support — resting on it, not inside it. Rotation is honestly skipped: the supported box cannot rotate in place. 11 supported checkpoints pass, 2 unsupported.
Hex — native hex-grid placement
Dirt, grass, stone and water brushed across a true hex grid with the beehive selected and the cursor highlight tracking every cell. 7 supported checkpoints pass, 5 unsupported (terrain-only paths).
House — 3D placement interaction on the grid
Empty grid to finished house in the placement-demo scene: catalog select, one rect-fill drag lays the 24-tile 1×1 deck, ghost previews → walls → door → windows → four CORNER posts → two per-slope roof pieces → gable triangles, with the toolbar, mode readout and build log visible throughout. 44 GRID commits (CELL fill + CELL + CORNER + shutter overlays); chimney is the only staged dressing. The camera glides per beat so exactly what is being placed is on screen — deck from above, N/S faces, E/W columns, corners, roof, both gables. Filmed at 32f27923d — dressed faces verified outward by the in-film geometry gate, every deck-side joint flush on its grid line, corners MOUNTED at the intersections (see §2).
2. Finished 3D result — seam-closed modular walls
A real frame of the same §1 film (closing orbit): every module below was committed through the placement pipeline, none hand-placed. Wall, door, window, roof and gable modules carry measured mesh bounds and opt into partner-aware seam closure, so each deck-side face lands exactly on its shared grid line — verified numerically at this source on all four interfaces (N, S, E, W) plus the floor grade, worst joint gap 0.0000. Four CORNER posts commit at the wall-joint intersections (generic yaw, exterior occupancy).

Finished house — 44 committed modules + staged chimney
24-tile deck, 2 N walls, an S wall, an S door, 3+3 E/W wall/window column pieces through GRID CELL commits, four CORNER posts at the outer intersections, then two individual Roof Slope pieces (one commit per side) and two House Gable ends through the same GRID CELL ghost-click path. Gable plaster fills the roof WoodTrim bargeboard triangle. Chimney is staged dressing only (flipped so its moulded end is buried in the roof plane). Watch the 94.0 s page-head clip for the piece-by-piece assembly, or the 105.2 s proof film for the closing orbit.
3. Why Grid Placement 6.0
2D + 3D in one plugin
Square, isometric and hex grids plus side-view and full 3D — the clips above are all the same system.
Layered terrain
Ground, fences, objects and buildings stack on separate layers instead of overwriting each other.
Modular pieces that snap
Walls, doors, windows, floors, corner posts, roof slopes and gable triangles align to grid slots — the house is 44 committed modules, zero manual nudging. (The chimney shown is staged dressing, not a placement commit.)
Save / load in the demo UI
Every 2D demo ships SAVE and LOAD front and center — persistence is part of the workflow, not an afterthought.
4. itch.io store set — sized, verified, cut at this source
11cdeb1f2), the top-down refix (guard --strict green at d1c6749) and the 3D house film v7 at 32f27923d (44 GRID commits: one rect-fill deck drag + CELL + CORNER + shutter overlays, per-slope roof + mirrored gables, per-beat camera, woodland clearing, fail-closed PROOF_GEOM gate). Download from this page and upload as-is.Every file below is cut to itch.io's published specs (cover 315:250; 3–5 screenshots any size; animated GIFs accepted as screenshots; trailer via YouTube/Vimeo link — itch takes no direct video upload). Download from this page and upload as-is. Slot plan + byte counts: itch_media_inventory.md.

Cover v6 — 630×500 PNG
Exact 315:250 ratio. One confident artwork: a large validated door ghost (thinned valid tint, arch/window/Z-brace readable) docking in the dark timber doorway, sunlit facade, UI/GridLines/knight/indicator quads hidden for the still only — slim title + secondary-slate value-prop lockup, no proof strip, no badge, no in-game UI. Built by media/itch/cover/build_covers.py --style v5 from the service-path still driver (godot/test/smoke/demo_3d_cover_still.gd --mode=hero, grid_placement_dev media/cover-v4-pass, deterministic byte-identical reproduction); every pixel is game footage. Upload this PNG as the cover. 2× master (888 KB) linked for reuse.

Screenshot 1 — house action
Live valid-ghost shutter placement on the timber house (neutral wash + green verdict strip, UI hidden for the still only) — an honest-input capture frame, 43/44 placed. The earlier v6 film frame stays in the proof set. PNG 950 KB · GIF 1.0 MB

Screenshot 2 — top-down
4×4 pen with the pillar parked beside it, selected row and placement log. PNG 341 KB · GIF 655 KB

Screenshot 3 — hex
Dirt and water brushed on the hex grid, beehive ghost tracking the cursor. PNG 349 KB · GIF 446 KB

Screenshot 4 — isometric
Blacksmith on snow and grass with the build log confirming it. PNG 508 KB · GIF 904 KB

Screenshot 5 — platformer
Walls and the box committed with adjacency rejects in the build log. PNG 151 KB · GIF 746 KB

GIF — top-down workflow
Full 13.5 s flow at 12 fps, 640×360, loop-verified. Uploads directly as an itch screenshot.

GIF — isometric workflow
Full 17.0 s flow including the failure workflow, 12 fps, 640×360, loop-verified. Uploads directly as an itch screenshot.

GIF — platformer workflow
Full 12.8 s flow at 12 fps, 640×360, loop-verified — opens mid-action, no slow intro. Uploads directly as an itch screenshot.

GIF — hex workflow
Full 10.0 s flow at 12 fps, 640×360, loop-verified. Uploads directly as an itch screenshot.

GIF — house wall assembly
7.7 s wall + door excerpt (assembly 46.2–53.9 s: red-blocked ghost → wall commit → door commit, stable camera, same-framing loop), 12 fps, 640×360. Uploads directly as an itch screenshot.
media/demos/grid_placement_6_house_proof.mp4 (105.2 s, 11.0 MB, kit-house assembly end to end) there, then paste the link. The five demo MP4s (§1) work as unlisted YouTube clips linked from the description.5. Technical verification / release evidence
Audit material for reviewers. Everything above is backed by the artifacts below — same source, revalidated on each deploy. Closed by default; open what you need.
Provenance — source, kit, pipeline
- Capture source commits: 2D films
11cdeb1f2(branchwork/site-final: idle-UI overhaul, real-click proof driver) with the top-down set refixed atd1c6749(same branch line: resource display moved to the dark-deck navy panels, 14/14 re-verified); 3D house film v732f27923d(same branch: woodland clearing + idle-UI overhaul + eased motion) - 2D source commit: isometric/platformer/hex at
11cdeb1f2(recaptured this round, guard --strict green; top-down set captured at2e31e34e4, no runtime-relevant delta to11cdeb1f2) plus the top-down refix atd1c6749(dark-deck resource display, guard --strict green 14/14) - Kit: Quaternius
medieval_villagepieces · 44 GRID commits: 24-tile deck, 2 N walls, 1 S wall, 1 S door, 3+3 E/W-column pieces, 4 CORNER posts, 2 roof slopes (one per side, committed individually), 2 gable ends. Chimney is staged dressing. - Capture: Godot MovieWriter at fixed 30 fps → FFmpeg H.264
yuv420p · faststart· 1280×720 (2D viascripts/ci/demo_video_proof.py generate, commit-bound manifest, 1 clean rep,guard --strictgreen at 11cdeb1f2; 3D viademo_3d_house_film.gd, fail-closed Proof3DDriver, PROOF_DONE placed_total=44; one rect-fill deck drag; chimney staged, never counted) - Seam state: wall/door/window entries carry measured
seam_bounds_3dwithseam_close_to_partneron — N/S/E/W deck interfaces and floor grade all close to 0.0000 on the real path. Four CORNER posts MOUNTED at intersections; #971 wall/door/window closure unchanged.
2D demo proof provenance + checkpoint detail
- Pipeline:
scripts/ci/demo_video_proof.py generatein thegrid_placement_devrepo — boots each demo, drives the scripted workflow, records via--write-movieat fixed 30 fps, encodes H.264, writes a commit-bound manifest. - Checkpoints: 44 supported pass / 0 fail / 9 honestly-unsupported skips, 1 clean rep, guard --strict green. Top-down 14/14, zero skips · isometric 12 + 2 unsupported · platformer 11 + 2 unsupported · hex 7 + 5 unsupported (terrain-only paths). “Unsupported” = capability the demo does not implement, recorded for review — not a failure. The
no_stale_terrain_ghostgate enforces terrain/object mode exclusivity on film; fence paints verify against the routed Fences layer with the ground asserted intact. - Storefront reuse: these same MP4s are the intended itch.io media — no separate marketing captures. Manifest: demo_video_proof_manifest.json · checklist: review_checklist.md · top-down refix manifest: demo_video_proof_manifest_topdown_refix.json · refix checklist: review_checklist_topdown_refix.md · derivatives: top_down_derivatives.json · itch slot plan: itch_media_inventory.md.
Media file inventory
media/demos/grid_placement_6_house_assembly.mp4 7.1 MB 94.0 s 2819 frames (hero: floors through roof slopes+gables+chimney, frames 92–2910, no orbit) media/demos/grid_placement_6_house_proof.mp4 11.0 MB 105.2 s 3155 frames (3D placement interaction, UI visible, placed_total=44, rect-fill deck drag, woodland clearing, eased motion) media/demos/grid_placement_6_top_down_proof.mp4 320 KB 16.5 s 494 frames (fence pen + pillar + demolish) @ d1c6749 (dark-deck resource display refix) media/demos/grid_placement_6_isometric_proof.mp4 553 KB 17.0 s (blacksmith + failure workflow) @ 11cdeb1f2 media/demos/grid_placement_6_platformer_proof.mp4 179 KB 12.9 s (walls + box + adjacency rejects) @ 11cdeb1f2 media/demos/grid_placement_6_hex_proof.mp4 243 KB 10.0 s (hex paint + beehive) @ 11cdeb1f2 media/demos/*_poster.jpg 6 posters, each cut from its film (house_poster = v7 assembly t=93 (finished + chimney); assembly poster = v7 assembly t=47.2 (first walls, catalog live); 2D posters = current action stills) media/itch/cover/cover_630x500.png 347 KB cover v6 (door ghost with readable geometry, slim slate lockup), master 888 KB
11cdeb1f2 with the top-down set refixed at d1c6749 (branch work/site-final line: idle-UI overhaul, real-click proof driver, dark-deck resource display). 3D house film v7 + house posters/GIF at 32f27923d (woodland clearing, neutral valid-ghost wash, eased motion). Issues #982/#971/#907/#973 stay open.