project:exoplanet
An immersive, interactive installation about space exploration. It's a story you move through with three others, where the choices your group makes together decide how it ends.
role: concept, design and build (solo)
year: 2023–2024
tools: Unreal Engine 5.3, Kinect V2, OSC, EmberGen, Blender
context: Fontys ICT graduation project
the concept
project:exoplanet is an idea I'd been carrying for about two and a half years before it became my graduation project. It's an immersive, interactive installation that tells a story about space exploration: what we might find out there, and what our priorities back home should be.
The premise is simple. We still have a choice about our future, but choose wrong and we could lose everything. I wanted visitors to feel that weight, not by watching it happen, but by deciding it together.
finding the feeling
Before designing anything, I spent the summer of 2023 visiting light-art installations to work out what an immersive space should actually feel like. Among them were L'Atelier des Lumières in Paris, and Remastered and the Boijmans Depot in Rotterdam.
I came away with a notebook of ideas. Projections through water to blur an image like a distant memory. Mirror rooms that make a small space feel infinite. Peripheral projections that quietly steer your focus. But the observation that shaped everything was simpler: in every show, people picked a spot and stayed there, missing how different the room looked from anywhere else. I wanted to get visitors moving.
L'Atelier des Lumières in Paris, one of the installations that set the tone.
a story you can change
To give visitors real agency, I studied how games tell interactive stories and chose a branching narrative. It let me stay the director of the experience while handing the audience genuine choices, and it kept the scope buildable, with three possible endings.
I wrote the story as a script, grounded in real exoplanet science from NASA's database. Small facts drove the world-building. A planet with lower gravity than Earth would grow taller vegetation, and taller, thinner-boned animals. I aimed it at young adults and students (18 to 30), the people whose choices will shape the world, and wrote it in English to reach as many of them as possible.
designing the interaction
A story-driven experience is basically an interactive video, and pressing buttons felt too small for it. I wanted interaction that asked visitors to cooperate and to use the whole room. The answer was to project spots onto the floor. To advance the story, the group has to find them and stand on them together.
It keeps me in control of where people go, so I can compose each scene, while the branching story keeps their sense of choice real. Every decision nudges the ending.
Those projected spots were only ever a proof of concept, though: simple dots to guide the group to the right positions. What I really wanted was for the floor projection to become a true extension of the LED wall, spilling the same world onto the ground so the space itself pulled visitors deeper in. That fuller version was beyond the time I had, but it's where the idea is headed.
choosing the tech
To sense where people were standing, I ran a MoSCoW analysis and a short hardware study. The sensor had to be proven with Unreal Engine, simple to set up, dynamic, and able to cover a decent area. I started with the Azure Kinect and kept the older Kinect V2 as a fallback.
getting the sensor to talk to unreal
The Azure Kinect flat-out refused to connect to Unreal Engine 5.3. The only plugins I could find were abandoned and broken. So I pivoted to the Kinect V2, which has a far bigger community and a working plugin. Getting a V2 running on Windows 11 (officially it stops at Windows 8.1) took a day of digging until a Reddit thread finally had the fix.
From there I read the sensor's depth value at a single point and used a simple distance check to trigger a sound. Then I reused the exact same logic to trigger a cutscene. It was a small win, but it proved the whole interaction was possible.
into the space
I built and tested everything in the Pixel Playground, a lab with a large LED screen. Together with the technicians we mounted the Kinect on the aluminium beam across the middle of the room, far enough from the screen that visitors wouldn't see its individual pixels. Mapping its detection area meant I could keep extending the experience without being on site.
The Pixel Playground. The Kinect went up on the ceiling beam.
testing with people
I tested the interaction over two rounds. The first was a mess. It took so long to get the rig working that I only managed a single test, but it told me two things: the idea had promise, and the detection had to be far more stable.
For round two I built a grid system so I could place spots without standing in the room. I found the sensor's reliable corners by trial and error, since the edges threw false positives. Then I projection-mapped a grid of circles across the detection area in Photoshop and calculated every circle's coordinates in Excel. That let me expand from two spots to four, since the installation is designed for four people, and run three proper tests.
The verdict was honest and useful. The interaction genuinely landed, and the big screen carried the immersion on its own, so the dots could stay simple for now and focus on their real job: guiding people to the right spots. But visitors didn't always know what to do. The video moved too fast, and it wasn't obvious they should go looking for the spots. The fix was to move attention from the screen to the floor: introduce the circles on screen, then let them drift down and pulse, so the next step reads without a word of instruction.
building the experience
With the prototypes proven, I started building the real thing in Unreal Engine 5.3. Most of the time went into the virtual environments. For the beach scene I used the Procedural Content Generation graph to scatter debris naturally, because the foliage tool lined everything up too neatly. I made a campfire with Niagara and a fire simulated in EmberGen, exported as a sprite sheet.
The interaction ties it all together. When all four visitors are on their spots, four depth checks feed an AND node that plays the scene's cutscene, a CineCamera animated on keyframes in the Level Sequencer, and then loads the next scene. It repeats until the story reaches one of its endings.
The beach scene, taking shape in Unreal Engine 5.
what i took from it
For most of this project I was the client, the project lead and the maker all at once. That blurred the process in ways I didn't expect. My "audience research", for instance, became less about studying a fixed audience and more about choosing one to design for, and it made staying critical of my own work hard. I leaned on my mentor to keep the bigger picture in view.
An early delay of about two months cost me, and my honest takeaway is that the vision was simply too big to realise alone in the time I had. Time management and scope are the clear lessons. But I'm proud to have carried a project this complex from concept to working prototype on my own, and next time I'll dream just as big, with a team beside me.