Building a Virtual Blood Lab
Co-authored the high-level design and led 3D visualisation for a proof of concept that modelled a platelet pooling laboratory as an Azure Digital Twin.
The problem
Lifeblood operates a highly specialised platelet pooling process inside a laboratory environment. The questions were operational: are staff being allocated efficiently, where are bottlenecks forming, what happens when demand changes, and how can layout or workflow changes be tested without disrupting a live blood supply?
None of those questions could be answered from a dashboard. They needed a virtual representation of the physical space, the equipment and the process flow running together.
The approach
The proof of concept evaluated whether Azure Digital Twins could model that laboratory as a working digital twin, combining physical assets, process simulation and operational data into a single explorable environment.
My role covered three layers of the solution.
High-level design. I co-authored the HLD with the team, defining the solution architecture: what a digital twin of the laboratory would look like, how device twins would map to physical equipment, how telemetry would flow from simulators through Azure IoT Hub into the twin graph, and how the front-end would surface that data as an operational tool rather than a technical readout.
3D visualisation. I created the 3D models of the laboratory environment in SketchUp Pro, translating the physical processing equipment into digital representations. Centrifuges, macopresses, sterile docking stations, heat sealers, platelet agitators, label printers, irradiation equipment. Each piece needed to be recognisable to operations staff while performing well enough to render in a browser. Standup notes record the fidelity decisions: when to add sub-components for solution detail, when to simplify for performance.
Front-end and integration. The React and TypeScript visualisation layer, integrated with Azure 3D Scenes Studio, was built by our in-house Azure developer and practice lead. I worked alongside the client and the development team throughout, contributing to the plan, architecture and estimation while focusing on the 3D modelling and UX side of the solution. I actively contributed to the PoC direction, including a slot-based layout concept where lab hardware could be assigned a position and footprint size, allowing the app to arrange equipment spatially without hard-coding every placement.
The architecture
Physical laboratory (buffy coat processing, pooling, quality control) to device simulators to Azure IoT Hub (telemetry ingestion, device registry) to Azure Digital Twins (device twins, twin object models, spatial intelligence graph) to a React web application with Azure 3D Scenes Studio rendering the 3D laboratory, KPI dashboards and operational readouts.
The simulation layer used Python and SimPy for discrete event modelling of the platelet pooling process. That work was handled by another team member; I worked alongside it on the UX, visualisation and front-end side.
What the twin was designed to enable
The solution was built so operations teams could run what-if scenarios, identify process bottlenecks, optimise resource allocation and evaluate workflow changes without disrupting live operations.
Why it matters
This is a physical environment modelled as a digital system, built by someone who has been translating between physical and digital for 24 years. The laboratory is not a metaphor. The equipment is real, the process is specialised, and the people who use the twin need to see their workplace, not an engineering diagram.
The fidelity decisions were the interesting part. Every model sits on a spectrum between realism and performance, and every choice on that spectrum is a UX decision disguised as a technical one. Too much detail and the browser chokes. Too little and operations staff do not recognise their own equipment. The answer was iterative: build, test, refine, decompose where the detail adds understanding, simplify where it adds only load.
This was a proof of concept. The architecture and contribution are described accurately; production deployment is not implied.