XpaceOS · Documentación técnicaXpaceOS · Technical documentation
Especificación para diseñar props, mobiliario y superficies a medida que encajen, pixel-perfect, en el motor isométrico de Admira XP (el Digital Twin de XpaceOS).Spec for designing custom props, furniture and surfaces that fit, pixel-perfect, the isometric engine of Admira XP (the XpaceOS Digital Twin).
01 ProyecciónProjection 02 HuellaFootprint 03 AnclajeAnchor 04 IluminaciónLighting 05 Render 06 PantallasScreens 07 EntregablesDeliverables 08 Vía nativaNative path
No es el isométrico clásico 2:1. El tile base es 80 × 28 px:It's not the classic 2:1 isometric. The base tile is 80 × 28 px:
tileW:tileH = 80:28 ≈ 2,86:1Diamond ratio: tileW:tileH = 80:28 ≈ 2.86:1atan(14/40) ≈ 19,3° sobre la horizontal — un dimétrico "aplanado", más bajo que el 26,57° estándar.Floor-line angle: atan(14/40) ≈ 19.3° from horizontal — a "flattened" dimetric, lower than the standard 26.57°.H sube H px verticales, sin inclinarse.Vertical axis (height): straight up, in pure pixels. An object of height H rises H vertical px, with no tilt.Un tile de suelo es un rombo de 80 ancho × 28 alto. Vértices respecto al de arriba: derecha (+40,+14), abajo (0,+28), izquierda (−40,+14).A floor tile is a diamond 80 wide × 28 tall. Vertices relative to the top one: right (+40,+14), bottom (0,+28), left (−40,+14).
Cada elemento ocupa N×M tiles de suelo. La huella se mide en tiles; la altura, en píxeles.Each element occupies N×M floor tiles. The footprint is measured in tiles; the height, in pixels.
1×2 tiles = 40 px de frente × 80 px de fondo en planta.1 tile = 80×28 px. E.g. a 1×2 tile counter = 40 px frontage × 80 px depth in plan.| Elemento (motor real)Element (real engine) | HuellaFootprint | AlturaHeight |
|---|---|---|
| MostradorCounter | 1×2 | 16 px |
| Caja registradoraCash register | 1×2 | 16 px |
| AromatizadorAir freshener | 1×1 | 44 px |
| Kiosco / tótemKiosk / totem | ~0,64×0,64 | variablevariable |
{
"id": "expositor-tabaco",
"footprint": [1, 2], // ancho × fondo en tiles// width × depth in tiles
"heightPx": 90,
"anchor": [40, 118], // px del PNG que toca el suelo en la esquina origen// px of the PNG touching the floor at the origin corner
"screenRect": null, // o [x,y,w,h] si lleva pantalla// or [x,y,w,h] if it has a screen
"palette": { "top":"#a88860", "left":"#6a5030", "right":"#8b6b45" }
}
Todo se modela como prisma con tres tonos del mismo color. Luz implícita desde arriba-izquierda. Mantener este esquema en TODOS los elementos para coherencia visual.Everything is modeled as a prism with three shades of the same color. Implicit light from the top-left. Keep this scheme on ALL elements for visual consistency.
| CaraFace | TonoShade | Ejemplo (madera)Example (wood) |
|---|---|---|
| Superior (top)Top | la más clarathe lightest | #a88860 |
| DerechaRight | media / basemid / base | #8b6b45 |
| IzquierdaLeft | la más oscurathe darkest | #6a5030 |
Color de pared del local actual: #e8dcc0.Wall color of the current venue: #e8dcc0.
Entregar compatible con ambos. Si entregáis PNG, hacedlo en estilo 16-bit (es el de feria).Deliver compatible with both. If you ship PNGs, use the 16-bit style (that's the trade-show one).
Si el elemento lleva pantalla, su contenido es una zona 16:9, base 160×90 px, que el motor rellena con vídeo/imagen en vivo.If the element has a screen, its content is a 16:9 area, base 160×90 px, which the engine fills with live video/image.
footprint, heightPx, anchor, screenRect, palette.JSON per element: footprint, heightPx, anchor, screenRect, palette.El motor dibuja por código, no por imágenes. La primitiva es:The engine draws by code, not by images. The primitive is:
drawIsoBlock(col, row, ancho, fondo, alturaPxwidth, depth, heightPx, topCol, leftCol, rightCol, neonCol)
// ↑ posición en rejilla ↑ huella en tiles ↑ px ↑ 3 caras + neón opc.// ↑ grid position ↑ footprint tiles ↑ px ↑ 3 faces + optional neon
Si pixeria entrega el elemento descompuesto en cajas (lista de prismas: huella + altura + 3 colores), lo integramos sin imágenes y pesa 0 KB. Ideal para mobiliario sencillo (mostrador, expositor, peana).If pixeria delivers the element decomposed into boxes (a list of prisms: footprint + height + 3 colors), we integrate it with no images and it weighs 0 KB. Ideal for simple furniture (counter, display, plinth).