Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


SimView allows 3D visualization of molecular simulations from HOOMD-blue in Unity. The Unity scenes can be built for virtual reality (VR) or augmented reality (AR) as an android app. AR/VR, when used with simulations, provides a perception of depth that may improve understanding of inherently 3D concepts like dihedral angles, chirality, crystal structures, etc.


Bluehive installation

If working on BlueHive, you will need to load some modules before beginning the installation.

module load git anaconda3/2018.12b cmake sqlite cudnn/9.0-7/ zmq/4.2.0/b1

Once modules are loaded, continue with the steps in Compiling with HOOMD-blue.

Compiling with HOOMD-blue

Clone the required repositories and install dependencies.

conda create -n hoomd-zmq python=3.7
source activate hoomd-zmq
export CMAKE_PREFIX_PATH=/path/to/environment
git clone --recursive hoomd-blue
cd hoomd-blue && git checkout tags/v2.5.2
conda install -c conda-forge rdkit
git clone

Then continue with the compilation.

ln -s $HOME/hoomd-zmq/hzmq $HOME/hoomd-blue/hoomd
mkdir build && cd build
CXX=g++ CC=gcc cmake .. -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_INSTALL_PREFIX=`python -c "import site; print(site.getsitepackages()[0])"`
make install

If you are using a conda environment, you may need to force cmake to find your python environment. This is rare, we only see it on our compute cluster which has multiple conflicting versions of python and conda. The following additional flags can help with this:

export CMAKE_PREFIX_PATH=/path/to/environment
CXX=g++ CC=gcc cmake .. \
-DPYTHON_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-DPYTHON_LIBRARY=$(python -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))") \
-DPYTHON_EXECUTABLE=$(which python) \
-DCMAKE_INSTALL_PREFIX=`python -c "import site; print(site.getsitepackages()[0])"`

Running Unity Scene


Run the script on a machine with open ports and a static ip address.

Run command:

python simview/  A,B,C  4000,4001,4002

or use the entry point:

broker  A,B,C  4000,4001,4002

if you want three clients (AR/VR devices to visualize simulations). The number of ports provided must match the number of simulations asked for, three in this example.

Running the Simulation

Create a ssh tunnel from Bluehive to the machine where the broker is running:

ssh -L 8080:localhost:8080

where 8080 should be replaced by the port that the broker is expecting and the port on Bluehive where you instantiated the simulation.

Then ssh into your interactive node.

ssh -4 -L 8080:localhost:8080 your_node

Then launch a simulation, by running the script.

python simview/ --smiles_string [string] --density [integer] --socket ["tcp://*:XXXX"]

You can also use the entry point to launch a simulation:

smiles_sim --smiles_string [string] --socket ["tcp://*:xxxx"] --period [integer] --particle_number [integer] --steps [integer] --density [float] --temperature [float] --pressure [float]

Note: On the client-side, the only thing to be careful of is that the device is pointed at the correct IP address, namely the IP address for the machine where the broker is running. Currently, this needs to be set in Unity in the BROKER_IP_ADDRESS variable for the FilterCommClient.cs (TODO: add support for changing the ip address in the client app itself).


A VR/AR client for visualizing molecular dynamics with Unity, Hoomd






No releases published


No packages published

Contributors 4