Interactive application
Interactive
How well can the CPU do a GPU's job?

Realtime Graphics on CPU

Smoke, cloth, path tracing, voxel splats and image processing, computed on the CPU in a browser. The deliberately pixelated view makes SIMD, threads and accumulation easy to compare: change the quality and inspect where the time goes.

Explore connections
A programmable renderer on the CPU
ShadeRasterizeInspect
Open Realtime Graphics on CPU Explore the coupled scene, pause dynamics to accumulate, then inspect SIMD and thread behavior.
CPU-rendered cloth canopy and reflective spheres beside image-quality and reconstruction controls.
CPU-rendered cloth canopy and reflective spheres beside image-quality and reconstruction controls.
Quick start · live feature guide

Measure the complete frame, not only the fast kernel

The live stage diagram separates dynamics, geometry, transport and image finishing.

  1. 01

    Evolve the scene

    Advance smoke and constrained cloth with explicit simulation settings.

  2. 02

    Trace the image

    Update geometry/BVH data and compute surface and volume contributions on the CPU.

  3. 03

    Finish on the CPU

    Apply reconstruction, denoising and optional painterly or vintage effects.

  4. 04

    Compare execution

    Hold the workload fixed while measuring SIMD, thread count and complete-frame costs.

Architecture

A CPU workload in a browser shell

C++/WebAssembly computes the simulation and pixels; WebGL2 uploads and displays the completed image.

Interaction

Separate motion from convergence

The scene worker keeps the UI responsive; Pause & converge isolates progressive image accumulation.

Evidence

Parallelism is measured per workload

Scalar/SIMD and thread comparisons distinguish coherent arithmetic, irregular gathers and threading overhead.

A coupled scene with inspectable costs

An Eulerian smoke grid interacts with position-based cloth through drag and moving obstacles. The renderer follows the resulting geometry with a BVH, surface path tracing and a coarse single-scattering volume model. Fire emission reads the temperature field rather than painting an unrelated screen-space flame.

The fixed simulation timestep and chosen image-quality budget are separate controls. Pause & converge stops dynamics while accumulating the image. Smoke, cloth and image finishing make this a varied CPU workload rather than a single synthetic arithmetic benchmark.

SIMD and threads answer different questions

Selected hot kernels use a common four-lane abstraction with scalar and real WebAssembly SIMD implementations. Divergent material choices, irregular volume lookups and scalar BVH traversal remain important limits. The cloth solver is deliberately serial where parallel overhead exceeded the useful work.

A dedicated browser worker computes complete frames and a persistent worker team supplies C++ parallel passes. Stage timings, worker compute and completed-image cadence have explicit boundaries; the application does not interpolate synthetic frames or report primary samples as all traced rays. Device-local measurements replace universal speedup promises.

A deliberate rendering style with visible approximations

The compact image can receive CPU denoising, validated surface-history reconstruction, oil-paint processing or vintage finishing. Optional voxel supports trade smooth volume coverage for an explicit coarse spatial representation while retaining the underlying fluid.

The rough-metal and clearcoat models and the volume march are illustrative approximations. GPU presentation does not make this a GPU simulation, and SIMD startup checks are not a proof of complete scalar/SIMD equivalence. The source reports separate numerical tests and workload measurements.

Recorded examples · 1Interface and technical resultThe recorded view keeps the result beside the controls and intermediate explanation.
Image CPU-rendered cloth canopy and reflective spheres beside image-quality and reconstruction controls.
Explore this fieldWebGPU Atelier Crucible2.5D Analytical Render · LTC
Page reviewed September 12, 2026. Demonstrations and technical notes reflect the showcased version.
Project overview