Release Notes

Version 1.3

Functionality

  • Improved multi-solver workflows:
  • All commands can now accept scene object inputs by name. If no scene objects are given by name, the currently selected objects are used, as before.
    • Ex: ziva -t pSphere1; converts pSphere1 into a tissue.
    • Ex: zFindSelfIntersections myMesh1; finds self-intersections in myMesh1.
    • Ex: zCache -l "myCache.zCache" zSolver1; loads a simulation cache into zSolver1.
    • Ex: zSelectVerticesByProximity -r 0.5 myMesh1 myMesh2; finds vertices on myMesh1 that are within 0.5 units of myMesh2.
  • Fibers and attachments draw grey when their envelope attributes are set to zero, to show that they are effectively disabled.
  • Attachment rendering fades to transparent as its weightmap fades to black.
  • zSelectVerticesByProximity has been renamed to zFindVerticesByProximity.
  • zFindIntersections and zFindSelfIntersections can both work with any number of meshes, instead of just 2 or 1 respectively.
  • zFindIntersections can optionally also find self-intersections.
  • The zFindIntersections, zFindSelfIntersections, and zFindVerticesByProximity MEL commands now return selection strings instead of changing the current selection.
    • The behavior of the corresponding Ziva Tools menu items has not changed, and will still set the current selection.
    • To achieve the old behavior when writing MEL, you can call, for example: select `zFindIntersections`;.
  • Reduce default collision stiffness on zTissue and zCloth nodes to reduce jitter and improve stability with default settings.
  • The zCopyMesh command has been deprecated, and will be removed in a future release.

Bug Fixes

  • Attribute zFiber.envelope also affects excitation due to zLineOfAction. Consequently, if zFiber.envelope is zero, that fiber will not contract.
  • Tissue tetrahedralization will no longer happen while zSolver is disabled. Pulling on zTet.oMesh while the solver is disabled will no longer work.
  • Make initial fiber endpoints work on meshes with multiple connected components. Previously, the fiber would be created and instantly cause an error in the scene.
  • Fixed bug that sometimes causes fibers to draw in grey when multiple fibers are selected.
  • Fixed bug that sometimes left the effect of a zFiber node even after the node was deleted.
  • Minor fixes to the undo/redo behavior of ziva, zPaintAttachmentsByProximity, and zMeshCheck MEL commands.

Version 1.2

Functionality

  • Add Maya 2018 support.
  • Improve performance on scenes with cloth – twice as fast on some simple benchmarks.
  • Improve performance in general.
  • Modify mesh quality requirements for “ziva -tissue” and “ziva -cloth” commands. They are more permissive about triangle quality than before, but more picky about manifoldness. The goal is to work with more meshes out-of-the-box while still rejecting meshes that are sure to cause problems.
  • Add zMeshCheck command, which can be run without a license.

Command Changes

Command Purpose
Add zMeshCheck Check meshes for potential problems.

Version 1.1

Functionality

  • Add “rest-scale” to make cloth shrink like shrinkwrap (or grow).
  • Add “pressure” to apply an external pressure force to cloth. Pressure and rest-scale are useful for wrapping fascia around muscles.
  • Significant performance improvements to tetrahedralization. Previously, we have advised setting zTet.tetSize to a large value and using surface refinement and refinement propagation to get high resolution where you need it. That workaround is no longer necessary and will be slower than setting tet-size directly to what you want. Surface refinement should only be used if you actually want spatially-varying refinement.
  • Lazy license checkout. The plugin only acquires a license once a node or command is run, not when the plugin is loaded.
  • Mesh analysis checks for negative-volume (inverted normals), which will usually look fine, but completely breaks material attributes, particularly on subtissues.
  • Significant performance improvements to zFindIntersections command (menu item “Ziva Tools” -> “Find Intersections”).

Bug Fixes

  • The plugin won’t load in “maya -prompt” mode.
  • Random crashes due to invalid internal constraints on cloth.
  • Warnings about MEL variable-shadowing happen on plugin load.
  • Running mayapy is using an authoring license instead of a batch license.
  • A sliding attachment with a subtissue target crashes maya.
  • Unstable cloth when rest shape was folded over itself.
  • Save and Load zCache dialogs no longer filter for file type when set to “All Files”

Attribute Changes

Node Attribute Change Purpose
zMaterial Add restScale and pressure To support fascia simulation and more general cloth sims. In actual fact, restScale was present in 1.0, but it was undocumented and unsupported.
zCloth Add restScaleEnvelope and pressureEnvelope To support stable runup with restScale and pressure effects.

Version 1.0 hotfix 2

Bug Fixes

  • Fix crashes or incorrect behaviour when tissue tets are larger than 1 meter across.
  • Fix incorrect spurious attachment of cloth vertices to other nearby parts of the same cloth.

Version 1.0

Functionality

  • Add zLineOfAction to enable semi-automatic muscle fiber excitation.
  • SubTissues - for volumetric material authoring.
  • Add zPolyCombine - a fast poly combine node. We use this internally because the Maya polyCombine is much too slow.
  • Empty Cavities mode on zTet mesh allows users to create internal cavities in tet mesh. For example, when meshing a fat layer over the entire body, this mode will not fill the rest of the body cavity with material.
  • Increased accuracy of tissue mass and stiffness for tets partially outside the tissue surface. Depending on resolution, this can reduce object mass and jiggle relative to previous versions.
  • Cloth - our cloth material model is no longer experimental. It is significantly more stable than past releases. It’s not a general cloth solution yet, but it is good for simulating fascia and skin.
  • Muscle Excitation is now visualized with a fiber color change.
  • Automatic fiber endpoint selection when adding a fiber node. Manual painting is still recommended, but it will paint a default automatically.
  • Logging improvements. All logging has controllable verbosity. All logging goes to the script editor and a log file.
  • Lots of performance improvements, affecting:
    • Simulation caching
    • Collision detection and response
    • Attachment updates
    • Attachment creation
    • Material interpolation
    • zEmbedder

Bug Fixes

  • Fix memory leak affecting cloth, volume conservation, inertial damping, and hard attachments/contacts.
  • Fix out-of-bounds memory access during tetrahedralization.
  • Ziva Menus no longer attempting to load in Batch mode.
  • zBones no longer draw when disabled.
  • Fix random crash on Linux.

Node Changes

Node Change Purpose
Add zLineOfAction Automatic muscle fiber excitation
Add zPolyCombine Fast alternative to Maya’s polyCombine

Attribute Changes

Node Attribute Change Purpose
zTissue Add iParentTissue and oChildTissue To support subtissues.
zTissue Add serializedCache To support fast re-opening of scenes. Internal use only.
zTet Change fillInterior from bool to enum. To support a new option ‘Empty Cavities’. See Tetrahedal Meshes
zTet Remove tetsUpperBound. Add maxResolution. Same purpose, but the new parameter is easier to explain and understand.
zEmbedder Remove iSolverParams No longer needed.
zCloth Remove collisionVolume This never worked anyway.
zIsoMesh Add inputGeometry To allow a faster and more accurate algorithm on watertight input meshes.

Command Changes

Command Purpose
Add ziva -addSubtissue To support subtissues
Add ziva -removeSubtissue To support subtissues
Add ziva -lineOfAction To enable automatic muscle excitation.
Add zLineOfActionUtil To help make rigs for automatic muscle excitation.
Add zPolyCombine To create the new zPolyCombine node.