12/09/26

VR Fire Extinguisher Simulation

Unity 6 / XR Interaction Toolkit 3.x

1. Visión General del Proyecto

Una herramienta de entrenamiento en Realidad Virtual desarrollada en Unity 6 orientada a capacitar y evaluar al usuario en el uso correcto de extintores portátiles bajo el estándar internacional PASS (Pull, Aim, Squeeze, Sweep / Tirar, Apuntar, Presionar, Extender).

El proyecto integra dos entornos principales accesibles desde un área central (Hub):

  • Learning Zone: Modo guiado e interactivo con desglose procedimental paso a paso.
  • Training Zone: Modo de evaluación bajo estrés temporal simulando un conato de incendio en una oficina.

2. Mejoras y Especificaciones de Diseño

  • Agarre Bimanual (Two-Handed Manipulation):
    • Mano principal: Sujeta el asa/maneta de acarreo y activa la palanca de descarga.
    • Mano secundaria: Sujeta y orienta la manguera/boquilla de expulsión para direccionar el agente extintor con precisión hacia la base del fuego.
  • Inspección Previa de Seguridad (Manómetro):
    • Validación del estado del extintor verificando que la aguja indicadora de presión se encuentre en la zona verde (rango operativo).
  • Mecánica del Seguro / Pasador (Safety Pin):
    • Precinto plástico y pasador metálico con física/socket interactivo. Requiere tracción deliberada para liberarlo antes de permitir el accionamiento de la palanca.
  • Física y Dinámica de Fuego (Heat Points / Base Raycast):
    • El fuego se modela mediante clústeres de salud térmica (HP). Únicamente las partículas dirigidas a la base de las llamas reducen la intensidad; el rociado a media altura o en el humo tiene baja efectividad.
  • Recurso Limitado de Descarga:
    • Capacidad finita de descarga continua (~12 a 15 segundos), simulando la autonomía real de un extintor de Polvo Químico Seco (PQS) de 5 a 10 lbs.
  • Respuesta Háptica Progresiva:
    • Vibración háptica diferenciada en gatillo y boquilla durante la descarga.

3. Patrones de Diseño & Buenas Prácticas (Clean Code)

  • State Pattern: Control del flujo global (HubState, LearningState, TrainingState) y de la máquina de estados del extintor (Mounted, Inspected, PinRemoved, ReadyToDischarge, Discharging, Empty).
  • Observer Pattern (Events / C# Actions): Desacoplamiento total entre sistemas mecánicos, partículas, UI en World Space y audio espacial.
  • Component-Based Modular XR: Extensión estructurada de XRGrabInteractable y IXRSelectInteractable dentro de XRI 3.x sin sobrecargar la física con reglas de negocio.
  • Object Pooling: Control eficiente de emisores de colisión para el agente extintor.
Copiado!