How HiPhyEngine Blender Addon Works#
HiPhyEngine is a standard Python addon for Blender. It gets and sets the scene data through only the Blender Python API. Due to this constraint, there is a few limitations on how the simulation rigs can be set up.
Scene Export#
When a simulation is kicked off HiPhyEngine solver will go through the timeline one frame at a time and export all relevant scene objects. This process will use the final evaluated object from the editor, so only modifiers visible in the editor will be picked up.
Simulation Deformation#
When bringing back the result of the simulation, due to the limitation of Blender's Python API, HiPhyEngine can not deform the simulation object at the end of the modifier chain. The deformation of the position attribute from the simulator will be applied at the start of the modifier chain. It means that any modifier that changes the position or topology of the simulation object will cause issues.
Therefore, simulation objects for HiPhyEngine needs to have a minimal modifier chain (triangulate is one of the few modifiers that is ok to use). If you wish to apply modifier chains after the simulator, you need to create a second object, and use the simulation object to deform the second object, and apply your desired modifier chain on the second object after the deform modifier. The Driven shape is designed circumvent such limitation.
Simulation Cache Management#
Due to the potential large size of the simulation cache, we decided not to automatically save the cache whenever blender is saved to prevent frequent slowdowns and disk i/o during saves for large scale simulations. User will have to manually save/load the cache use the provided button on the solver node and operator calls. It also leaves the potential for users to create scripts to version-manage simulation caches, without worrying that the HiPhyEngine automatically overrides the simulation cache files when saving the Blender file.