ML surrogates drift. Physics does not. After shipping a CNN daylight tool at Hoare Lea, I built the opposite approach: a GPU-accelerated Radiance service that returns typical floor results in under 4 seconds at full raytracing accuracy.
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
Shipped (personal):
- Cyclops wrapped behind a CLI and Streamlit UI.
- Single-floor daylight autonomy results in under 4 seconds end-to-end.
Working:
- Optimisation loop over Ladybug parametric model: thousands of variants per hour.
WIP:
- Cross-client API hardening (CLI, Streamlit, downstream automation share an endpoint).
- Multi-floor and multi-zone benchmarking.
- Public deploy.
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
- Cyclops automation via API for CUDA-accelerated daylight simulation.
- Cyclops wrapped for Rhino Compute usage.
- Rhino Compute on Azure Windows Server VM with CUDA passthrough.
- CLI tool for programmatic workflows.
- Streamlit UI wrapping the CLI.
- Cloud deployment on Azure.