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": "dnd-characters/halfling_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

Abre el editor, Archivo ▸ Importar JSON de escena. Para construir no necesitas cuenta.