Reactive
Sub-second sensor reactions. No LLM round-trip.
Lighting reacts to crowd. Audio adjusts to proximity. Safety interlocks enforce.
The designer is in charge
The designer’s creative vision and intent is written into a single experience file as structured data, not filed away as a brief no one reads. Every capability below reads and runs that one file.
One creative experience file plus one venue file run on the open runtime, optionally with XP Cloud, where the venue techs hit play.
Runtime architecture
// one standard, end to end
Design it, run it, scale it. Every module has a well-defined boundary — run one experience standalone, swap a piece out, or connect them end-to-end.
Turn a creative brief into a validated journey — emotional arc, stages, moments, and a storyboard, ready to wire and pitch.
The bridge between design and the live venue. Wire journeys to real hardware on a visual canvas, simulate them, then run and oversee live shows from the same window.
The intelligent core that plays back your experiences — branches in real time, adapts within safe limits, and logs every decision.
Hundreds of protocol adapters — lighting, audio, sensors, show control, smart home — each with a simulation mode.
Your hardware — LED walls, DMX rigs, NFC readers, cameras, spatial audio, haptics, projection.
Designer intent, declared
// human-readable. formally specified. deterministic.
experience "Immersive Gallery" { // one blueprint — the whole guest story, start to finish
intent: "A guest walks a responsive gallery that reads how they feel and shapes the room around them"
spec: "openxp/1.0"
version: "1.0"
locale: "en-GB"
realm: physical
accessibility { // access needs ship inside the experience (R225-R230)
navigational { wheelchair: true, step.free: true }
perceptual { audio.description: true, warning.photosensitive: false }
}
touchpoints {
// Sense the guest
entry: sensor.beacon { zone: "entrance" }
bio: sensor.biometric {
type: "heart.rate"
processing {
mode: transient // read in the moment, never stored
purpose: "Read excitement in the moment to pace the scene"
lawful.basis: consent // consent travels with the data
classification {
confidentiality: confidential
integrity: high
availability: medium
}
}
}
// Shape the room
spatial: output.audio { zones: 3 }
ceiling: output.led { pixels: 2400 }
lights: output.lighting { universe: 1 }
// Name the feelings the room can hold
warmth: perception.warmth { intent: "welcome", source: lights, range: [0.0, 1.0] }
wonder: perception.wonder { intent: "awe", source: ceiling, range: [0.0, 1.0] }
calm: perception.calm { intent: "reflect", source: spatial, range: [0.0, 1.0] }
// A human in the loop
guide: actor.guide { role: "facilitator", intent: "Improvise, but never break the spell" }
// A mind that adapts within the rules
curator: agent.deliberative { model: "claude", latency_sla: "5s", fallback: "advisory" }
}
journey "visitor" { // the emotional shape of one visit: welcome, awe, then stillness
intent: "Carry one guest along an arc that rises into wonder, then settles into calm"
initial: arrive
phase "arrival" {
arc.phase: "arrival" // the room greets them
moment "welcome" {
perception.targets { warmth { min: 0.3, max: 0.6, ramp: "gentle" } }
state arrive {
on.enter { do: lights.cue("warm_amber_rise") }
on entry.detect -> immerse { do: output.scene(name: "welcome_glow") }
}
}
}
phase "immersion" {
arc.phase: "rising" // the room opens up, wonder builds
moment "the-reveal" {
perception.targets { wonder { min: 0.6, max: 0.9, ramp: "swell" } }
state immerse {
on.enter { do: ceiling.cue("constellation_bloom") }
on wonder.peak -> reflect { do: output.scene(name: "starfield") }
}
}
}
phase "reflection" {
arc.phase: "resolve" // the room quiets; the guest keeps the feeling
moment "stillness" {
perception.targets { calm { min: 0.5, max: 0.8, ramp: "settle" } }
state reflect {
on.enter { do: spatial.cue("low_room_tone") }
on calm.hold -> farewell { do: lights.cue("soft_fade") }
}
state farewell { }
}
}
}
safety { // guardrails the AI can never cross
comfort_first {
when: "bio.reading > 0.9" // if a guest is overwhelmed
ensure: warmth.reading < 0.6 // the room pulls back
response: stop
}
}
}
Read the full spec → No hidden logic. No loops, no variables, no surprises. What you read is what runs.
Warmth, wonder, calm and tension are programmable touchpoints — as real as an LED wall.
Same state + same event = same transition. Always. Experiences you can reproduce, debug, and hand over.
Policies constrain what agents can do; consent and lawful basis ship inside the file. Safety trumps design.
Perception
// perception is a touchpoint
Human perception is a core touchpoint — as real as an NFC reader or LED wall. Trigger transitions on wonder, shape scenes with calm, and adapt whole journeys to the emotional arc of the room.
The emotional tone of welcome. How a space says hello before anyone speaks.
Collective vitality. The pulse of a room full of people alive to what’s happening.
Dramatic suspense. The held breath before the reveal.
The peaceful quality of a contemplative space. Where thoughts settle.
Awe and discovery. The moment everything shifts.
Spatial awareness. The feeling of being truly here, now.
Realms
AR, VR, digital twins — different mediums of presence, one experience. A guest queues in physical, dons a headset for augmented, steps into virtual, then returns. OpenXP holds the journey across realms because the language describes participation, not pixels.
The room itself — the queue, the stage, the crowd. Real space, real presence.
realm: physical Screens and companion apps that extend the moment beyond the room.
realm: digital Overlays on the real world — headsets and phones layering content onto the space.
realm: augmented A fully virtual scene the participant steps into, then returns from — one journey, unbroken.
realm: virtual realm: physical at the experience level sets the medium of presence the participant inhabits by default. State and touchpoint blocks inherit this declaration unless they explicitly override it.
realm: augmented on a touchpoint or state shifts the medium for that span — the same experience can move the participant from physical, to augmented with overlays, to a fully virtual scene, without ever splitting them across realms.
realm.transition is the event the runtime emits when the journey crosses from one realm to the next. States react to it like any other event, and touchpoints from the realm just left can still deliver content into the realm just entered.
Experience patterns
Pre-designed experience templates that run on the same platform.
Crowd energy drives the room — chants, replays and light bursts triggered by the moment.
Cameras and cues choreograph a high-adrenaline show, capturing every guest a personal reel.
A store that senses interest and rewards it — scan, personalise, delight.
Projection-mapped storytelling that adapts pacing to the room’s attention.
Light, sound and scent shift as visitors move — the space senses and shapes the visit.
The audience becomes part of the cast — spotlights and staging follow the crowd.
A calibrated envelope of light and sound tuned to a target feeling.
Facilitated sessions where the room reflects the group’s ideas back in real time.
The living room becomes a cinema — lighting and audio dim and swell with the film.
A gentle wellness routine — light, warmth and sound rising gradually to start the day.
Your smart home as a stage — lighting, music and scent cued to the evening’s arc.
AI with guardrails
The OpenXP runtime doesn’t just execute the experience, it monitors it in real time using three agent tiers. Every AI decision passes a creative policy — brand voice, narrative, safety — all enforced before content reaches an audience.
Sub-second sensor reactions. No LLM round-trip.
Lighting reacts to crowd. Audio adjusts to proximity. Safety interlocks enforce.
AI making creative choices in seconds, constrained by brand rules.
Lighting palettes. Narrative beats. Zone-by-zone personalisation. Actor/Operator override.
Long-running content pipelines. Personalised souvenirs, custom artwork.
Within budget. Within brand. Always.
Every tier feeds down through one creative-policy gate before anything reaches the audience.
Connect and operate
// wire · simulate · operate — one window
XP Bridge is the visual canvas where experiences come alive. Wire states to hardware, simulate the guest journey, and operate live shows, all from the same window.
// if it has a wire, OpenXP can talk to it
Every protocol ships with a simulation mode — design and rehearse the whole show before a single cable is plugged in.
Philosophy
Same moment. Same event. Same result. Every time.
No loops. No hidden logic. No surprises. What you read is what runs — on a laptop, in a simulator, in the venue.
AI agents suggest adaptations. Policies enforce safety, privacy, operational, and design constraints. Every decision is logged with a full audit trail.
Missing hardware doesn’t crash the system. Connectors degrade gracefully, log warnings, and continue. Every connector has a simulation mode for development.
Guest data is declared in the blueprint — transient, scoped, or retained, each with an explicit purpose and lawful basis, so consent ships with the experience instead of trailing it. And the road ahead is guest-owned: retained memories written to a personal data pod the guest takes with them, not a venue database.
Every memorable experience does three things. moment.mark names the peak. capture.record holds onto it. deliver.issue hands it back on the way out. A photo, a recording, a ticket — same three steps. Optional, but powerful.
Experiences are typically built with a specific venue in mind. The format separates intent from hardware, so moving to a new venue is an adapt, not a rebuild.
OpenXP Studio lets creative directors design experiences through conversation. OpenXP Bridge gives technical designers a visual canvas. Same .xp file, different entry points.
A smart-home activation or an immersive world tour — the language is the same.