History
Version 0.33.0
Minor features and bug fix release
Improved performance of particle creation
Upgrades to Python support for Windows
Improved potential consistency, checks and performance
Removed limitation on local populations in CUDA acceleration
Added integration support in cmake projects
Improved library interface
Added C++ tests submodule
Improved documentation
Bug fixes
Disabled unreliable automated tests in pipelines conda build
Minor build fixes for gcc
Corrected pointers during fission
Fixed memory leak in I/O
Fixed incorrect install headers
Version 0.32.1
Patch release
Added links to C API docs
Reduced cost of docs build to support rendered notebooks online
Mitigated bug related to pre-rendered notebooks with jpeg output
Relaxed python library testing to mitigate random, erroneous errors on Azure for osx
Version 0.32.0
Minor features and bug fix release
Adds C API
Adds and integrates test suite
Finishes all current features in lattice python module
Updates Jupyter deployment and widgets
Adds notebooks to distributed examples
Adds rendered notebooks and gallery to docs examples
Adds settable particle position, velocity and force
Adds automatic destruction of angles and dihedrals connected to a destroyed particle
Adds improved checks to particle handle and type
Adds key modifiers to key events
Adds support for multiple new screenshot file formats
Splits language support and bindings into separate, self-contained modules
Major cleanup of codebase
Minor bug fixes
Fixes particle position details very close to boundaries
Removes redundant random force in Friction
Refactores Berendsen to correct typo
Fixes/improves argument handling in python particle construction
Fixes inventory tracking during particle destruction
Fixes cluster particle factory
Fixes visible types in particle become
Adds templates for universe grid
Version 0.31.0
Huge release, with completion of (hopefully) all features for Version 1.0.0
Core features
Adds support for model specification in pure C++
Adds support for generating bindings in additional languages
Adds a formal event system, with callback capabilities in C++ and python
Implements universal naming of particle types: a registered type can now always be uniquely determined anywhere in a simulation
Adds “models” module for application-specific modeling features
Adds libSBML dependency
Removes carbon
Adds modular CUDA runtime support
Improves synchronization of SBML states and state vector dynamics
Adds simulation I/O based on JSON
Adds I/O support for 3D model format files
Modeling features
Populates event system with events for
single events
time-dependent events
particle-dependent events
time- and particle-dependent events
Adds cell polarity model to models module
Adds “reset” boundary condition
Unifies bond interfaces
Visualization / interactive features
Adds camera and basic visualization interfaces
Adds clip planes support for bonds rendering
Adds interactive interface for clip planes
Adds interface for random number generator
Adds interface to customize basic visualization (e.g., background color, scene decorations)
Adds screenshot interface
Adds rendering of space discretization
Adds visualization of view orientation
Adds keyboard commands for
pre-defined views
toggling scene decorations
toggling display of space discretization
Documentation features
Adds documentation on (hopefully) all modeling and simulation features
Adds documentation on select back-end details
Adds automated C/C++ API documentation using Doxygen
Adds automated Python API documentation using Sphinx
Build / distribution features
Adds automated local build using conda
Adds conda package recipe
Implements CI/CD using Azure
Version Alpha 1.0.30.4
fixed bugs in performance timers
Version Alpha 1.0.30.3
imporved logging, file logging
bug fixes in determining if jupyter is running
more logging info
better error handling
log performance counters
expose performance counter in Python
Version Alpha 1.0.29.0
bug fixes in multi-threaded rendering from Python
bug fixes in jupyter widget
Version Alpha 1.0.28.0
switch to Python 3.9 on Mac.
disable jpeg on ARM
Version Alpha 1.0.27.0
Added massivly experimental support for ARM on M1 processor. Note, we have no way of testing this.
Version Alpha 1.0.26.0
Clipping Planes! users can specify arbitrary clipping planes with nice Python API.
Forked Magnum Phong shader, we now have complete control over the shader.
Version Alpha 1.0.25.2
functions to detect if we are running in interactive terminal or jupyter notebook
stubbed out new jupyter widget file.
call jupyter widget init / run if we are running in jupyter notebook server.
Version Alpha 1.0.24.1
new coupling parameter between single body forces and chemical species on objects.
Version Alpha 1.0.23.1
bug fix in DPD potential between fluid and large objects
new scaled DPD potential that enables fluid interaction between objects of varying size.
Version Alpha 1.0.22.1
lots of new bonds method, can iterate network connected by bonds
fix in bind, to make bond to instances
fix in parsing boundary conditions
new ‘reset’ boundary condition for species attached to objects.
Version Alpha 1.0.21.1
major bug fix in moving particles to different cells if cell has both periodic and bounce-back boundary conditions.
additional particle verify functions
bug fix in virial calculation with DPD potentials
Version Alpha 1.0.20.1
new universe.grid method to get particles binned on grid locations
improve error handling
change some examples to use Morse potential
doc updates
force calculation bug fixes
Version Alpha 1.0.19.1
new Morse potential
major bug fix in potential calculation
add reset_species method on particle state vector
species syntax parsing fixes, read boundary and init condition correctly
lots of new view camera rotation functions in python api.
Version Alpha 1.0.18.1
generalized passive, consumer and producer fluxes
better OpenGL info reporting, gl_info(), egl_info()
enable boundary conditions on chemical speices, bug fix parsing init conditions
use species boundary value to enable source / sinks
source / sinks in example
Version Alpha 1.0.17.1
multi-threaded rendering fixes
Version Alpha 1.0.16.3
Logging, standardized all logging output, python api for setting log level.
fix kinetic energy reporting
synchronize gl contexts between GLFW and Magnum for multi-thread rendering
Version Alpha 1.0.16.2
initialize Mechanica either via m.init, m.Simulator, or m.simulator.init
Version Alpha 1.0.16.1
finally, completly expunged pybind11! pybind11 is finally GONE!
context managment methods for multi-threaded headless rendering.
universe.reset() method, clears objects
set window title to script name
add ‘positions()’, ‘velocities()’ and ‘forces()’ methods to particle list.
universe.particles() is now a method, and returns a proper list
Version Alpha 1.0.15.6
bug fix with boundary condition constants
Version Alpha 1.0.15.5
bug fix with force calculation when distance too short: pic random separation vector of with minimal distance. Seems to work…
better diagnostic messages
added normal to boundary vectors
Version Alpha 1.0.15.4
generalized boundary conditions
add potentials to boundary conditions
velocity, free-slip, no-slip and periodic boundary conditions
render updates, back face culling
headless rendering, rendering without X11 using GLES on Linux
generalized power potential
much improved error handling, much more consistency
particle list fixes
Rigid Body Dynamics ! (only cuboids currently supported, but still rigid bodies)
add potentials to rigid bodies
python api rigid body updates
rendering updates, more consistency, simplify
rigid body particle interactions
friction force
more expunging pybind, soon, soon we will be rid of pybind.
bond dissociation_energy (break strength)
lattice initializer
add bonds to lattice initliazer
performance logging
updates to dissapative particle dynamics forces
enable adding DPD force to boundaries.
generlized single body force (external force)
fluid dynamics examples
visco-elastic materials, with bond breaking
single-body time-dependent force definitions in python
Version Alpha 1.0.15.2
initial dissapative particle dynamics
doc constant force, dpd
Version Alpha 1.0.15.1
Version Alpha 0.0.14.1
added convenience methods to get spherical and cartesian coords from lists
updated example models
update docs
added plot function in examples to plot polar angle velocity.
code cleanup
Version Alpha 0.0.14
All new FLUX / DIFFUSION / TRANSPORT, We’ve not got Transport-Dissipative-Dynamics working!!!
secrete methods on particle to perform atomic secrete
bug fixes in neighbor list, make sure neighbor don’t contain the particle
bug fixes in harmonic potential
new overlapped sphere potential
new potential plotting method, lots of nice improvements
new examples
update become to copy over species values
lattice initializers
add decay to flux
detect hardware concurrency
bug fix in Windows release-mode CPUID crash
multi-threaded integration
all new C++ thread pool, working on getting rid of OpenMP / pthreads
event system bug fixes
documentation updates
Version Alpha 0.0.13
preliminary SBML species per object support
SBML parsing, create state vector per object
cpuinfo to determine instruction set support
neighbor list bug fixes
improve and simplify events
on_keypress event
colormap support per SBML species
Version Alpha 0.0.12
free-slip boundary conditions
rendering updates
energy minimizer in initial condition generator
updates to init condition code
initial vertex model support
Version Alpha 0.0.11
new linear potential
triagulated surface mesh generation for spheres, triangulate sphere surfaces with particles and bonds, returns the set.
banded spherical mesh generation
bug fixes in making particle list from python list
points works with spherical geometry
internal refactoring and updates
Dynamic Bonds! can dynamically create and destory bonds
lots of changes to deal with variable bond numbers
rendering updates for dyanmic bonds
particle init refactor
added metrics (pressure, center of mass, etc…) to particle lists
add properties and methods to Python bond API
bond energy calcs avail in python
bond_str and repr
automatically delete delete bond if particle is deleted
Version Alpha 0.0.10-dev1
bug fixes in bond pairwise search
improved particle __repr__, __str__
new style visible attribute to style to toggle visibility on any rendered object
make show() work in command line mode
internal changes for more consistent use of handles vs direct pointers
bind_pairwise to search a particle list for pairs, and bind them with a bond.
new points and random_points to generate position distributions
spherical plot updates
new distance method on particles
implmement become – now allow dynamic type change
big fixes in simulation start right away instead of wait for event
basic bond rendering (still lines, will upgrade to cylinders in future
render large particles with higher resolution
new particle list composite structure, all particles returned to python in this new list type. fast low overhead list.
major performance improvment, large object cutoff optimization
numpy array conversion bug fix
neighbor list for particles in range
enumerate all particles of type with ‘items()’
new c++ <-> python type conversions, getting rid of pybind.
better error handling, check space cells are compatible with periodic boundary conditions.
add start, stop, show, etc. methods to top-level as convenience.
fix ipython interaction with show, default is universe not running when showing
enable single stepping and visualization with ipython
enable start and stop with keyboard space bar.
pressure tensor calculations, add to different objects.
new Universe.center property
better error handling in Universe.bind
clean up of importing numpy
expose periodic boundary conditions to python.
periodic on individual axis.
new metrics calculations, including center of mass, radius of gyration, centroid, moment of inertia
new spherical coords method
frozen particles
add harmonic term to generalized Lennard-Jones ‘glj’ potential
Version Alpha 0.0.9-dev4
tweaks in example models
more options (periodic, max distance) in simulator ctor
add flags to potentials
persistence time in random force
frozen option for particles
make glj also have harmonic potential
in force eval, if distance is less than min, set eval force to value at min position.
accept bound python methods for events
Version Alpha 0.0.9
all new cluster dynamics to create sub-cellular element models
cluster splitting
splitting via cleavage plane
splitting via cleavage axis
other splitting options
new potential system to deal with cluster and non-cluster interactions
revamped generalized Lennard-Jones (glj) potential
new ‘shifted’ potential takes into account particle radius
updated potential plotting
more examples
fixed major integrator bug
Version Alpha 0.0.8
explicit Bond and Angle objects
new example apps
new square well potential to model constrained particles
bug fixes in potential
thread count in Simulator init
Version Alpha 0.0.7
lots of changes related to running in Spyder.
force windows of background process to forground
detect if running in IPython connsole – use different message loop
fix re-entrancy bugs in ipython message loop.
Spyder on Windows tested.
Version Alpha 0.0.6
lots of changes to simulation running / showing windows / closing windows, etc..
documentation updates
Version Alpha 0.0.5 Dev 1
Add documentation to event handlers, and example programs
fix bugs in creating event events
add version info to build system and make available as API.
Version Alpha 0.0.4 Dev 1
All new particle rendering based on instanced meshes. Rendering quality is dramatically improved. Now in a position to do all sorts of discrete elements like ellipsoids, bonds, rigid particles, etc…
Implement NOMStyle objects. This is essentially the CSS model, but for 3D applications. Each object has a ‘style’ property that’s a collection of all sorts of style attributes. The renderer looks at the current object, and chain of parent objects to find style attributes. Basically the CSS approach.
More demo applications.
Memory bugs resolved.
Version Alpha 0.0.3 Dev 1
Windows Build!
lots of portability updates
some memleak fixes
Version Alpha 0.0.2 Dev 5
lots of new documentation
reorganize utility stuff to utily file
add performance timing info to particle engine
add examples (multi-size particles, random force, epiboly, events with creation, destruction, mitosis, …)
new dynamics options, include both Newtonian (Velocity-Verlet) and over-damped.
new defaults to set space cell size, better threading
New explicit bond object
add creation time / age to particle
particle fission (mitosis) method (simple)
clean up potential flags
harmonic potential
new reactive potential to trigger (partial implementation)
random points function to create points for geometric regions
prime number generator
Fixed major bug in cell pair force calculation (was in wrong direction)
major bug fix in not making sure potential distance does not go past end of interpolation segments.
new random force
new soft-sphere interaction potential
add radius to particle type def
update renderer to draw different sized particles
add number of space cells to simulator constructor
configurable dynamics (Newtonian, Over-damped), more to come particle delete functionality, and fix particle events
examples bind events to destroy, creation and mitosis methods
new event model
Version Alpha 0.0.1 Dev 3
Refactoring of Particle python meta-types, simpler and cleaner
Upgrade to GLFW 3.3
New single body generalized force system
Berendsen thermostat as first example single body generalized forces
Per-type thermostat
Arc-ball user interaction
Simplify and eliminate redundancy between C++ and Python apps.
Version Alpha 0.0.1 Dev 2
First public release