Lucas Ellis Portfolio (optml.io, 2024)
Project X1 (2015-2018)
In concert with Trifecta Communications and Six Flags Frontier City Theme Park (our research venue).
I developed a VR rollercoaster system for the Silver Bullet looping rollercoaster ride in Unity. The setting was a space rollercoaster.
In order to match up timing and synchronization sensors we gathered data over several rides with sensors and hard mounted cameras. This gave us accurate elevation, 100hz gps and timing that we used for our base pass for the shape and timing of the ride. We then created a manual video matching tool that allowed us to accurately match movements and rotations. We synchronized sensors on the VR headset to timing on the ride to complete the VR system.
I developed a special smoothing algorithm for positions and more importantly rotations (I believe it was similar to Catmull Rom for quaternions) — this gave it perfectly smooth movement in the simulated world.
The app was developed to have two modes — an at home marketing mode where you could play through the coaster using a magic window on phones — and the at park mode for the VR ride headsets.
Our system for sensors and movement matching is called Motion x Studio for Unity.
3d Home Builder Customization App
I developed an app for home builders to create 3d floorplan customization experiences for the web (WebGL Unity) for Moddifi.
We utilize BIM data from Autodesk Revit and a custom process for making these models game ready.
The app gives you options for floorplans, materials, and options. It allows buyers to visualize their upcoming home build and see the final price and monthly payments based on selections.
AR Apps
A 3d AR storybook app with characters that appear on the book and on wristbands when pointing your phone or tablet at them. We showed this app at NYC Toy Fair in 2018.
A hybrid video story and AR app called Folk Secrets GPS Treasure Hunt. Participants were mailed a olde style pirate map card. Pointing your phone at it dropped a Pirate Knife down on it as a surprise.
Weather Apps
I helped to develop the weather app RainAware (minute by minute forecasting app). RainAware was featured in a weather app shootout segment on NBC TODAY in 2017.
I’ve also developed cartoon weather apps, a weather map viewer, and 3d weather visualizations in Unity.
New Apps (2024)
Dog Groomer App (three.js WebGL)
I developed a webgl app for a dog grooming company. The app allows groomers to preview the haircuts to the customers with high detail in 3d. It allows you to change different segments haircuts and allows for fur length selection using sliders. I also developed a custom fur rendering shader system for the app which allows for cute fluffy haircuts.
Cozy Boat Game Water System (Unity Work in Progress)
I’m developing an ocean water system for a cozy boat game for Meta Quest and mobile platforms. Existing solutions do not perform well on mobile platforms such as Meta Quest 2/3, so there are currently no high quality boat games on Quest. I developed a solution that utilizes Unity Burst Compiler and ARM Neon instructions for 4x+ higher performance. We have several algorithms working, such as float32x4, float16x8, and fixed point int16x8 for optimization based on processor type. The system does grid based view culling for 4x even higher performance and larger viewing distances. The system allows for layering effects such as waves, whirlpools, and ripples (boat wakes) per water grid. The grids are seamlessly blended together by using extra vertices not indexed to triangles (video 2). It currently runs at under 4ms on the extra cpu core on Quest 2, giving us headroom for more effects. It is integrated into a boat physics system with high performance and realistic movements.
opGames Beakiez (2010)
opEngine Game Engine
I designed the game engine for our startup opGames Inc. in c++/direct3d. Systems included a constraint based UI system, font system, and animation system. The data was all xml based which was parsed and converted to a high performance binary format for use in the engine.
opC++ Compiler Infrastructure
We developed an extended c++ language with a real compiler (lexer, parser, ast) that transforms the extendable syntax back to standard c++. The compiler allows for custom dialect files to extend the language with features like automatic serialization and really nice c++ based reflection. I wrote the reflection dialect (it heavily uses metaprogramming), which is still unmatched by c++24. (www.opcpp.com)
Beakiez Bubble Pop Game
I designed Beakiez to be a fun character and physics based bubble pop game. It is partially based on the idea that you can juggle bubbles to create combos and special scoring for interesting moves. I hope to port it to WebGL and mobile in the future.