236 words
1 minute

Introducing CRESSim-Ultrasound

CRESSim-Ultrasound is a CUDA-only ultrasound simulation library. It is a lightweight reimplementation of OpenBCSim designed for GPU-based ultrasound simulation and can be easily integrated into robotics and simulation workflows.

The source code is available on GitHub:

yafei-ou
/
CRESSim-Ultrasound
Waiting for api.github.com...
00K
0K
0K
Waiting...

What it provides#

The library exposes a C API for constructing scan sequences, configuring a Gaussian excitation signal and beam profile, binding scatterers, and running the simulation. Its main compute interface keeps scatterers, scanlines, and RF output buffers on the GPU, avoiding unnecessary CPU-GPU transfers.

For applications in which the probe pose changes frequently, scanlines can be supplied from a device-resident buffer instead of rebuilding and uploading a CPU-side scan sequence. The simulator also supports CUDA streams and an external CUDA completion semaphore, which makes it practical to compose with other GPU workloads (such as Vulkan).

Deformation-aware scatterers#

One useful extension is the deformation tracker. It generates dense ultrasound scatterers from sparse input points, records their initial configuration, and updates the scatterers as those input points move. This provides a direct path for coupling the ultrasound image formation pipeline to a deformable-tissue simulator (such as when using the material point method) while keeping the update on the GPU.

Simulated ultrasound scan of undeformed tissue
Ultrasound simulation with the probe over tissue in its rest configuration
Simulated ultrasound scan of deformed tissue
Ultrasound simulation after the tissue has deformed

The current implementation uses a Gaussian beam profile. It is not yet a feature-complete replacement for OpenBCSim; in particular, lookup-table beam-profile support is not implemented.


Written by Yafei Ou, assisted by ChatGPT (2026-08-15).
© 2026 Yafei Ou. All rights reserved.

Share: