Skip to content

aeaeaeaeaeae/bsystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

B-System for Houdini

B-System is a instance editing plugin for SideFX Houdini, you can get it on Gumroad.

Installation

B-System uses the package format for Houdini plugins, it requires a bsystem.json file in the $HOUDINI_USER_PREF_DIR/packages folder to load the plugin.

  1. Download .zip version from the Gumroad product page.
  2. Unzip the content and ...
    • Copy the bsystem folder to $HOUDINI_USER_PREF_DIR.
    • Copy the bsystem.json file to $HOUDINI_USER_PREF_DIR/packages.

$HOUDINI_USER_PREF_DIR is the houdini settings folder, on Windows it is found at Documents/houdini<version>. On Linux and macOS it is the ~/houdini<version> directory.

This installs the plugin at the default location, if you keep your packages elsewhere you can set the path with the BSYSTEM variable in bsystem.json to the desired directory.

{
  "env": [
    {
      "BSYSTEM": "$HOUDINI_USER_PREF_DIR/bsystem<version>"
    }
  ],
  "path": "$BSYSTEM"
}

the BSYSTEM environment variable is required by the plugin, don't set the "path" directly.

Documentation

For details on nodes and node parameters see the node help cards in Houdini.

Toturials

B-System geometry

The geometry used in the B-System Edit SOP follows a simple convention that defines the instances and their transform, the hierarchy between them and the direction of this hierarchy. Be aware that the hierarchy can't contain loops, loops will be broken up when merged into a B-System Edit SOP.

Attribute and groups

vex class type description
name s@name point string Instance name
transform 3@transform point rotation matrix Instance rotation and scale
roots i@group_roots point group Origin and direction of hierarchy
assembly s@assembly point string Defines assembly

Instance name s@name

The s@name point attributes stores the instance name, this works the same way as named instancing works on the Copy to Points SOP. Instances must be packed primitives and have a corresponding s@name attribute. All packed primitive types are supported.

Instance transform 3@transform

The 3@transform point attribute stores the instance rotation and scale. The rotation matrix is in world space. It works the same way as KineFX bone transforms.

Note that p@orient, @N, @up, @scale and @pscale is not used for setting the rotation and scale, these attributes are ignored. Check out the vex functions maketransform() and scale() for ways to quickly convert these attributes to a rotation matrix.

// N and up to Matrix3
3@transform = maketransform(@N, @up);
scale(3@transform, set(@pscale, @pscale, @pscale));
// Quaternion to Matrix3
3@transform = qconvert(p@orient);
scale(3@transform, set(@pscale, @pscale, @pscale));

Roots group

Instances on a B-System are connected in a branching hierarchy, the roots point group defines the origin and direction of this hierarchy. A set of connected instances can only have a single root point. Multiple connected sets will have a root for each set. Single unconnected instances are also roots.

Using a point to define the direction of the hierarchy is simpler than using vertex order, since vertex order is tricky to visualize, edit and debug in Houdini.

Assembly name s@assembly

Assemblies are labeled sets of instances, they are defined by the s@assembly point attribute. An assembly does not have to be fully connected, from any combination of connected and unconnected instances. Apart from the s@assembly attribute the definition of an assembly is identical to regular bsystem geometry.

Hotkeys

See the viewer state info panel for hotkeys.

As per Houdini 20.0 certain keys and inputs remain unavailable for python viewer states. Among others these includes the WERT keys, the ctrl key while dragging, and RMB if using a Context Menu. For this reason certain operations map to less intuitive keys such as a for rotation instead of r, and shift to snap instead of ctrl. This will change as soon as SideFX frees the keys.

About

B-System plugin for Houdini

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published