Sep 16, 2025Go behind-the-scenes with Webby-winning artist and developer James C. Kane during his latest production in collaboration with World Labs

‘The Shadow of the Czar’: Narrative World-Building with Marble and SparkJS

Overview

Webby-winning artist and developer James C. Kane has shipped immersive work for Sesame Street, adidas, and Verizon, alongside original WebXR hits like Escape Artist and In Tirol.

His latest project, The Shadow of the Czar, continues that thread — a film-noir detective story with magical-realist and futurist turns, produced in partnership with World Labs.

Players step into the trench coat of hard-boiled detective Cliff Cole. The experience blends terse noir dialogue, stunt-driven set pieces, and interactive mechanics inside a painterly city of shadow and light. It was designed and developed in just six weeks, with Marble at the core of both the creative process and the real-time rendering stack.

You can play Shadow of the Czar in your browser at theshadowoftheczar.com.

My work is characterized by cohesive story, action, and world-building enabled by breakthrough technology. This title was built from the ground up to push both my storytelling and World Labs’ incredible technology to the limits.

James C. Kane

James Title

Why Marble

Marble’s image-to-3D Gaussian Splat (3DGS) pipeline let Kane move from idea to testable prototype faster than almost any alternative. Paired with open-source image generation tools, the creative surface area was huge: generate a reference, turn it into a navigable world, then iterate until the scene played right.

Under the hood, SparkJS.dev — World Labs’ Three.js-based renderer for Gaussian splats — runs alongside standard WebGL assets. That makes hybrid scenes possible: painterly splat environments coexisting with glTF props, particles, post-FX, and UI.

Thanks to the inherent efficiency of 3DGS and SparkJS’ optimizations, high-detail content can still run smoothly on budget hardware in a browser.

3DGS is a new paradigm in real time. You get high detail in scenes and assets that can often run on even budget machines. Distributing over the web gives instant reach to audiences hungry for accessible, engaging experiences.

James C. Kane

The stack is still maturing — tooling for editing and stitching splats is evolving — but even now, Marble + SparkJS expands what’s feasible for small teams and solo creators working in web-based real-time 3D.


Creative Process

Art Direction

Kane aimed to embrace the painterly qualities of Marble’s splat rendering while keeping the world grounded and cinematic — gritty, real, and slightly surreal.

Film noir provided the perfect foil. The visual language lands “somewhere between Orson Welles’ The Third Man and Fritz Lang’s The Cabinet of Dr. Caligari”: high-contrast black-and-white, chiaroscuro lighting, heavy negative space, narrow streets, and looming architecture to evoke menace and suspense.

Graphic designer James Walker extended the pulp vibe with textured captions and slanted, comic-book-style titles.

Kane gathered public-domain reference, then used ComfyUI with open-source models to edit and synthesize imagery. He performed inpainting to remove actors from wide noir stills, generated variations with prompt adjustments, and used those frames to seed volumes of test worlds in Marble.

From there, he stitched alleys, storefronts, floors, and overlooks into one cohesive exterior where the story could unfold.


Writing

With the look set, Kane wrote the experience like a screenplay. The format drove staging, timing, and dialogue cadence.

From the staggered establishing shot and title sequence, to chase beats through towering streets, to set-pieces inside art-deco interiors — the goal was to feel grand and filmic from frame one.

Noir favors terse, punchy dialogue that keeps the plot moving — perfect for global audiences and for gameplay pacing. It also matches Kane’s taste for action-forward interaction: scripted drive-bys, mind-control sequences, and physical stunts punctuate the narrative.

To give camera moves and head motion authentic weight, he built a simple motion-capture app for Meta Quest, recording head tracks for jumps, punches, and dialogue. He refined the data in Blender — sometimes letting animations take full control, other times blending them with player input.

He honors genre conventions while playfully subverting them. A “saved by the cat” beat in the finale winks at cinema’s classic “save the cat” trope. A key futurist hero prop anchors both the plot and practical VFX.

And all of it had to be produced on schedule — even with AI acceleration, time was limited.

James Script Scroll

Voice & Video

Because Marble yields more realistic environments, Kane could integrate live-action video without breaking the aesthetic.

He shot sequences on green screen (and with AI background removal), matched lighting and costumes, and converted clips to WebM with alpha via ffmpeg for seamless compositing in the black-and-white world.

He also used generative video where it served the fiction: the LeClaire character in the final scene was generated using audio-to-video prompting.

Kane voiced every character — including the female lead — then transformed performances using ElevenLabs. Directing the reads himself preserved rhythm, intonation, and emotion, while AI delivered distinct timbres.

He also built regional “custom voices” from short open recordings to add authenticity.


Music & SFX

Music drives the mood. Kane scored the piece by contrasting Rachmaninoff’s Piano Concerto No. 2 with early Duke Ellington cuts like The Mooche and Koko, creating a tense counterpoint between romantic grandeur and nightclub swing.

He captured Foley for footsteps and cloth, pulled additional sounds from freesound.org where useful, and mixed everything in Ableton and Audacity.

