All projects

GPU Simulation

GPU-Accelerated Real-Time Daylight

GPU ray tracing on Azure: typical-floor daylight results in under 4 seconds, used on 8 live projects

ML surrogates drift. Physics does not. After shipping a CNN daylight model at Hoare Lea, I built the opposite approach for its engineering teams: a GPU ray-tracing daylight service on Azure GPU VMs that returns typical-floor results in under 4 seconds at full ray-tracing accuracy. It is used on 8 live projects.

WHY NOT JUST USE THE ML MODEL

After shipping the CNN daylight tool, the failure mode became obvious: ML surrogates degrade outside their training distribution. New weather files, unusual geometries, and climate zones not in the dataset all hit prediction quality. Keeping a model current across global use cases is expensive and slow.

Cyclops (Foster + Partners, 2025) made the alternative viable: keep using a validated physics engine, just on GPU. No model drift, no retraining, no surrogate.

APPROACH

Cyclops wrapped into a server-side API consumable from any client. Combined with the Ladybug Tools SDK, this drives an optimisation loop that runs thousands of daylight cases per hour at full raytracing accuracy.

Hosted on Rhino Compute behind a Streamlit front end, deployed to Azure Windows Server VMs with CUDA GPU passthrough.

BENCHMARK

  • Reference engine: Radiance rpict (CPU).
  • Test case: a representative typical office floor at 0.5m sensor grid.
  • Result: full daylight autonomy map in ~4 seconds vs minutes-to-hours for the CPU rpict reference, ~200x on this case.
  • Caveat: speedup figure is from this representative case. I have not yet swept a hold-out across geometries and climates; flagged as a “benchmarked on representative typical-floor cases” claim, not a population-level guarantee.

STATUS

In production (Hoare Lea):

  • Used on 8 live projects.
  • Typical-floor daylight autonomy results in under 4 seconds end to end.
  • Cyclops wrapped behind a CLI and a Streamlit UI that share one service.

CHALLENGES

  • Cyclops integration: wrapping a new GPU engine into a stateless server with predictable performance.
  • Rhino Compute on Azure: GPU-passthrough Windows Server VMs are operationally fiddly.
  • Optimisation coordination: thousands of Cyclops calls against a Ladybug parametric model without thrashing the GPU.
  • Cross-client API: the same endpoint serves CLI, Streamlit UI, and automation.

WORKFLOW

  1. Cyclops automation via API for CUDA-accelerated daylight simulation.
  2. Cyclops wrapped for Rhino Compute usage.
  3. Rhino Compute on Azure Windows Server VM with CUDA passthrough.
  4. CLI tool for programmatic workflows.
  5. Streamlit UI wrapping the CLI.
  6. Cloud deployment on Azure.