production-tile-collision-map

Platformneta-skills/production-tile-collision-map
Use it in Cohub

Paste this into your agent's chat — it fetches the skill and follows it.

Use the skill: production-tile-collision-map. Run `npx -y @neta-art/neta-search-cli@latest skills use neta-skills/production-tile-collision-map --via site` and follow what it prints. Read its complete output, redirecting it to a temporary file first if necessary, and resolve relative paths from the skill directory it prints.
Install from a terminal
npx -y @neta-art/neta-search-cli@latest skills use neta-skills/production-tile-collision-map
Summary

Turn your map art into playable collision grids with roads, open areas, and interactive path testing.

  • Generates a background image with roads and open spaces, then marks where characters can walk and where they hit walls.
  • Roads allow tighter movement; plazas and courtyards need more clearance so wider characters don't clip into buildings.
  • Delivers an interactive preview page: click to test routes, press arrow keys to move, toggle layers to see roads vs open ground.
  • Works best with clear top-down maps showing stone roads, grass courtyards, water edges, and building roofs without clutter.
  • Outputs grids ready for game engines, plus a shareable test page so collaborators can walk the map before coding.
SKILL.md
# Production Tile Collision Map Skill

## Hard default

For new production map backgrounds, **use image generation by default** with `references/map-generation-prompt.md`.

Do **not** create SVG diagrams, abstract block layouts, or placeholder vector art as the shipped `background.png`. SVG/mock diagrams are allowed only as internal explanatory sketches when the user explicitly asks for a schematic.

Always preserve/use the collision review template in `templates/collision-preview/` for public QA review.

## Current default pipeline: latest recognition-led differential clearance

```text
image-model background.png
  -> background QA
  -> image-recognition-candidates.json  # primary semantic source: image-derived road/open/blocker candidates
  -> raw visual candidates              # bounded connector/blocker override hints only
  -> recognition-source-audit.json      # proves source shift and clean regeneration
  -> road-grid.json                     # image-filtered road + critical connectors
  -> open-area-grid.json                # image-filtered open area + blocker keepout
  -> walkable-union-grid.json
  -> road-clearance-grid.json           # road: 3-tile clearance
  -> open-area-clearance-grid.json      # open area: 5-tile clearance
  -> union-clearance-grid.json          # 5-tile semantic-union baseline
  -> clearance-grid.json                # runtime = unionClearance5 ∪ roadClearance3
  -> walkable-grid.json                 # compatibility alias
  -> route-cost-grid.json
  -> turn-aware A* path QA
  -> semantic-diff-report.json          # compares recognition source vs overrides / prior candidates
  -> latest-recognition-contract.json   # declares source priority and forbidden shortcuts
  -> 06-final.tmj
  -> HTML collision preview
```

Core rule: do not claim a latest rebuild if only QA/report files changed. A latest rebuild must regenerate `image-recognition-candidates.json` and every downstream grid/export from the current background.

Runtime convention:

```text
0 = walkable
1 = blocked
```

## Required workflow

### 1. Generate or accept production background

- For new maps, call an image-generation model; do not hand-build SVG/vector placeholder backgrounds.
- Use `references/map-generation-prompt.md`.
- Prefer `1024x1024` or another clean tile multiple.
- Require top-down orthographic camera, grid-readable roads, clear water/roof/road/open-area boundaries, no UI/text/labels/characters.
- If the image fails QA, regenerate/edit first rather than forcing collision.

### 2. Semantic layers

Split walkability into:

- `road-grid`: stone roads, dirt lanes, bridge decks, door approaches, narrow branch paths.
- `open-area-grid`: courtyards, plazas, broad grass/ground planes.
- `blocked`: roofs/buildings, water, walls, dense trees, fences, props.

Latest source-priority contract:

1. Treat `image-recognition-candidates.json` as the primary semantic source.
2. Use manual/raw visual shapes only as bounded hints for critical connectors, thresholds, bridges, doors, and hard-blocker overrides.
3. Filter manual road/open hints against image-recognized candidates; do not let broad rectangles become the actual semantic layer.
4. Merge image-recognized hard blockers with explicit blocker overrides before clearance.
5. Output `recognition-source-audit.json` and `semantic-diff-report.json` so reviewers can verify that semantic recognition was actually rerun.

Road detection should emphasize continuity and route structure, not only color. Open-area detection should emphasize area and openness, not narrow strips.

### 3. Differentiated clearance

Default:

```text
roadAgentDiameterTiles = 3
openAreaAgentDiameterTiles = 5
runtime = unionClearance5 ∪ roadClearance3
```

This keeps the safe broad-body baseline while additively preserving narrow roads. When iterating, compare with the previous runtime grid:

```text
newWalkable > 0
newlyBlocked == 0   # for additive road-clearance improvements
```

### 4. Route cost and pathfinding

Use `route-cost-grid.json` and turn-aware A\*:

```text
stepCost = 10
turnCost ≈ 80
roadCost < openAreaCost
nearObstaclePenalty > 0
blockedCost = 9999
```

Report raw tile length, compressed segment count, turns, reachability, and layer-specific QA probes.

### 5. HTML collision preview

Use `templates/collision-preview/` as the default review page. It includes:

- canvas map preview;
- click-to-path;
- WASD / arrow movement;
- grid toggle;
- collision toggle;
- QA point toggle;
- semantic layer toggle `L`;
- turn-aware route HUD.

Publish this preview to public share after each meaningful revision.

## Expected output package

```text
background.png
annotations.json
image-recognition-candidates.json
recognition-source-audit.json
raw-walkable-grid.json
road-grid.json
open-area-grid.json
walkable-union-grid.json
road-clearance-grid.json
open-area-clearance-grid.json
union-clearance-grid.json
clearance-grid.json
walkable-grid.json
route-cost-grid.json
semantic-diff-report.json
latest-recognition-contract.json
06-final.tmj
qa/path-qa.json
qa/collision-overlay-probe-qa.png
index.html
style.css
script.js
```

## References

- `references/map-generation-prompt.md`
- `references/semantic-layered-clearance.md`
- `references/runtime-integration.md`
- `references/annotation-schema.md`
- `templates/collision-preview/`