← Projects

Research software

SimpleX

Physics simulation, optimisation and visualisation

SimpleX is a shared C++ research framework for physics simulation, optimisation and visualisation. It brings together geometric representations, numerical solvers, physical models and an interactive OpenGL viewer, with OpenMP and CUDA support for parallel computation. The same foundation supports research across free-surface flows, thin films, elastic and rigid bodies, and computational design.

The framework separates reusable infrastructure from project-specific algorithms, allowing new methods to build on common simulation and visualisation tools.

Research built with SimpleX

These three projects show how a common software foundation can support distinct physical representations and numerical methods. They span vortical flow on Cartesian grids, particle-based thin films, and coupled film and foam dynamics. Each links to the published research; the thin-film projects also provide public implementations.

Free-surface vortical liquid simulation from the Clebsch method.

ACM TOG / SIGGRAPH · 2022

Free-surface Clebsch

Vortical liquid flows with evolving free surfaces, implemented using the SimpleX framework.

A Clebsch method for free-surface vortical flow simulation

Shiying Xiong, Zhecheng Wang, Mengdi Wang and Bo Zhu

Soap-bubble and thin-film phenomena simulated with the SPH Bubble method.

ACM TOG / SIGGRAPH · 2021

SPH Bubble

Particle-based thin-film dynamics, coupling surface deformation with flow within the film.

Thin-film smoothed particle hydrodynamics fluid

Mengdi Wang, Yitong Deng, Xiangxin Kong, Aditya H. Prasad, Shiying Xiong and Bo Zhu

Thin-film and foam simulation results from the MELP method.

ACM TOG / SIGGRAPH · 2022

MELP

A moving Eulerian–Lagrangian particle method for thin films and foams, built with SimpleX.

A moving Eulerian-Lagrangian particle method for thin film and foam simulation

Yitong Deng, Mengdi Wang, Xiangxin Kong, Shiying Xiong, Zangyueyang Xian and Bo Zhu

Architecture

SimpleX module dependencies, organised into language basics, data structures, discretised algorithms and physical simulators.
Original architecture diagram from the SimpleX README. Select to view at full size.

SimpleX organises reusable functionality into four layers: language basics, data structures, discretised algorithms and physical simulators. Common utilities and data containers underpin modules for geometry, solvers, optimisation, parallel computation and viewing. Physical simulators assemble these capabilities into specific models. The arrows in the original diagram show how modules depend on one another.

The library includes MAC grids, simplicial meshes, particle systems and level sets, allowing projects to choose representations suited to their physics. Shared linear solvers, including multigrid components, support the computational work beneath these models. The viewer provides a common way to inspect simulation output during development.

Application code remains separate from the reusable library and build infrastructure. This makes SimpleX useful as a research foundation: an individual project can introduce a new formulation while reusing established data structures, solvers and visualisation tools. Maintenance of those shared components therefore supports work beyond a single paper.

Supporting a wider research programme

SimpleX also supports computational design and topology optimisation. Examples include:

Additional applications are documented in the software overview.

Getting started

Start with the SimpleX repository and README for its structure, examples and build documentation. For focused research implementations, see SPH thin-film fluid and MELP thin-film and foam simulation, each with its own usage instructions.