For all the AI used elsewhere, immense amounts of editing, mixing, and effects work were still required. Gen-AI SFX and music often still ring false to me.

James C. Kane


Gameplay

Core interaction is locomotion with adventure-style mechanics, but Kane layered systems to raise agency and replayability.

A dialogue-choice system lets players comment in their own voice and nudge outcomes. Faster AI-assisted writing and recording made branching narratives practical for a solo developer.

In the finale, AI powers gameplay itself. Kane built a “rune drawing” mechanic using a TensorFlow classifier trained on Google Quick Draw sketches. It runs fully in the browser with a compact .wasm binary — proof that AI can enable new mechanics, not just speed up production.

James Dialogue Choice

Technical Process

Creative and technical decisions moved in lockstep. Script beats were scoped to what the toolchain could deliver at quality and speed, and pipelines were tuned scene by scene.

Splats

3DGS is still new, and editing tools are evolving. Beyond Marble’s own toolset, Kane relied on two PlayCanvas utilities:

  • CLI splat-transform for best-in-class compression
  • SuperSplat for web-based editing and assembly

With no native Blender support for experimental splat formats, SuperSplat became his de facto editor. Kane also used PostShot to create splats from synthetic 3D assets.

Converting heavy polygonal props into lightweight .sog files made them easy to embed in Marble worlds. A 4.5-million-poly train with 4K textures, for instance, became a ~1 MB splat that streamed fast and looked right.

The UX of even the best tools still leaves something to be desired. There’s a lot of fumbling to edit or stitch assets seamlessly.

James C. Kane

He credits Noah Ilbery for help “cleaning and sewing gaussians” and for synthetic splatting tips in PostShot.


glTF Integration

For glTF production, Blender reigned. SparkJS renders standard WebGL content alongside splats, so Kane could mix geometry with volumetric scenes.

He added contact shadows and paired lighting rigs to keep materials coherent across both systems.


VFX

A pivotal device — the Spectre-Scope — lets players see the world in another way, at a cost.

Toggling it required orchestrating nearly a dozen effects: desaturation, glitch post-processing, lens flares, particles, dissolve and fractal shaders, environment morphs and wipes, and procedural audio driven by shader uniforms.

SparkJS and established Three.js patterns made the stack dependable.

James Spectre Scope On

System Design

Three.js isn’t a game engine. Kane built systems from scratch to sequence music, SFX, dialogue, video, animations, glTF, and splats.

Clean data scripts describe each asset’s role; managers read and write to a game-state criteria system that orchestrates everything.

The goal: move from “prototype” to repeatable system in case the noir becomes episodic.

He also created internal tools. A “gizmo” debug mode flips the player camera into an editor-like view for precise placement mid-run. A URL-based spawn system boots directly into almost any state — vital for iterating complex sequences without long restart cycles.


Performance Optimization

As a WebXR developer, Kane is strict about performance. 3DGS was new to him in production, so he chose an art direction that allowed graceful degradation.

Even then, stitching a large outdoor world while keeping memory and processing in check was a challenge.

He began with load-time optimization: preloading only what the opening shot needed, then prefetching everything else just-in-time per the state system.

He chunked the exterior into eight streaming zones with trigger colliders. As players move, segments load and unload to avoid drawing and sorting millions of splats across a half-kilometer space.

He also shipped “Low” and “Max” profiles, adjusting SparkRenderer settings like minAlpha and maxStfDev, and swapping in low-res alternates when needed.

Powerful machines see maximal detail; lower-power devices still get a smooth, complete experience.

James 1

Results & Impact

The Shadow of the Czar demonstrates how Marble’s generative pipeline and SparkJS make cinematic world-building viable for a solo creator on a tight timeline:

  • Six-week production: From concept to shipped vertical slice
  • Browser delivery: Zero-install distribution to a global audience
  • Cinematic fidelity: Noir art direction realized with image-to-world generation
  • New workflows: AI used for voice transformation, motion capture aids, and gameplay mechanics — not just asset speedups
  • Repeatable systems: Data-driven sequencing, debug tools, and performance profiles ready for episodic growth

Marble changed how I think about scale and feasibility. It lets one person do what used to take an entire team.

James C. Kane


Looking Ahead

Kane sees two threads: technology and format.

On the tech side, he’s eager for 3DGS performance and editing advancements — better stitching, selective regeneration, and richer in-engine controls would reduce friction.

On the format side, he believes in short-form episodic narrative — 15–30 minute stories with a clear arc, delivered on the open web and, eventually, WebXR.

I love the world we built in such a short time. There’s more to do: make it mobile-friendly, WebXR-enabled, and grow new chapters. I think there’s an underserved market for episodic immersive content you can actually finish.

James C. Kane

He’s candid about scope, too: reach exceeds grasp. The six-week sprint only scratched the surface of Marble’s potential — future chapters will push even further.

Play Shadow of the Czar today at theshadowoftheczar.com.

Read More