Splat Raycasting for Robot Locomotion

Probing a generated Gaussian splat environment directly to drive procedural walking, climbing, and navigation—without meshes, navmeshes, or baked colliders.

Research · Gaussian Splats · Procedural Locomotion · Spatial Intelligence · 2026

Featured by World Labs and 80 Level

Overview

Can a generated 3D world become more than a visual environment? Can it be sensed, interpreted, and acted upon directly?

This exploration began with a series of experiments in Unity for querying surfaces inside Gaussian splat environments. Instead of converting the splats into conventional geometry, I used their position, scale, density, and opacity to estimate where a ray encounters something solid.

The first tests involved simulated LiDAR rays emitted from a drone moving through a generated environment. Once this started producing reliable spatial information, I began considering what else could use the same system.

The result was a procedural hexapod robot capable of walking directly through a World Labs-generated splat world. Each leg probes the underlying data to locate footholds, evaluate the terrain, adapt the robot’s body, and traverse uneven surfaces without relying on traditional collision geometry.

The project is less about the robot itself than the question behind it: can a generated world be perceived and acted on directly through its native representation?

From Raycasting to Locomotion

Much of my work involves volumetric capture, point clouds, and Gaussian splats—representations that retain some of the density, ambiguity, and imperfections of captured reality.

I had already been exploring splat raycasting as a way of querying these environments more directly. At some point, it became clear that the same information could be used for support detection, foothold placement, climbing, and navigation.

A walking machine was particularly suited to the experiment. Legs can continuously adapt to small variations in the terrain, while wheels depend on smoother and more predictable surfaces. It also gave me an opportunity to explore a long-standing fascination with hexapods and machines such as the Tachikoma.

Reading the Splat Field

The robot moves inside a Marble-generated Gaussian splat environment loaded into Unity. There is no navigation mesh, baked collision setup, or hidden geometric floor underneath the scene.

A custom system decodes the position, scale, and opacity of the splats and organizes them into spatial chunks. During each query, entire regions that a ray cannot intersect are skipped, reducing the number of individual splats that need to be evaluated.

The remaining splats are treated as spatial volumes that can be tested for likely intersections. Their density and opacity help determine whether a detected area is substantial enough to act as a surface rather than visual noise.

Gaussian splats do not provide a clean surface normal in the way that a mesh triangle does. To estimate the orientation of the terrain, the system fires several nearby rays and compares the pattern of returned points. From this local sample, it can approximate slope, direction, stability, and surface continuity.

This makes the system fast enough to perform multiple probes for every leg, on every frame.

Procedural Locomotion

Each leg searches the surrounding splat field for a usable foothold in the robot’s direction of travel.

A potential step is evaluated according to several conditions:

  • Whether enough splat density exists to support the foot

  • How steep or irregular the detected surface appears

  • Whether the required change in height is manageable

  • Whether the position fits the current gait and body configuration

This information drives the robot’s gait timing, stepping arcs, movement speed, body height, and orientation. Analytic inverse kinematics are then used to solve the final position of each leg.

The locomotion system supports different numbers and arrangements of legs rather than being limited to one specific hexapod configuration.

For climbing and wall traversal, the robot is not permanently aligned to world gravity. Instead, its local sense of “down” can be reconstructed from nearby surfaces, allowing its body and feet to progressively reorient themselves around walls and steep structures.

Why Work Directly with Splats?

Marble can export mesh-based colliders alongside its generated environments. For most production applications, those colliders provide a more practical foundation for physics and navigation.

For this experiment, however, I wanted to intentionally skip that conversion and work as closely as possible with the original splat representation.

The visual coherence of Gaussian splats makes an environment immediately readable to a person. A floor looks like a floor, and a wall appears solid. But once the same environment is sampled computationally, it reveals small gaps, density changes, uneven areas, and uncertain boundaries.

Rather than behaving like a cleanly designed game level, the terrain feels closer to a scanned physical location, containing noise and imperfections that the locomotion system must continuously interpret.

An early version used a wheeled robot, but the wheels struggled with these small irregularities. Procedural legs proved far more capable of adapting to the data, reinforcing the idea that the representation itself can influence the kind of machine best suited to navigating it.

Marble as a World-Generation Tool

Marble made it possible to produce believable, spatially coherent environments and immediately begin testing them as places that could be probed and traversed.

Because the generated worlds are represented as Gaussian splats rather than clean polygonal levels, they retain a dense, lifelike quality. The robot is not moving through a deliberately simplified game environment; it is attempting to interpret something closer to a captured place.

This ambiguity is precisely what made the environments interesting for the experiment. The robot must continuously read the world rather than assuming that every visible surface is geometrically perfect.

Autonomous Exploration

The current system also includes an autonomous navigation mode. I can select a destination and allow the robot to travel toward it, adapting to terrain, avoiding obstacles, and climbing surfaces when necessary.

The next stage is to develop this into a more believable rover or exploration system by introducing additional simulated sensing:

  • LiDAR-style environmental scanning

  • Depth and proximity sensing

  • Sonar-like spatial feedback

  • Environmental mapping

  • Telemetry and diagnostic data

  • Delayed or incomplete sensor responses

The intention is to make the machine feel less like an immediately controlled digital character and more like a remote robot gradually constructing an understanding of an unfamiliar place.

The World Labs environment then becomes more than a static scene. It becomes a world in which a rover has just arrived—and must learn how to move through it.

Tools and Technology

  • Marble / World Labs — Generated Gaussian splat environments

  • Unity — Simulation, rendering, and procedural control

  • UnityGaussianSplatting — Customized version of Aras Pranckevičius’s renderer

  • Custom splat decoder — Position, scale, and opacity extraction

  • Spatial acceleration system — Chunked ray queries and region rejection

  • Procedural locomotion — Generalized gait and leg-count system

  • Analytic inverse kinematics — Leg solving and adaptive body positioning

  • Custom navigation system — Destination-based traversal and obstacle response

Credits

Research and development: Ruben Frosali / RubenFro
Studio: TRIDOT
Generated environments: Marble by World Labs
Gaussian splat rendering base: UnityGaussianSplatting by Aras Pranckevičius

Features

  • 80 Level [Artist Shows a Walking Robot Navigating a Gaussian Splat Environment]

Next
Next

Skyrim on Vision Pro