Available now for lead or senior environment roles, remote or hybrid. Get in touch

← Personal work

Arid Canyon

2024–2026Grand Canyon style gorge at sunsetOne camera, 1920 × 1080Surface and volume passes comped in ACES

  • Houdini 22
  • Solaris
  • Karma XPU
  • MaterialX
  • VEX
  • Gaea
  • Quixel

A desert canyon at last light, just after a storm. Built in Houdini for a single camera, with the surface and the weather rendered as separate passes.

Desert canyon at sunset after a storm: red layered cliffs, a river at the bottom, torn clouds clinging to the walls

Breakdown

The shot, taken apart

Layout around the camera, then the hero frame built up layer by layer.

Layout

Built for one camera

A set dressed for one lens, not a continuous landscape: near walls, one mesa mesh reused as the butte and the far mesas, and a canyon floor at two scales. Off-frame proxies only cast shadows.

Every instancer culls outside the frustum and below half a pixel; the floor is subdivided and displaced only where the camera sees it and doesn't interfere with scattered points.

Set pieces from above: near walls red, butte blue, its copies light blue, floor sand
The hero frame with every part colored: red near walls, blue butte, light blue far mesas, sand floor, gray rocks, green plants
The same parts from the shot camera

Forms

Mesas from a rock column

A Gaea base terrain, remapped in Houdini through a rock-column profile: hard beds stand as cliffs, soft beds weather back to slopes. Erosion cuts the gullies; a scanned-rock shell adds the surface.

Render-time displacement adds bedding ledges, joints and slumped blocks to the far mesas, floor and butte. The near cliffs get the same in SOPs, steep faces only, so the scatters stay grounded.

The hero frame in plain clay under the sunset light, showing cliffs, ledges and slopes
Clay under the hero light: the forms only

Weathering

Where the water runs

A geometry pass computes flow, cavity, occlusion and edge masks on every cliff mesh. The materials use them for desert varnish, crack darkening and edge wear, matched between the near walls and the mesas.

The hero frame with the terrain colored by its masks: water runs in orange, cavities in blue on gray clay
Flow in orange, cavities in blue

Materials

One rock, many layers

One scanned sandstone on every wall. The mesas layer height-driven strata colors, streaks and grain in world space, so scaled copies keep their texel scale. Albedo is matched to the near walls on an albedo-only render.

Weather

Clouds the canyon makes

Storm fractus grown from the environment, not placed by hand: sources in the gullies (from the flow masks) and along the walls below the rim, advected by a short wind solve with curl turbulence.

Art-directed for the frame: thinned in front of the center peak, and the gorge plume gets its own 1 m volume where the 3 m grid fell below a pixel.

Render

Two passes, one comp

Surfaces and depth in one pass; clouds and haze in another with the terrain as holdout, so the weather iterates without re-rendering surfaces. Comped in scene-linear ACES, with silhouette edges rebuilt against the sky.

  • 2.5 minsurface pass, 1920 × 1080, Karma XPU
  • 9 minvolume pass: storm clouds and haze, from 22 min
  • ACEScomp in scene-linear, SDR video view

Light experiments

One scene, many skies

Fourteen lighting setups on the finished scene, physical sky with the sun placed relative to camera, all kept as switchable options. Cloud shadows from a shadow-only plane, sunrise fog from height-falloff layers, and a ring sky from my planet atmosphere node, with the ring's shadow cast across the canyon the same way.

The canyon under a low sun, the shadow of a planetary ring lying across the walls in bands, the ring arcing over the far rim
Ringed world: the rings cast their shadow across the canyon in bands

Tools: Houdini 22, Solaris, Karma XPU, MaterialX, VEX and Python; Gaea for the base terrain; Quixel rock scans; Maxtree plants.