Recetas de escena

Describe una escena. Importa un mapa.

Una receta es un archivo JSON corto de operaciones de alto nivel. La aplicación lo expande en geometría ajustada a la cuadrícula: los suelos se embaldosan, los muros se juntan en las esquinas, las aberturas quedan sobre las aristas. Así se hacen las escenas iniciales, y es lo bastante pequeño para que un asistente de IA lo escriba a partir de una frase.

Castle Gate at Dusk: murallas, una casa de la guardia y un patio
Castle Gate at Dusk es una receta.

Cómo funciona

  1. Pide«Un santuario junto a un camino en un pinar al atardecer, con un pícaro esperando junto a la senda.»
  2. El asistente escribe una recetaCon las guías incluidas: el esquema de recetas, una guía de construcción con lista de comprobación y el catálogo de assets con cada id y su huella.
  3. ImpórtalaArchivo ▸ Importar JSON de escena. Los modelos se descargan de la biblioteca; el constructor informa de cualquier aviso.
  4. Decora y juegaAhora es una escena normal: pinta, arrastra, añade luces, pulsa Play.

Cómo es una receta

Nueve operaciones hacen un mapa jugable. Los rectángulos están en celdas de cuadrícula, los assets son ids de biblioteca y el constructor se encarga del resto: los muros del perímetro tienen esquinas correctas, la dispersión evita el santuario, la antorcha ilumina el altar.

  • floor rellena rectángulos o sigue un camino, mezclando materiales y rotando losetas al azar para un suelo natural.
  • walls recorre una familia de muros alrededor de un rectángulo con huecos para puertas, o a lo largo de los lados elegidos.
  • prop, line, scatter y clutter colocan cosas por celda, a lo largo de un camino o al azar evitando zonas.
  • light, effect y mini añaden antorchas, fuego y humo, y tokens con PG y anillos.

La carpeta ai/ del repositorio tiene el esquema, la guía de construcción y el catálogo completo. Con Claude Code todo el flujo es un solo comando: /create-scene.

{
  "format": "vtt-recipe",
  "name": "Roadside shrine",
  "grid": { "size": 1 },
  "environment": { "preset": "dusk" },
  "ops": [
    { "op": "floor", "asset": ["realistic-surfaces/grass_floor", "realistic-surfaces/grass_patchy_floor"],
      "rect": [0, 0, 19, 15], "randomYaw": true, "blend": 4 },
    { "op": "floor", "asset": "realistic-surfaces/dirt_floor", "path": [[0, 8], [19, 8]], "width": 2 },
    { "op": "floor", "asset": "realistic-surfaces/flagstone_floor", "rect": [8, 3, 11, 5] },
    { "op": "walls", "asset": "realistic-surfaces/stone_wall", "rect": [8, 3, 11, 5], "sides": "NEW" },
    { "op": "prop", "asset": "realistic-surfaces/stone_altar", "at": [9.5, 3.5] },
    { "op": "scatter", "asset": ["realistic-surfaces/fir_tree", "realistic-surfaces/pine_tree"],
      "area": [0, 0, 19, 6], "count": 14, "avoid": [[7, 2, 12, 6]] },
    { "op": "light", "type": "torch", "at": [9.5, 1.2, 4.5], "intensity": 5, "distance": 6 },
    { "op": "effect", "type": "fire", "at": [9.5, 0.6, 4.5] },
    { "op": "mini", "asset": "characters/rogue", "at": [3, 9], "label": "Pip", "ring": "ally" }
  ]
}

Preguntas

¿Con qué IA funciona?

Con cualquier asistente que pueda leer las guías y escribir JSON. Las guías están escritas para Claude Code, que tiene un comando /create-scene en el repositorio, pero el formato es sencillo.

¿Y si la IA usa un asset que no existe?

El constructor valida cada id contra la biblioteca e informa de lo que falta. Las escenas iniciales están probadas con cero avisos.

¿Puedo escribir recetas a mano?

Sí, y es más rápido de lo que parece: el santuario de arriba son nueve líneas de intención. Las pruebas del repositorio comprueban cualquier receta que dejes en la carpeta de ejemplos.

Importa tu primera receta

Regístrate, abre la mesa, Archivo ▸ Importar JSON de escena.