El plano de localidades que tu público merece, sin construirlo tú.

Canvas renderiza los planos diseñados en Studio con el zoom de tres niveles característico, estados de localidad en vivo y tu tema: en web, móvil y dentro de cualquier framework. Con licencia, autoalojable y nunca tarifado por localidad.

Un renderizador, todo tipo de recintos

La demo es Seatmap Canvas Next ejecutándose en esta página: elige un recinto y haz zoom desde el graderío hasta una sola localidad.

Del lienzo de Studio a la pantalla del comprador

Los planos se diseñan una vez en Seatmap Studio y Canvas los renderiza idénticos al píxel: aquí ves ambos lados de esa canalización.

La demo en vivo. La experiencia Canvas completa: cambio de planta, zoom de tres niveles y retenciones de localidades en vivo. Haz clic en la captura para abrirla.
Seatmap Studio
Captura del editor de planos de Seatmap Studio
Planos diseñados en Studio. Dibujados una vez en Seatmap Studio: Canvas renderiza el mismo documento con tooltips ricos, categorías de precio y plantas.

¿Te suena?

La doble reserva es una trampa

Las condiciones de carrera de selección lectura-escritura fallan bajo carga, y una caché sola puede perder una retención en un failover. Canvas se conecta a retenciones y reservas respaldadas en base de datos que hacen estructuralmente imposible vender dos veces la misma localidad.

Contadores por localidad que penalizan el crecimiento

El SaaS de planos de localidades factura por asiento usado y deja caducar los no usados. Canvas se licencia a tarifa plana: una sala de 300 localidades o un estadio de 30.000, en las mismas condiciones.

Los widgets solo en la nube se quedan cortos

Cuando el área de compras exige residencia de datos, las herramientas solo alojadas son un callejón sin salida. Canvas corre en tu infraestructura, con tu marca.

Comparar

Lo que puede sostener seatmap-canvas v1, y lo que abre Seatmap Canvas Next
seatmap-canvas v1Seatmap Canvas Next
Hasta dónde llegaUna sala de unos miles de localidadesUn estadio que sigue desplazándose y haciendo zoom
Arriba y abajoUna sola plantaNueve plantas — palco sobre patio, camarote sobre camarote
Lo que cabe en la nocheLocalidades en bloquesLocalidades, de pie, stands, mesas de banquete
El suelo donde puede vivirUn plano interiorUn teatro, un recinto de festival, un circuito en un mapa
El camino hasta la localidadRecinto, luego bloque, luego la localidadDel mapa, por las plantas, hasta la localidad
Cómo nace el recintoLo escribes en JSONLo dibujas en Studio. El mapa lo reproduce.
Lo que puede decir una localidadUn título y una notaPrecio, categoría, una foto — la oferta en la localidad
Cuando se llena la salaEnvías un JSON nuevoVendido y retenido llegan al mapa al momento
Sin puntero—Recorrer el mapa con el teclado

Técnico

Motor, API y empaquetado: seatmap-canvas v1 y Seatmap Canvas Next
seatmap-canvas v1Seatmap Canvas Next
RenderizadorD3.js · SVGWebGL2
Formato del planoblocks[] + seats[]Studio ChartDocument (blocks, objects, floors, geo)
API de selecciónSEAT.CLICK, select / unselectLos mismos eventos host-toggle
Estado de localidadEl host reescribe el JSONsetSeatStatus, applyObjectAvailability
TooltipTítulo / notaresolveTooltipOffer
Paquetes de frameworkReact, Vue 3, Next.js, AngularVanilla JS
Parser PretixIntegradoNo se envía
LicenciaMITComercial
Instalaciónnpm i @alisaitteke/seatmap-canvasBundle con licencia, no está en npm

Diseña una vez, renderiza en todas partes

  1. 01Dibújalo en StudioSecciones, plantas, mesas y zonas de entrada general: se diseñan una vez como plano canónico.
  2. 02Renderizado idéntico al píxelCanvas renderiza el mismo documento de plano que verá el público, hasta el último detalle del tema.
  3. 03Enchúfalo a tu flujoUnos treinta eventos tipados y una API programática: zoom, plantas y selección quedan bajo tu control.
seatmap.ts
import { SeatMapCanvas } from "seatmap-canvas";
import "seatmap-canvas/dist/seatmap.canvas.css";
const seatmap = new SeatMapCanvas("#seatmap", {
theme: "dark",
legend: true,
});
seatmap.data.replaceData(chart);
seatmap.eventManager.addEventListener("SEAT.CLICK", (seat) => {
if (!seat.item.salable) return;
seat.isSelected() ? seat.unSelect() : seat.select();
});
TypeScript · seatmap-canvasSEAT.CLICK
  • Licencia comercial
  • No está en npm
  • Tipos TypeScript
  • Builds ESM + CJS
  • API Vanilla JS
  • WebGL2

Mira tu recinto en Canvas

Abre la demo y haz zoom desde el graderío hasta la localidad exacta.