Site experiment · Rendering and simulation

Graphics Lab

The 3D coastal home on my homepage is where I try graphics and simulation papers. Each experiment adapts one published method in a form a browser can run: sunlight down a drilled light well, waves that grow with the sea breeze, steam carried by its own heat, curtains that billow at an open door. This page keeps them in one place, with what each does now and the newer papers that could take it further.

Why

I kept adding graphics experiments to the home, and a project page for each one would have buried the rest of my work.

What

One row per experiment, with a still from the scene, where it stands, the paper it adapts and a link to its write-up.

How

Each adapts a published method and says where it simplifies. Tests check the math, and the record lists what to read next.

The experiments

Each row opens the experiment’s own page or its section of the technical record. The stills are frames of the live scene captured on October 16 and 17, 2026; the light well, the steam and the onsen are set in late August, when the noon sun reaches the shaft and the bath runs in daylight. How the house itself is built, from its Blender sources to its shader warmup and loading, is in the coastal home’s record.

Light

  • The lab's onsen rendered twice, specks of path tracing on the left and Metropolis light transport's sunlit pool floor on the right

    Light paths through the onsen

    Lab pageafter Veach and Guibas 1997

    A plain-JavaScript renderer races path tracing against Metropolis light transport on the sunlight the light well bends through the onsen’s water.

  • The onsen at noon in late August, a hazy beam from the light well slanting across the room onto the pool

    A light well with traced shaft light

    In the sceneafter Wronski 2014

    A shaft drilled from the clifftop brings sun into the onsen, and its beam, its sun patch, its skylight and the lit steam share one visibility function.

  • The study at 23:10, Sirui coding under the desk lamp, its warm light bouncing onto the shelves and walls

    Traced sky and lamp bounce

    In the sceneafter Ramamoorthi and Hanrahan 2001

    A CPU ray tracer bakes sky visibility and one diffuse bounce into probe cages once, then relights them from the actual sky and lamp powers without tracing again.

  • The study at 15:00, Sirui at the desk, soft contact shadows under the laptop, the turntable, the plant and the shelves

    Horizon-based contact light

    In the sceneafter Jimenez et al. 2016

    A visibility buffer computed before the beauty pass darkens only indirect diffuse light near contacts, with the closed-form horizon integral of ground-truth ambient occlusion.

Water, air and sky

  • The Pacific from the beach at 16:00, choppy waves in front fading into a smooth, sunlit sea toward the horizon

    A Pacific of Gerstner waves

    In the sceneafter Finch 2004

    Ten Gerstner waves displace the sea and its normals together, with a wind sea that grows with the breeze, gusty ripples and whitecaps, a lit shoreline and a live mirror of the cliff.

  • Sirui soaking in the onsen on a Saturday afternoon, one hand at the water's surface

    A height-field onsen

    In the sceneafter Chentanez and Müller 2010

    The onsen is a 40 × 40 shallow-water height field whose waves carry water between cells, reflect off the rim and the bather, and start from the bather’s hand.

  • Bath air over the onsen at noon in late August, the light well's beam showing as a pale shaft through it

    Thermal steam

    In the sceneafter Stam 1999

    Bath mist is two transported fields, droplet concentration and temperature, rendered with single scattering that composes in order around the glass and the water.

  • The date palm on the clifftop and its shadow on the sand, fronds that sway in the afternoon sea breeze

    One wind for the coast

    In the sceneafter NDBC station LJPC1

    One breeze, measured at Scripps Pier and carried by gust fronts that travel downwind, moves the sea, the clifftop planting, the room plants, the curtains, the steam and the particles.

  • The sun low over the Pacific at 17:40, a glitter path on the water below a pale, hazy sky

    Sun position and sky

    In the sceneafter NOAA solar equations

    The sun, its shadows and the sun’s disc follow NOAA’s solar equations for La Jolla on the scene’s Pacific clock; the sky’s colours are authored.

