Ejemplos y Demostraciones de Contenedores
Ejemplos concretos y ejecutables en espíritu de las formas de contenedor de Asset Core—demostrando la coordinación del estado del mundo determinista a través de robótica, juegos, simulaciones y automatización.
0D Balance
Un conjunto compartido de créditos de computación o unidades de energía. Las transacciones debitan o acreditan un valor escalar de punto fijo—sin posiciones, solo cantidad.
Este ejemplo es intencionadamente pequeño. Muestra cómo funcionan los saldos deterministas cuando la única pregunta es “cuánto”, no “dónde”. Úsalo como plantilla para cualquier recurso agrupado con estrictos requisitos de auditoría.
Lo que esto muestra
- 0D cantidades algebraicas (punto fijo), sin coordenadas espaciales
- Ajustes de balance atómico (débito/crédito)
- Reproducción determinista del historial de transacciones
- Grupos de recursos compartidos multiactor
Ejemplos de operaciones
{
"operations": [
{
"op": "CreateContainer",
"args": {
"container_id": 1001,
"kind": { "type": "balance" },
"owner": null,
"policies": null
}
},
{
"op": "AddFungible",
"args": {
"class_id": 5001,
"key": 1,
"location": { "container_id": 1001, "kind": "balance" },
"quantity": "100"
}
},
{
"op": "RemoveFungible",
"args": {
"class_id": 5001,
"key": 1,
"from": { "container_id": 1001, "kind": "balance" },
"quantity": "50"
}
}
]
}
Esto crea el contenedor de equilibrio 1001, acredita 100 unidades de class_id 5001 (energy_unit), luego quema 50 unidades, dejando 50 en el pool.
Leyenda del diagrama: antes = 100 unidades, después = 50 unidades en el contenedor 1001 (energy_pool).
Utilice un balance 0D cuando solo importa “cuánto”, no “dónde” se mantiene.
Garantía determinista: Secuencias idénticas producen resultados idénticos.
Escenario de ejemplo: Un servicio o agente de automatización que gestiona créditos de cómputo para un clúster. Llamadas de operación:
check_balance()→ consultar créditos actualesreserve_credits(job_id, amount)→ deducción atómicarelease_credits(job_id)→ reembolso al completar el trabajo
Asset Core aplica las reglas de balance que defines: mínimos, máximos y saldos negativos opcionales, con un completo registro de auditoría de cada transacción de crédito.
0D Slots
Una entidad expone 8 espacios para herramientas. Herramientas como una cámara o un agarre ocupan exactamente un espacio; los espacios no tienen geometría, solo posiciones etiquetadas.
Los slots se tratan de exclusividad e intención, no de coordenadas. Este ejemplo muestra cómo garantizar que un slot esté ocupado o vacío, sin un estado intermedio ambiguo.
Lo que esto muestra
- Posiciones discretas sin relaciones geométricas
- Gestión de herramientas/equipos con exclusividad de ranura
- Estado del equipo determinista
- Posicionamiento semántico (no coordenadas espaciales)
Ejemplos de operaciones
{
"operations": [
{
"op": "CreateContainer",
"args": {
"container_id": 2001,
"kind": { "type": "slots", "count": 8 },
"owner": null,
"policies": null
}
},
{
"op": "AddInstance",
"args": {
"class_id": 5201,
"key": 1,
"location": {
"container_id": 2001,
"kind": "slot",
"slot_index": 3
}
}
}
]
}
Esto crea el contenedor de ranuras 2001 y coloca class_id 5201 (camera_head) en slot_index 3.
Diagrama de leyenda: el slot 3 contiene la cámara_head.
Utilice slots cuando necesite posiciones mutuamente exclusivas con etiquetas, pero sin geometría espacial.
Garantía determinista: Secuencias idénticas producen configuraciones de ranura idénticas.
Escenario de ejemplo: Un controlador o agente de robot que gestiona 8 ranuras de herramientas. Llamadas de operación:
list_equipped_tools()→ consultar el equipo actualequip_tool(slot_id, tool_name)→ asignación atómica de ranuraswap_tools(slot_a, slot_b)→ intercambio transaccional
Asset Core impone la exclusividad de los slots: no hay herramientas fantasma, no hay doble equipamiento y se garantiza la plena procedencia de cada cambio de equipo.
1D Grid
Una vía de transporte con posiciones 1..5. Los sistemas colocan y mueven paquetes a lo largo de un solo eje; dos elementos no pueden ocupar la misma posición.
El punto aquí es la secuenciación y la prevención de colisiones a lo largo de un solo eje. Es el caso espacial más simple donde el orden es importante y los movimientos inválidos deben ser rechazados de manera determinista.
Lo que esto muestra
- Semántica espacial lineal (posicionamiento en un solo eje)
- Detección de colisiones y exclusividad de posición
- Operaciones de movimiento secuenciales
- Colocación determinista y orden de movimiento
Ejemplos de operaciones
{
"operations": [
{
"op": "CreateContainer",
"args": {
"container_id": 3001,
"kind": {
"type": "grid",
"capacity": 5,
"grid_width": null
},
"owner": null,
"policies": null
}
},
{
"op": "AddInstance",
"args": {
"class_id": 5301,
"key": 1,
"location": {
"container_id": 3001,
"kind": "grid_cell",
"position": 3,
"rotation": "none"
}
}
}
]
}
Esto crea el contenedor de cuadrícula 3001 con 5 posiciones y coloca class_id 5301 (package_42) en la posición 3.
Leyenda del diagrama: P42 marca class_id 5301 (package_42) en la posición 3.
Utilice una cuadrícula 1D cuando el orden a lo largo de un solo carril sea importante y se deban prevenir colisiones.
Garantía determinista: Secuencias idénticas producen resultados idénticos.
Escenario de ejemplo: Un controlador de transportador que gestiona una cinta. Llamadas de operación:
get_item_position(item_id)→ consultar ubicación en la cintamove_item(item_id, target_position)→ movimiento seguro contra colisionesremove_item(item_id)→ eliminación atómica del cinturón
Asset Core previene la doble ocupación, rastrea el orden de los artículos y permite la reproducción perfecta de las operaciones del transportador.
1D Continuo
Un riel calibrado con resolución en milímetros. Un carro robótico se mueve a lo largo de un eje continuo utilizando coordenadas de punto fijo.
Los contenedores continuos son de punto fijo, no de punto flotante. Esa elección hace que la reproducción sea determinista y elimina la deriva de redondeo a lo largo de largas secuencias de movimientos.
Lo que esto muestra
- Coordenadas de punto fijo con redondeo determinista
- Colocación verificada por límites a lo largo de un solo eje
- Comprobaciones de colisión continuas para intervalos superpuestos
- Semánticas de compromiso/repetición idénticas a contenedores discretos
Ejemplos de operaciones
{
"operations": [
{
"op": "CreateContainer",
"args": {
"container_id": 4001,
"kind": {
"type": "continuous_line_1d",
"min_x": 0,
"max_x": 200000,
"quantization_inv": 1000,
"bucket_cell_size": 10000
},
"owner": null,
"policies": null
}
},
{
"op": "AddInstance",
"args": {
"class_id": 5401,
"key": 1,
"location": {
"container_id": 4001,
"kind": "continuous_1d",
"coord": { "x": 25000 }
}
}
}
]
}
Esto crea el contenedor continuous_line_1d 4001 y coloca class_id 5401 en x=25.000 (quantization_inv=1000).
Diagrama de leyenda: C = carriage_A.
Utilice una línea continua 1D cuando las distancias del mundo real a lo largo de un solo eje deban ser preservadas.
Garantía determinista: Secuencias idénticas producen resultados idénticos.
Escenario de ejemplo: Un controlador de riel lineal que gestiona un solo eje. Llamadas de operación:
get_carriage_position(carriage_id)→ consultar la coordenada actualmove_carriage(carriage_id, target_x)→ movimiento seguro contra colisionesreserve_span(start_x, end_x)→ asegurar ventana de viaje exclusiva
Asset Core impone una colocación determinista, previene la superposición y proporciona una reproducción exacta del movimiento del riel.
Rejilla 2D
Una pequeña cuadrícula de almacén (5×5). Los robots y los paquetes ocupan coordenadas discretas; los movimientos comprometidos se serializan para prevenir colisiones.
Este ejemplo demuestra la coordinación entre múltiples actores en una cuadrícula compartida donde cada colocación es autoritativa. Es una buena plantilla para almacenes, placas de laboratorio y diseños de tableros tácticos.
Lo que esto muestra
- Semántica espacial bidimensional (coordenadas x, y)
- Detección de colisiones entre múltiples entidades
- Colocación y movimiento basados en coordenadas
- Estado de cuadrícula autoritativa para la coordinación de múltiples actores
Ejemplos de operaciones
{
"operations": [
{
"op": "CreateContainer",
"args": {
"container_id": 5001,
"kind": {
"type": "grid",
"capacity": 25,
"grid_width": 5
},
"owner": null,
"policies": null
}
},
{
"op": "AddInstance",
"args": {
"class_id": 5501,
"key": 1,
"location": {
"container_id": 5001,
"kind": "grid_cell",
"position": 21,
"rotation": "none"
}
}
},
{
"op": "AddInstance",
"args": {
"class_id": 5502,
"key": 1,
"location": {
"container_id": 5001,
"kind": "grid_cell",
"position": 22,
"rotation": "none"
}
}
}
]
}
Esto crea un contenedor de cuadrícula 5×5 5001 y coloca class_id 5501 (robot_A) en la posición 21 y class_id 5502 (package_12) en la posición 22.
Diagrama de leyenda: R = class_id 5501 (robot_A), P = class_id 5502 (package_12).
Utilice una cuadrícula 2D cuando los sistemas necesiten coordenadas compartidas, conciencia del vecindario y movimiento seguro contra colisiones.
Garantía determinista: Secuencias idénticas producen estados del mundo idénticos.
Escenario de ejemplo: Múltiples actores autónomos (robots, servicios o agentes) navegando por un piso de almacén compartido. Llamadas de operación:
get_robot_position(robot_id)→ consultar coordenadas actualesplan_path(start, goal)→ búsqueda de caminos consciente de colisionesmove_robot(robot_id, target_coords)→ movimiento atómico y seguro contra colisiones
Asset Core proporciona un estado espacial autoritativo: sin posiciones fantasma, sin colisiones y con un historial completo de coordinación entre todos los participantes.
2D Continuo
Una célula de trabajo limitada para robótica de pick-and-place. Las colocaciones utilizan coordenadas fijas x/y con rotación determinista en miligrados.
La geometría determinista es más relevante en el contexto continuo 2D. Este ejemplo destaca cómo las coordenadas de punto fijo y las reglas de rotación mantienen la reproducción exacta, incluso en celdas de trabajo densas.
Lo que esto muestra
- Coordenadas fijas x/y con cuantización explícita
- Comprobaciones de colisión de rectángulos orientados (OBB)
- Colocaciones, movimientos y rotaciones con verificación de límites
- Reproducción determinista de planes de movimiento de múltiples actores
Ejemplos de operaciones
{
"operations": [
{
"op": "CreateContainer",
"args": {
"container_id": 6001,
"kind": {
"type": "continuous_grid_2d",
"min_x": 0,
"min_y": 0,
"max_x": 200000,
"max_y": 120000,
"quantization_inv": 1000,
"bucket_cell_size": 10000
},
"owner": null,
"policies": null
}
},
{
"op": "AddInstance",
"args": {
"class_id": 5601,
"key": 1,
"location": {
"container_id": 6001,
"kind": "continuous_2d",
"coord": { "x": 25000, "y": 40000 },
"rotation_millideg": 0
}
}
},
{
"op": "AddInstance",
"args": {
"class_id": 5602,
"key": 1,
"location": {
"container_id": 6001,
"kind": "continuous_2d",
"coord": { "x": 110000, "y": 30000 },
"rotation_millideg": 90000
}
}
}
]
}
Esto crea el contenedor continuous_grid_2d 6001, coloca class_id 5601 (gripper_A) en (25.000, 40.000), y coloca class_id 5602 (part_17) en (110.000, 30.000).
Leyenda del diagrama: G = class_id 5601 (gripper_A), P = class_id 5602 (part_17).
Utilice un contenedor continuo 2D cuando se deban preservar las coordenadas físicas y la rotación.
Garantía determinista: Secuencias idénticas producen estados del mundo idénticos.
Escenario de ejemplo: Un planificador robótico coordinando recogidas en una celda de trabajo compartida. Llamadas de operación:
preflight_commit(pick_plan)→ validar la secuencia sin mutacióncommit(pick_plan)→ ejecutar una vez que el preflight tenga éxitoread_workcell_region(bounds)→ consultar ubicaciones cercanas para verificar colisiones
Asset Core asegura que el preflight y el commit se mantengan sincronizados mientras se preserva un rastro de auditoría determinista.
Transferencia Universal
Las operaciones de Asset Core funcionan de manera consistente a través de los tipos de contenedores. La misma gramática se aplica ya sea al transferir entre saldos, espacios o cuadrículas, demostrando el modelo de operación universal.
Esta sección es útil cuando necesitas explicar el sistema a las partes interesadas que asumen APIs separadas para cada tipo de contenedor. El punto es que las operaciones se mantienen estables mientras la geometría cambia.
Lo que esto muestra
- Semánticas de operación unificadas a través de dimensiones
- Transiciones de estado entre contenedores
- Registro de commits consistente para flujos de trabajo de múltiples contenedores
- Transformaciones del estado del mundo composables
Ejemplo: Balance → Transferencia de Cuadrícula 2D
{
"operations": [
{
"op": "CreateContainer",
"args": {
"container_id": 7001,
"kind": { "type": "balance" },
"owner": null,
"policies": null
}
},
{
"op": "CreateContainer",
"args": {
"container_id": 7002,
"kind": {
"type": "grid",
"capacity": 25,
"grid_width": 5
},
"owner": null,
"policies": null
}
},
{
"op": "MoveFungible",
"args": {
"class_id": 5701,
"key": 1,
"quantity": "1",
"from": { "container_id": 7001, "kind": "balance" },
"to": {
"container_id": 7002,
"kind": "grid_cell",
"position": 13,
"rotation": "none"
}
}
}
]
}
Esto mueve la cantidad para class_id 5701 (widget) del contenedor de saldo 7001 a una colocación en la cuadrícula en el contenedor 7002—misma gramática de operación, diferentes tipos de contenedores.
La misma gramática (class_id, locations, quantities) se aplica a los tipos de contenedores; el orden determinista vincula ambos cambios a un historial de confirmaciones.
Escenario de ejemplo: Un controlador de célula de trabajo transfiriendo piezas de un grupo (equilibrio 0D) a posiciones de ensamblaje (rejilla 2D). Llamadas de operación:
check_parts_available()→ consultar saldoreserve_and_place(part_type, grid_coords)→ operación atómica de contenedor cruzado
Asset Core realiza ambos cambios de manera atómica: sin inventario fantasma, sin piezas perdidas y con una auditoría unificada a través de los tipos de contenedores.
Aprender más
Para detalles técnicos, consulte Basics para tipos de arquitectura y contenedores, o la Docs para documentación técnica más profunda. Para un flujo de trabajo de extremo a extremo con llamadas reales y registros, consulte el Robotic Arm Continuous scenario.