DesignWeaver
A prompt-design workspace that surfaces visual dimensions so novices can make more deliberate product concepts.
Read project pageWhat to notice
- Prompts become visible design dimensions.
- Novices compare and iterate deliberately.
HotSpot
A neural SDF optimization framework with a screened Poisson objective for more stable surface reconstruction.
Visit project siteWhat to notice
- Screened Poisson objectives stabilize SDF optimization.
- Surface reconstruction improves under noisy geometry.
What Happened and Why?
A CHI 2026 workshop position paper about trace-guided micro-episodes and in-flow user explanations for product iteration in AI-supported design tools.
Read project pageWhat to notice
- Trace data needs user intent.
- Micro-episodes capture why in flow.
Physion
A benchmark for testing whether vision models predict physical scene dynamics the way people do.
Visit project siteWhat to notice
- Models predict physical scene dynamics.
- Human judgments anchor plausibility.
Context-Aware Encoding for LLMs
A tree-of-thoughts context encoding experiment for improving retrieval and long-document contextual understanding.
Read project pageWhat to notice
- Tree structure organizes long context.
- Retrieval becomes easier to inspect.
GraphHSCN
A graph neural network architecture prototype for modeling long-range interactions in structured data.
Read project pageWhat to notice
- Graph structure models long-range interactions.
- Prototype explores structured-data reasoning.
A CHRONOLOGICAL DESIGN RECORD
Site experiments
I keep these site experiments on record so newer models can re-review the last best pass—and I keep only changes that survive screenshots, accessibility checks, and my own judgment.
Inside
- The 3D home
- The house
- Graphics Lab
- Performance
- Light Paths
- La Jolla
- and 9 more
How I rebuilt an academic archive so visitors can find the research question, inspect the work, and reuse the design lessons.
Read project pageWhy it began
My old portfolio listed projects and papers, but visitors could not see what I study or where to start.
What changed
I reorganized the archive around my research questions, then kept the useful experiments as reusable site rules.
Intended outcome
Visitors can see the research thread without reconstructing it.
A few places from my everyday orbit, compressed into a coastal miniature.
Read project pageWhy it began
The coast and the lab are both part of my everyday life, but sat outside the story on this site.
What changed
I brought them together in a small coastal atlas, using real map geometry beneath a deliberately compressed Blender miniature.
Intended outcome
Turn the coast gently, and follow its light from morning to evening.
A soft black dot, a curious little robot, and an experiment in making room for play.
Read project pageWhy it began
I wanted the site to feel inhabited, with a little companion that notices visitors without getting in the way of reading.
What changed
P grew from a rectangular visor into a floating, lens-eyed character with an articulated Blender model and a shared vocabulary of small gestures.
Intended outcome
A head turn, a pause, and delayed antennae can say more than another face.
What I added to an existing research portfolio during OpenAI Build Week, with a clear cutoff, linked commits, and reusable project guides.
Read project pageWhy it began
Most of the portfolio existed before Build Week. I needed to show exactly what changed during the event.
What changed
I marked the cutoff on the timeline, then linked each change to the page and commit where it appears.
Intended outcome
Students can inspect which changes survived review and reuse the same screenshot checks on their own pages.
A second way to browse my publications: five accepted papers connected by three recurring research threads, with future work kept anonymous.
Read project pageWhy it began
A year-by-year paper list hid the questions that recur across projects.
What changed
I mapped three recurring research questions on desktop; mobile follows the same papers through time instead of shrinking the map.
Intended outcome
Readers can follow one research question across papers instead of reading the bibliography year by year.
A page for seeing when I build: daily code activity by source, read for cadence and change rather than as a score.
Read project pageWhy it began
The logs had totals, but they did not show when the work arrived in bursts.
What changed
A later dashboard mixed unlike numbers. I retired the token clocks and line-change totals, giving daily commits more room.
Intended outcome
Readers can see when work clustered without mistaking a busy day for a good one.
How the homepage's paper collage became an inhabited coastal home while keeping its records, research papers, and discoveries.
Read project pageWhy it began
The flat desk held papers, records, and hidden cards, but visitors could not step inside the room.
What changed
I made 2D and 3D views of the same room, so music and discoveries remain when someone switches views.
Intended outcome
Visitors can skim the research in 2D, explore the room in 3D, and switch without losing their music or discoveries.
How the 3D home's house moved from a room on a rock to a two-floor home cut into a sandstone cliff, one review at a time.
Read project pageWhy it began
In September my own screenshot showed the 3D home sitting on a rock pedestal, a stage set rather than a home in a cliff.
What changed
Each review moved it deeper into the rock: two carved floors, a sandstone face, a glass front, and on October 24 an eight-metre retreat.
Intended outcome
Visitors can follow one house from a rock pedestal into a cliff, with dated before and after views and the review behind each change.
26 experiments
The rendering and simulation papers I have tried in the 3D coastal home, in one place: each experiment with its sources, its limits and newer papers to try.
Read project pageWhy it began
The graphics experiments kept multiplying in the 3D home, and a project page for each one would have buried the rest of my work.
What changed
Light Paths had a page of its own; now it sits in one lab with the home's other experiments, each linked to its write-up and to newer papers that could advance it.
Intended outcome
Visitors can browse every graphics experiment in the home from one page and open the write-up behind each.
Light 4
-
Light paths through the onsen A plain-JavaScript renderer races path tracing against Metropolis light transport on the sunlight the light well bends through the onsen’s water. Lab page -
A light well with traced shaft light 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. In the scene -
Traced sky and lamp bounce 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. In the scene -
Horizon-based contact light 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. In the scene
Surfaces 1
Water, air and sky 11
-
A Pacific of Gerstner waves Ten Gerstner waves displace the sea and its normals together, with a wind sea that grows with the breeze; the water’s colour comes from its optics over a seabed read from the coast (turquoise over sand, deep blue offshore, caustics on the sand), with a live mirror that streaks the terrace lamps, the sun’s glints in the hue of the day’s real low sun, and swash on the true waterline. In the scene -
A spectral ocean, enabled in the lab An actual 64 × 64 inverse FFT drives the sea’s long waves in the authoring lab, sharing the displaced surface with its normals and the coastal animals; the public home keeps the analytic ocean. Exploratory -
A creek and koi pond on the clifftop A carved recirculating creek descends through six reaches into a koi pond; five original fish swim on the home’s shared active clock. In the scene -
A height-field onsen The onsen is a 40 × 40 shallow-water height field whose waves carry water between cells, reflect off the rim and the bather, start from the bather’s hand, and throw caustics on the basin. In the scene -
Thermal steam Bath mist is two transported fields, droplet concentration and temperature, rendered with single scattering that composes in order around the glass and the water. In the scene -
One wind for the coast 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. In the scene -
A scattering sky for La Jolla The sky is a scattering atmosphere computed for the actual sun, so the Pacific sunset goes from gold to apricot and rose with the disc sinking, squashed, into the sea at NOAA’s minute, then a pink afterglow, the blue hour, stars on the turning sky and a moon at its true place and phase; the scene’s key light, fill and reflections follow it. In the scene - Stars and five bright planets over La Jolla The night sky carries the naked-eye stars of the Yale Bright Star Catalogue where they stand over La Jolla at the minute, only as many as the coast’s suburban glow and the moon leave visible: about four hundred on a moonless night, under a hundred beneath a full moon, coming out one at a time at dusk. Each is a round point about a CSS pixel across, its colour from its B-V index, reddened and twinkling toward the horizon. Mercury, Venus, Mars, Jupiter and Saturn join the same draw with their own positions and visual magnitudes, without scintillation. In the scene
-
Haze that follows height and the sun The air between the eye and every surface is an exponential haze, dense at the waterline and thin on the bluffs, glowing gold toward a low sun and cool away from it, and the land block, the hinterland and the 400 m sea dissolve into the sky and the open Pacific instead of ending. In the scene - Land past the modelled world Past the modelled mainland, hinterland and sea, the dome carries the land on to the horizon: the mesa keeps rising inland, the coast keeps its line north and south, and the camera’s parallax moves the near land against the far as it zooms, where a flat sea-coloured wall with a hard line at the horizon used to stand. Rounded grove silhouettes and meadow patches now vary that distant land, and warm settlement points appear south and inland after dusk while the northern reserve and sea stay dark. In the scene
-
Marine fog, shafts and sunbeams On marine-layer mornings and some evenings a fog bank lies over the water and climbs the cliff, light streams through the shadows of the cliff, the pines and the house in the haze, and at golden hour sunbeams cross the rooms’ dusty air through the glass front. In the scene
Cloth, skin and motion 7
-
Linen curtains and laundry Four sheer linen panels on rings and bronze rods, and three towels and a shirt on a terrace line, in one small-step XPBD cloth with isometric bending, blowing in the coast’s one wind. In the scene -
A fitted duvet with live cloth constraints Each avatar’s duvet is fitted over the sleeping body offline, then a small compliant cloth follows the breathing chest in the scene while preserving that authored contact envelope. In the scene -
Preintegrated skin diffusion 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. In the scene -
Strand highlights on hair Hair gets two shifted highlight bands across its strands, the primary and secondary lobes of hair scattering, instead of a round spot. In the scene -
Lifts posed on each figure 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. In the scene -
Animals that plant their feet Twenty-eight skinned animals, from rabbits and sea lions to brown pelicans and Brandt’s cormorants, act in irregular epochs sampled from time, with feet that hold their contacts on the exported terrain, rock and sea. In the scene -
Gliders soaring the bluffs Three paragliders and a hang glider follow closed loops along the north bluffs, banking into their turns, posed from the scene clock. In the scene
Camera and land 2
-
A camera that knows the house’s walls 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. In the scene -
The land beyond the mainland’s walls 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. In the scene
Drawing 1
Performance 1
How two paper rejections became a Steam-style lab meme, a remix gallery, and a downloadable prompt-and-image kit.
Read project pageWhy it began
The same paper was rejected by CHI and UIST, then became a Steam-style image passed around the lab.
What changed
A one-off Steam-style meme grew into a small remix kit, with the serious rejection record still one link away.
Intended outcome
The page gives people images and prompts they can actually remix.
Filters and linked highlights that help readers follow one paper across my bibliography, citation total, and annual citation bars.
Read project pageWhy it began
A highlighter suggestion made me notice that each paper's bibliography row, citation count, and yearly bars were far apart.
What changed
Selecting DesignWeaver now highlights its bibliography row, lifetime citation chip, and yearly bars together.
Intended outcome
Readers can follow one paper from bibliography entry to citation history without hunting across the page.
The Steam-style rejection meme I turned into a small public wall of badges, receipts, and deliberately silly Failure XP.
Read project pageWhy it began
Two conference rejections became a lab meme worth keeping instead of hiding.
What changed
The meme became a wall where each rejection gets one dated badge and receipt, without being counted twice in the combo.
Intended outcome
Visitors can see the rejected attempts around accepted work and open the dated receipt behind each badge.
Click a project card, read the full preview in place, then close it without losing your spot in the collection.
Read project pageWhy it began
I wanted project previews to open inside the grid so visitors could keep seeing the other projects and return to the same card.
What changed
The first transition scaled the whole card and squeezed its content. The current version moves the card without scaling its contents and cancels cleanly when another card opens.
Intended outcome
Visitors can sample a project and return to the same place in the collection without a navigation detour.
Find the dog by the blog title, choose a fruit, and see whether it lets you through—without exposing what waits behind it.
Read project pageWhy it began
A meme dog in the blog became a small clue for readers curious enough to follow it.
What changed
The clue became a short fruit-choice game with an obvious way back and a consent step before precise location.
Intended outcome
The clue is optional, and the way back stays obvious.
Other playful builds
A small VRChat world where one person drives, one rides along, and everyone else watches the chaos.
Read project pageWhy it began
I wanted three people to share one VR joke: one steers badly, one rides along, and one watches from outside.
Intended outcome
Driver, passenger, and spectator get different parts of the same joke.
Interaction note: card opening pattern inspired by IKEA's PS 2026 collection story; adapted here for an academic project browser.