Cloth, skin and motion

  • Two sheer curtain panels in the kitchen at 16:45, drawn part way against the low western sun

    Sheer curtains in the breeze

    In the sceneafter Macklin, Müller and Chentanez 2016

    Four sheer panels inside the glass front, a position-based cloth in the coast’s breeze, with a weave whose openness, glow and shadow change with the angle.

  • Sirui asleep at 04:00 under a duvet draped over his body, the pillow dented under his head

    Bedding draped by position-based dynamics

    In the sceneafter Müller et al. 2007

    Each avatar’s duvet is dropped over the sleeping body offline by a position-based cloth solver and its pillow pressed in by the head, so no cover cuts through a chest; in the scene the cover breathes.

  • Sirui drinking coffee at breakfast, close up, his face lit softly by the daylight from the glass front

    Preintegrated skin diffusion

    In the sceneafter Christensen and Burley 2015

    Skin spreads direct light across a curved patch with a normalized diffusion profile, so a shadow’s edge on the face turns warm instead of hard.

  • Sirui at the desk at night, the desk lamp drawing bright bands across his long black hair

    Strand highlights on hair

    In the sceneafter Kajiya and Kay 1989

    Hair gets two shifted highlight bands across its strands, the primary and secondary lobes of hair scattering, instead of a round spot.

  • Sirui doing pull-ups on the gym's wall frame at 18:12, hands on the bar, the power cage and the training board behind him

    Lifts posed on each figure

    In the sceneafter Tolani, Goswami and Badler 2000

    Every lift in Sirui’s program is solved each frame on the avatar’s own skeleton, so the hands meet the real bar whatever the body’s proportions.

  • Harbor seals on the sand, sea lions on the rocks and sandpipers at the swash below the cave house

    Animals that plant their feet

    In the scene

    Rabbits, sea lions, harbor seals, a raccoon, gulls and sandpipers move on choreography sampled from time, with feet that hold their contacts on the exported terrain.

  • A red and white paraglider over a canyon in the north bluffs, with Torrey pines beyond

    Gliders soaring the bluffs

    In the sceneafter the banked-turn relation

    Three paragliders and a hang glider follow closed loops along the north bluffs, banking into their turns, posed from the scene clock.

Camera and land

  • The cave house in its cliff from far out over the Pacific, with the mesa, its planting and the coast running on into the haze

    A camera that knows the house’s walls

    In the sceneafter Amanatides and Woo 1987

    Every static mesh is voxelized into a 12 cm field once it loads, and a spring arm keeps the camera on the near side of anything between it and the subject, so visitors can orbit freely and zoom the coast to 160 m.

  • Sandstone bluffs north of the house cut by a canyon, the gliderport's lawn and Torrey pines on top, and a paraglider overhead

    The land beyond the mainland’s walls

    In the sceneafter Shewchuk’s Triangle

    A terraced mesa with badland canyons, bluffs with the gliderport, a headland with sea caves and a distant point continue the coast past the mainland’s flat walls.

Drawing

  • Pen strokes drawing the bedroom while the 3D home loads, the bed, a framed picture, a plant and the doorway

    A pen sketch while the house loads

    In the sceneafter Saito and Takahashi 1990

    Pen strokes traced offline from geometry buffers draw the sea, the cliff, the cut-away house and the occupied room while the scene loads, then trace the first rendered frame.

Next papers to try

Each technique in the record keeps a short list of newer work that advances it, mostly from SIGGRAPH, SIGGRAPH Asia, Eurographics, EGSR and SCA, with what it would add here and a rough effort. These four would each change something a visitor can see:

  1. Light paths through the onsen Zeltner, Georgiev and Jakob 2020, SIGGRAPH 2020

    Medium effort Solves for the path through the water from a point on the pool floor to the sun, so even plain path tracing could aim at the sun. The lab’s pool has a single refracting surface, the method’s simplest case.

  2. Sun position and sky Hillaire 2020, EGSR 2020

    Medium effort A physically based sky and aerial perspective from small lookup tables, with multiple scattering, cheap per frame, so sunsets and the coast’s haze would come from scattering.

  3. A height-field onsen Jeschke and Wojtan 2023, SIGGRAPH 2023

    Medium effort Splits each step into shallow-water bulk flow and Airy surface waves, so the hand’s short ripples would travel at their true speed in this shallow basin.

  4. One wind for the coast Diener et al. 2009, Eurographics 2009

    Medium effort Projects the wind onto a few precomputed modal stresses per tree, so the Torrey pines and the palm would sway as whole structures, evaluated on the GPU.

How the stills and the record are made
  • Stills. bin/capture_graphics_lab_stills.cjs opens the homepage's authoring lab in headless Chromium at a named hour, room and camera, without the homepage's feathered edge, and bin/make_graphics_lab_thumbnails.py scales the frames. They are scaled, never retouched. The light lab's still is a frame of its own renderer.
  • Record. Each technique lives in _data/design_records/graphics-lab.yml with its files and key functions, its sources, its limits and its papers to try; python bin/design_record_brief.py graphics-lab turns it into a brief for the next pass, and the agent brief says how to take a paper from the list into the house.
  • Citations. Every paper was checked against its DOI record, its publisher's page or its authors' page on October 16 and 17, 2026. Four DOIs in the first draft resolved to other papers and were corrected.
  • Credit. Sirui Tao, with AI coding agents: the experiments, their tests and notes. Anthropic's Claude compiled this page, its stills and the technical record for Sirui to review.