Un proyecto es una carpeta (o un ZIP de esa carpeta) con tres archivos. Se carga desde la pestaña Proyecto del visor, o se publica en proyectos/<id>/ del servidor y se abre con ?p=<id>.
mi-proyecto.zip ├── project.json ← configuración (obligatorio) ├── model.glb ← modelo 3D glTF binario (obligatorio) ├── planta.jpg ← imagen de la planta para elegir puntos (obligatorio) └── marcadores.pdf ← carteles QR para imprimir (opcional; se descarga desde el visor)
Ejemplo completo para descargar: casa-andrew.zip.
Todo en metros. X hacia el este del plano, Y hacia el norte del plano, Z hacia arriba. El origen conviene que sea una esquina exterior de la casa. El GLB debe exportarse desde Blender con la opción +Y up (la de siempre): el visor convierte solo.
| Campo | Obligatorio | Qué es |
|---|---|---|
id, name | sí | Identificador corto sin espacios y nombre visible. |
model, plan | no | Nombres de archivo. Por defecto model.glb y planta.jpg. |
house_center | no | [x, y] centro del edificio, para las vistas predefinidas. |
eye_height | no | Altura de ojos por defecto (1.6). |
north_deg | no | Grados a girar el norte del plano en sentido horario para llegar al norte real. 0 si no se sabe. |
plan_calib | sí para AR | Calibración de planta.jpg: x0, yb = píxel del origen (x=0, y=0); pxm = píxeles por metro; w, h = tamaño de la imagen en píxeles. Fórmula: px = x0 + x·pxm, py = yb − y·pxm. |
views | no | Posiciones de cámara [x, y, z] para persp, planta, sur, este, norte, oeste. Si faltan se calculan desde house_center. |
layers | no | Lista de capas: id, label, group, nodes (nombres de objetos o colecciones del GLB). Si falta, las capas se arman solas con las colecciones de primer y segundo nivel del GLB. |
points | sí para AR/VR | Puntos donde pararse: id, label, world:[x,y], interior:true|false, ref:{label, world:[x,y]}. ref es hacia dónde debe mirar la persona para alinear a mano. |
markers | no | size_m = lado del QR impreso en metros; list = code (texto del QR), label, world:[x,y,z] del centro del QR, facing_deg = hacia dónde mira la cara del QR (0 = norte del plano, horario). Los QR se pegan verticales. pdf = nombre del PDF con los carteles (por defecto marcadores.pdf). |
pxm.code, al tamaño exacto size_m, sin escalar al imprimir. Pegarlo vertical en el punto replanteado, con el centro a la altura world[2]. En el visor se lee con cualquier cámara; cuanto más de frente y más cerca (1 a 6 m), más precisa la alineación.{
"id": "galpon", "name": "Galpón Ruta 9",
"house_center": [6, 10],
"plan_calib": { "x0": 80, "yb": 1900, "pxm": 120, "w": 1500, "h": 2000 },
"points": [
{ "id": "acceso", "label": "Acceso", "world": [6, -3], "interior": false,
"ref": { "label": "el portón", "world": [6, 0] } }
],
"markers": { "size_m": 0.2, "list": [
{ "code": "GALPON-M1", "label": "M1 esquina SO", "world": [0, 0, 1.0], "facing_deg": 225 }
] }
}