Launch ·Personalization ·3D

We Built the First Personalized Launch Video That Changes for Every Viewer

Creating a visual world that adapts to every user

Zion DarkoNicholas BerryAnushka
Zion Darko & Nicholas Berry & Anushka
May 8, 2026
18 min read
We Built the First Personalized Launch Video That Changes for Every Viewer

Launch · Personalization · 3D · May 2026

We built the first personalized launch video that actually changes for every viewer — a custom world driven by your Onairos persona, not a single cut for everyone. We've been inspired by all the work by companies creating personalized worlds, custom games/simulations and adaptive 3D experience like World Labs, Spawn, Moonlake AI

Every person who watches our launch video sees a different world. Not a different version — a genuinely different 3D environment, shaped by their taste, their personality, their data. We built this in days thanks to the Onairos Data Wallet, Apple SHARP, and a projection pipeline we designed from first principles. Here is exactly how it works.

This is the first personalized launch video that actually changes for every viewer

The same launch experience, rendering a different world for every viewer — driven by their Onairos persona in real time.

A unique use case powered by Onairos personalization today — the kind you will see explode as world models and simulated experiences go mainstream: media that adapts to you, with consent and your data wallet at the center.


Part 1 — The SDK & Personalization Layer

It just works — because of the Onairos Data Wallet

This only works so seamlessly because of the Onairos Data Wallet and SDK. We pull rich, consented insights about your taste, personality, and preferences in seconds — straight from your Onairos data wallet. As soon as you connect your account, the entire experience reshapes to you.

Your Onairos persona — which understands you with your consent from your data wallet — drives what each card shows: book picks, dating copy, dining suggestions, style hooks. Whatever fits the beat.

The splat file stays shared across all users; the text and layout state are per-user. Personalization ships as fast as the web stack, not as a 3D art pipeline.

Try it live: onairos.io/launch →


Part 2 — 3D Scene Generation

Turning a single frame into a navigable world

We extracted key frames from our launch video — the moments that become your scene — and turned them into fully navigable 3D environments using Apple SHARP. It generates high-quality 3D Gaussian splats from single images in roughly a second on a capable GPU. We then layered lightweight browser-based augmentations so the whole path runs where users already are: the web.

We tested every pipeline. Here's what won.

We tried Luma AI, Polycam, Postshot, KIRI Engine, and several open-source repos before standardising on SHARP.

Luma AI

Excels at multi-view video captures and gorgeous exports, but is cloud-first, slower for our use case, and required multiple angled shots for the full generated scene.

Polycam / Postshot

Shine with LiDAR or richer capture sessions — more than we needed for frame-accurate film keys, with higher latency in our workflow.

Apple SHARP ✓

A feed-forward model that turns a single image into metric-scale Gaussian splats fast. Targets nearby-view synthesis — exactly how users orbit our launch sets in the browser. Best combination of speed, accuracy, performance, and open splat output.

A Gaussian splat world generated from a single frame of our launch video. Users orbit and interact with this environment in the browser.


Part 3 — DOM-over-Gaussian Projection

How your content floats inside the scene

The splat is the stage; the persona lives in the browser. We do not rebuild the film as textured meshes. Personalized content — cards, copy, recommendations — is standard HTML pinned to 3D hotspot anchors in the same coordinate system as the splat.

Every animation frame, a projection loop answers one question: where does this world point appear on the 2D screen right now? That gives each card its screen position, scale, and orientation. Temporal smoothing prevents shimmer during orbit. When a card must sit on a slanted surface, we apply a homographic warp using CSS 3D transforms. Optional occluders make UI disappear where foreground geometry should cover it — without any expensive depth-buffer reads.

Persona-driven book recommendations surfaced in real time — your Onairos taste profile shaping what appears, projected each frame in sync with the splat renderer.


Part 4 — The Projection Math

The math that makes it possible

We built the projection pipeline from first principles — the same conventions used by Three.js: column vectors, right-handed coordinates, matrices that multiply on the left.

Why we need four dimensions to render three

A 3D point cannot express perspective with linear algebra alone — perspective requires division by depth. We embed into 4D homogeneous space and divide by the (w) component at the end.

$$\mathbf{P}_{\text{world}} = \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix}$$

View matrix (V). Moves the world so the camera sits at the origin looking down (-z).

$$V = R^{-1} \cdot T^{-1}, \qquad \mathbf{P}_{\text{cam}} = V \cdot \mathbf{P}_{\text{world}}$$

Projection matrix (P) — encodes field of view, aspect ratio, and near/far planes into clip space:

$$P = \begin{bmatrix} \dfrac{2n}{r-l} & 0 & \dfrac{r+l}{r-l} & 0 \\[8pt] 0 & \dfrac{2n}{t-b} & \dfrac{t+b}{t-b} & 0 \\[8pt] 0 & 0 & -\dfrac{f+n}{f-n} & -\dfrac{2fn}{f-n} \\[8pt] 0 & 0 & -1 & 0 \end{bmatrix}$$

Clip space → NDC via the perspective divide:

$$\mathbf{P}_{\text{clip}} = P \cdot V \cdot \mathbf{P}_{\text{world}}, \qquad \mathbf{P}_{\text{ndc}} = \left(\frac{x_c}{w_c},\; \frac{y_c}{w_c},\; \frac{z_c}{w_c}\right)$$

NDC → screen position as CSS percentages (y-flipped for browser coordinates):

$$\text{left}\% = \left(\frac{x_{\text{ndc}}}{2} + 0.5\right) \times 100, \qquad \text{top}\% = \left(1 - \left(\frac{y_{\text{ndc}}}{2} + 0.5\right)\right) \times 100$$

Wrapping content around surfaces — the homography

When a card must sit on a slanted surface, translate + scale is not enough. We solve a 3×3 homography (H) via Direct Linear Transformation — mapping four corners of the card rectangle onto four corners of the target surface:

$$\mathbf{d}_i \sim H\, \mathbf{s}_i$$

That 3×3 becomes a CSS matrix3d transform composited by the browser GPU — no WebGL readback needed.

Making content disappear behind objects — occlusion

Occluders are lightweight polygons in world space. We project them with the same pipeline as card anchors, then use the resulting 2D shapes as SVG masks. Cards vanish where foreground geometry should cover them — pure compositing, no depth buffer required.

Card scale with depth

Cards shrink as they move away from the camera so the scene feels three-dimensional:

$$\text{scale} \propto \frac{d_{\text{ref}}}{\|\mathbf{P}_{\text{cam}}\|}$$

Scale and position are lerped every frame so orbit motion stays smooth with no visible shimmer.


Part 5 — What This Unlocks

This is only the beginning

The same architecture powers any experience that needs to feel personal:

  • Custom worlds for any mood or context
  • Personalized simulated games and interactive experiences
  • Fully adaptive virtual environments that evolve as you do

All powered by real user data you control. The future of media is not one-size-fits-all — it is you-shaped.

What would you want personalized next?

Experience it live: onairos.io/launch

Authors

Zion Darko

Zion Darko

Founder & CEO

Inventor and Dreamer and CEO.

Nicholas Berry

Nicholas Berry

Co-Founder

Deep thinker. Studied the brain and helped xAI all in the same year.

Anushka

Anushka

Founding Engineer

Memetic queen. Understands the masses frighteningly well.

Contributors

Satoru Gojo

Satoru Gojo

Sorcerror

Magi. Self-taught. Combining magiks with machines.