Houdini change log

This page lists changes to Houdini since version 6.5.

You can view all changes in the Houdini journal at sidefx.com.

Version 8

8.0.357

SOPs

Attempting to fix a crash related to when you get "stuck" in selection
mode in the sop-level edit tool and can't right-click to finish the
selection.  This fix won't prevent you from getting stuck, but it
will hopefully fix the crash.

SOPs

New example for the UV Transform SOP demonstrating how to use it to
animate a soft transformation of the texture coordinates.

8.0.356

mantra

When mantra generates a deep shadow map, the surface shaders are
now treated as if they were being called from shadow shaders.
That is, the VEX function isshadowray() will return true.

HDK

IMG_DeepShadow can now be used to read the raw opacity data from a
deep shadow file in addition to the existing write functionality.

doc

Loading helpcards on certain Linux distributions no longer prints an
error about loading the stylesheet.

SOPs

New example for the Layer SOP demonstrating how to use it for
multi-texturing.

8.0.355

SOPs

The Group SOP will no longer leak memory when it bounds points by
metaballs.

dop

The RBD Point Object no longer crashes Houdini on Linux builds.
The problem was with the ifs() expression not handling empty
results, so this crash could have manifested itself outside of
DOPs.

User interface

Can no longer select nodes in the light linker source and target
trees which cannot be linked.

dop

The RBD Point Object will now generate reasonable object names
when you override the point instance attribute rather than
creating no-named objects.

SOPs

A primitive sphere textured using polar coordinates will no longer
generate NANs as texture coordinates, but instead use default
values: (0, 0.5, 0).

dop

The Point Position DOP now has an option of whether you want to
orient to the normal or not.  Further, when it is set to orient to
the normal, it matches the behaviour of the Copy SOP by preferring
normals over velocities.

User interface

Can no longer select nodes in the light linker target tree when the
source selection is empty.

8.0.354

COPs

Improved the behaviour of the Compositing option 'Reduce Cache Size when
Inactive'. Now it waits a short period of time after a COP cooks before
beginning to gradually reduce the COP cook cache to its Inactive size.
Previously, it would clear the cache as soon as the cook was done. This
tended to cause a lot of recooking, which made COPs feel pretty slow.

This change will make COPs in Houdini feel much faster since cache hits
will improve significantly.

COPs

Fixed a couple of small bugs with outputing images outside the valid frame
range. First, if the user selects 'black' as the extend condition, then
render black frames when outside the range - don't bail out of the
render. Second, if the user renders a range of frames for a single still
image, render the same image for all the frames - don't just render
frame 1.

VEX

Made the VEX noise() function threadsafe, so it can be used correctly in
multithreaded VEX COPs. This was also used by such VOPs as aanoise.

8.0.352

mantra

Mantra is a little more graceful in handling input stream errors.
For example, if an ASCII geometry stream contains a NAN, the
stream will typically throw an error.  Mantra will attempt to
recover from this error (displaying an appropriate warning
message).

8.0.351

VEX

There is a new run-time optimizer for VEX available.  This
optimizer is turned on by setting the environment variable
HOUDINI_VEX_OPTIMIZER to 1 (it must be 1 exactly, not 2 and 5 is
right out).

The new optimizer handles uber shaders much more efficiently than
the existing optimizer.  Scenes which make heavy use of uber
shaders will render much more efficiently now (with less time
spent in loading VEX code).

The new optimizer also fixes several bugs, including, but not
limited to:
5054  - error optimizing functions with multiple return points
9261  - Optimization of do/while loops
11151 - Extra read variables
11871 - Uniform/Varying issue
18876 - shimport() over-optimization
18855 - error optimizing functions with multiple return points
18749 - poor optimization w.r.t. getcomp()
along with several uncovered bugs.

After sufficient testing, this new optimizer will most likely be
made the default.

mantra

Deep raster generation in mantra has been fixed when using primary
ray tracing (mantra -r).

SOPs

Fixed a bug that would cause the Bound SOP to crash if the group specified
was empty or couldn't be cooked.

Jive

When copying and pasting keys in the dopesheet using option r (Replace),
the effective range is now set to the larger of the selected range and the
copied range.

expr

Changing the trunc() expression and vex functions so they properly
round toward 0.  Previously, they had the same behaviour as the floor()
function.

Operators

Added an option to the Main Preferences Miscellaneous page to control
whether or not invisible parameters are affected by the Revert to Defaults
operation.

SOPs

The Color SOP will disable the color and seed parameters in the
expected fashion.

SOPs

The clip sop is more robust when faced with bridged polygons.  It
was possible for the clipping of a bridged polygon to lead to
accessing deleted memory, and hence intermittant crashes.

SOPs

New example for UVProject SOP demonstrating the various projection
types.

mantra

Adding motion factor support to mantra.  The motion factor is controlled
by the ray_motionfactor <float> command which currently must be placed
in the camera's pre-include.  Motion factor adaptively adjusts the
shading quality based on the amount of blurring of objects in the scene.
A motion factor of 1 will decrease the shading rate by a factor of
b/16 where b is the number of pixels of blurring.  Motion factor
cannot increase shading quality and it defaults to 0.

handle

It is now easier to select the purple translate box at the center of
handles instead of selecting the white axis translate arrows.

Jive

When copying and pasting in the dopesheet using option v (Paste), the
selection range now snaps to the copy range.

8.0.350

User interface

Fixed a bug that can cause incorrect connection oredering when trying to
replace a connection in VOPs.

Operators

Fixed a bug where mask parameters would not update exclusion tokens
(those starting with '^') when nodes were renamed.

Objects

Fixed bug that would prevent bundles with Light filters that contain
light HDAs from perperly rendering in the Active Lights field of certain
ROPs.

mantra

Area light sampling has been modified to always use the number of samples
specified, and never to undersample.

Jive

Fixed bug in the dopesheet.  Stretch pasting now works properly.

8.0.349

SOPs

Fixed bug in the Capture and CaptureProximity SOPs' Traverse Subnets
parameter. When enabled, it would only traverse to the first object subnet
and inside. If there are additional nodes as output of the first subnet,
they are now no longer ignored.

SOPs

Major speed improvements have been made to the Capture SOP.

Objects

Changed the range on the Roll parameter slider on objects to go from
-360 to 360, and the Auto-Bank factor slider to go from -1 to 1.

User interface

Made a couple of changes to the Spare Parameter UI:
- A confirmation dialog pops up when you delete it with the X button
  beside the spare parameter, to avoid accidental deletions. Hopefully
  this is a temporary measure until the X button can be replaced with a
  'Remove Parameter' entry in the parameter menu.
- Channel names are no longer forced to be lowercase (which is a Side
  Effects convention).

VOPs

Fixed a bug which could cause the wrong Vopnet Mask to be used on VOPs
that were defined in more than one installed OTL.

dop

Cloth/particle collisions now work when the particle object is merged
into the simulation before the cloth object.

handle

Fixed HUD slider handles on Linux; they can now be used locked or unlocked.

SOPs

Fixed bug that would prevent the Group SOP from performing boolean
operations on empty groups.

Digital assets

Fixed some memory leaks that can occur when performing otload commands
on the otl file multiple times in a row.

8.0.348

Render outputs

When converting point geometry to image3d files using i3dconvert, the
point lattice resolution now correctly matches the resulting data
resolution of the i3d file.

User interface

Added an environment variable, HOUDINI_ENABLE_OLD_PRESETS, which exposes
the older 'Load from .preset file' and 'Save to .preset file' functions
in the parameter dialog's preset menu.

User interface

Enabling "Delete Channels" on the RMB-menu for toggle and menu parameters.

dop

The RBD Point Object now has the correct expression "points"
rather than "chpoints", allowing it to work with animated
geometry.

dop

Added a Generate Scalar Noise toggle to the Noise Field DOP. This parameter
forces the Noise Field to generate a single noise value rather than a
separate noise value for each dimension.

8.0.347

SOPs

Renamed the type of the Triangulate2D node, and renamed a few less-used
channels (of them, the most important are: "remove outside edges" and
"no new points on constraint"). Any existing files using this SOP will
need to be updated to use the new node.

Render outputs

Fixed a bug in the Composite ROP which caused certain expressions
entered into the Output Picture field to fail. Any expression which
didn't have .formatextension as the last part of the string would fail.

User interface

Parm dialogs now allow the input/parm editors to have all the rest of the
available space, instead of inserting blank space in between.

Operators

The "Collapse Outputs" operator menu entry no longer also collapses
the node in question.

Fixed a crash with spare parameters that could occur if an obsolete
parameter with the same name existed, and a channel was added to that
spare parameter. Adding spare parameters or channels with the same name
as an obsolete parameter is now not allowed. Also added some checks to
prevent existing hip files that might have this situation from crashing.

Digital assets

Fixed a bug where the Create Digital Asset operation would sometimes
display an error dialog even when the operation was successful.

User interface

The embedded spreadsheet in the light linker now has a helpful
prompt message telling users how to select multiple cells.

8.0.344

User interface

In the object viewport's Edit Capture Regions tool, reselecting a bone
no longer causes the underlying Capture SOP of the character to recook.

COPs

Installed new compositing example files for:
- corner pin
- color curve
- geokey
- geometry
- hue curve
- rotoshape (2)
- sharpen
- streak blur (3)
- switch
- tile
- time warp

User interface

Fixed bugs with the embedded popnet dialog in the pop view state
when the popnet in question was actually a Popnet SOP.

HDK

Disabling expiry warnings for HDK licenses.

dop

Fixed a bug in the Display Data parameter of DOP Network nodes. Patterns
that used "^" to exclude certain data from the display were not working
properly.

8.0.343

SOPs

Major revision of the Triangulate2D SOP's refinement algorithm. It
should do a better job of enforcing angle and area constraints,
particularly when there are small angles present in the input, and it
should meet the requirements with less primitives/points added.

Digital assets

Fixed a bug that would cause Houdini to crash if the node being created
was deleted by its creation script.

dop

Added Degrees Of Freedom example to the RBD Constraint help card.

dop

Added Simple Rotational Constraint example to the RBD Rotational
Constraint help card.

dop

Added Paddle Wheel example to the RBD Solver help card.

dop

The addition of barycenter ghost points to polygons is only done
when the polygons are planar and convex.  This avoids the addition
of points outside of the actual original geometry.

POPs

An example showing how to use the Turn POP to do simple collision
avoidance.

User interface

Fixed bug where copy/pasting keys in the playbar's dopesheet did not
maintain a consistent ordering.

ogl

Fixed a bug where the display of polygons in the viewport could end
up using an obsolete tesselation for degenerate polygons.

User interface

Fixed the Edit Capture Weights tool where it would not work.

SOPs

In the Capture SOP, loading capture override (.ocapt) with DOS style line
endings is now accepted.

8.0.342

channel

Fixed crash that could happen when pasting keys in the dopesheet.

dop

Added a help card example file for demostrating the use of the Active
Value DOP.

dop

Added a help card example file for demostrating the use of the
Affector DOP.

dop

An example showing how to choreograph RBD breakup has been added
to the help card for the RBD Glue Object.

dop

Added help card example for the Cloth Solver in DOPs that demonstrates
RBD and Cloth objects interacting with each other.

8.0.341

User interface

Houdini is now more robust when loading invalid desktop files.

Objects

The parent operation will no longer cause the network to jump to the
selected parent node.

mantra

Quality of motion blur and depth of field has been improved in mantra.

POPs

The "nearest" and "nearestdist" attributes in POPs now default to -1
instead of 0.  This is more consistent with other particle
attributes and also with what the proximity pop sets when there is
no nearest particle.

In the case of the "nearest" attribute, the new default value also
makes it possible to tell when the attribute has not been set even
when the proximity POP is set to use point numbers instead of ids.

dop

Fixed crash when playing back a sequence of simulation files using a File
DOP with no other DOPs in the network.

dop

Anywhere that a SOP node can be specified, it is now possible to specify
DOP Geometry data. This now includes the Geometry ROP and all POPs that
references SOPs. In all cases, a DOP Object can be specified (without
specifying the path to the data on the object), and the Geometry data
of that object will be used.

Render outputs

Using 'opparm -c ROP execute' in hscript will now render the ROP
dependency network as it does in Houdini.

Added a simple example for the vertexsplit SOP.

User interface

Added a menu entry and a hotkey to clear the selection to the light
linker spreadsheet.  We now also distinguish the volatile select
hotkey in this gadget from the one in the parameter spreadsheet.

8.0.340

User interface

Fixing a problem where the help browser could not communicate with
Houdini when running in stand-alone mode.

SOPs

Fixed bug where UVs and other point attributes were not correctly
interpolated by Triangulate2D SOP.

SOPs

Fixed bug that would cause bad triangle shapes and crashes in the
Triangulate2D SOP when the "maximum area" parameter was used.

User interface

Made exported dialogs more robust when dealing with embedded
switchers and when exporting parameters without exporting the
containing switchers.

Scripting

The hscript command viewls no longer includes inactive viewers unless
the option -A is specified.  Splitting panes now creates a pane of the
same type as the pane being split from.  Previously, split panes would
be set to the default Networks Editor type.

User interface

Fixed a small bug with the building of the switchers in dialogs of the
various export levels which was evident in the tool dialog for the fuse
SOP.

Jive

Caching of expression results for display in the graph editor is now
available through preferences / animation / enable channel cache. This is
most useful when using expressions that reference SOPs that require the
SOP to cook during expression evaluation.

The Pose Library now uses $POSE as its default home folder.  Also,
users can now use variables when specifying a folder path to jump to
(i.e. $HOME/houdini8.0/poselib, $POSE/clips, $POSE/poses, etc.).

8.0.336

Objects

When performing Keep Position When Parenting in an object due to its
input changing, we now follow channel references if we're inside a
synchronized digital asset for the transform parameters.

COPs

The preference for "Use Collapsible Pixel Operations" has been
corrected for spelling.  Be aware that this has the side effect of
losing the old setting for this preference.

VEX

Fixed crash that could cause VEX operators (eg. SOP) to crash when
referencing geometry via the op: syntax.

COPs

Removed all the Frame Rate parms from generator COPs. Overriding the
frame rate from the global was not working reliably anymore, and could
lead to deadlocks.

SOPs

Fixed bug where if the Trail SOP is told to calculate velocity and an
error occurs in its input, the error won't clear again even if the
problem in the input is fixed.

8.0.335

doc

Adding support for user-contributed notes on the documentation pages.

Scripting

Speeding up the addition of nodes via the opadd command.

Digital assets

Changing the icon on HDAs will now always work as expected. Previously,
changing the icon from a vector type to an image would not reflect the
change as the old vector icon section was not deleted.

dop

Added a new cloth/volume collision model. The old models are still
present, but are now called Fine and Foam; the new model is called
Coarse. The Coarse model is faster than the Fine model, but less
accurate, and doesn't deal well with pinching.

mplay

Fixed an occasional deadlock between mplay and Houdini if mplay was
closed while a flipbook was still loading.

User interface

When trying to change the parameters on a camera that is locked in the
viewport, Houdini will now make sure that the full transform can be
written to before setting any of the parameters.

User interface

Fixed handles not being draggable immediately upon selection.

8.0.334

Render outputs

IPR state is now saved out to the .hip file with the ROP node it belongs
to.  This allows an IPR session to be extended across multiple invocations
of Houdini.  To allow temporary cache files to be retained across sessions,
a new parameter "Destroy temporary cache files on exit" has been added
to the mantra ROP to disable the automatic deletion of cache files.

COPs

Fixed a occasional rare crash when scaling or transforming images with a
box filter.

SOPs

The subdivision scheme for RenderMan can now be overridden by using
the detail string attribute 'ri_subdivscheme'.  If absent, this defaults
to 'catmull-clark' as usual.

rbd

When calculate center of mass is turned on the object will not
inherit the linear velocity from the implied change in pivot.
Instead, its linear velocity will be left unchanged by the center
of mass change.

Scripting

Fixed bug where backtick expressions in the while command would not get
expanded.

SOPs

The Paint SOPs visualization should properly update when Reset All
Changes is hit.

SOPs

Merging a SOP containing a hand-built pCapt attribute with one
containing a pCapt attribute built by the capturing process will
no longer cause a crash.

User interface

Fixed bug where changes to the global frame range took effect immediately
without requiring an Apply.

8.0.333

Objects

Fixed problem with child objects of subnets that might become time
dependent even though their parent subnets were not.

User interface

Fixed a bug preventing the dragging of parameters from the tree in
the parameter spreadsheet onto a take.

User interface

Mouse wheel events are now only sent to the window under the mouse.
This was only an issue for Windows users.

Render outputs

Apprentice hides support for Abekas file format which requires a minimum
resolution greater than supported by apprentice.

Render outputs

Rendering from apprentice correctly applies the watermark to each file
format (including PNG).

dop

Fixed cloth self-collision crashing bug that was introduced in 8.0.327.

User interface

Renamed the "Override Filename" save preferences to "Overwrite File".

COPs

Fixed a bug with the automatic promotion of still images to animated
sequences when composited or merged with an animated sequence. The still
image should be promoted to an animation of the global animation range,
and then compared to the other animations. It was instead setting the
output range of the COP to the global animation range, which was wrong
if the other animated sequence went outside the global animation range.

8.0.332

User interface

Fixed minor bug where the display options dialog did not reflect
changes in the Color Scheme set by the viewdisplay command.

VOPs

Fixed bug that would prevent the RSL Vector Cast VOP from allowing casts
from Color to Vector.

CHOPs

Fixed crash when editting CHOP channel data and modifying the tolerance.

Objects

Fixed pathological chop recooking during bundle parameter updates when
adding or renaming lights as well, not just when deleting them.

VEX

Fixed problem with toNDC() function in VEX SOPs where using multi-thread
cooking would cause it to return improper values.

8.0.329

User interface

The 'viewdisplay' command now has four more options to control the
display of the viewport name, state name, camera name and camera mask.
These settings will now also be saved with the hip file.

HDK

Exposing VOPNET_Node and VEX_VexResolver in the HDK.  VOPNET_Node
exposes VOP networks and VEX_VexResolver allows shader code to
be resolved.

Objects

Fixed performance problems when deleting lights for specific networks
which could cause CHOPs to recook multiple times.

HDK

Mantra procedurals have been changed to manage memory more efficiently
when they are rendered with micropolygon rendering.  User-defined
procedurals should now make sure that the VRAY_Procedural::render method
can be called multiple times throughout the duration of a render to
recreate the geometry if necessary.

mplay

The Pixel Aspect Ratio is now correctly factored into the image size
when using fragment shaders in mplay/COPs.

dop

A ShapeMatching DOP has been added.  This data, when applied to a
particle object and given a rest shape geometry, will adjust the
velocities of the particle system to try and achieve that rest
shape.  This allows the creation of simple softbody like effects.

SOPs

Fixed bug that attempted to close an undo block when none was created
after using the Paint SOP.

houdini

The space character is no longer a directory-separating character
in HOUDINI_PATH and other places that we define path search
strings.  This allows one to specify directories with spaces in
them.

8.0.328

channel

Fixed a bug where we would clear the current scope when jumping from
sops to objects or diving into an object subnet with the auto
scoping of selected objects enabled.  We now auto scope the channels
of the currently selected objects in these situations.

8.0.327

SOPs

Fixed bug where brushing geometry in the Edit or Morph tools would
unnecessarily highlight the geometry in yellow.

User interface

Cells in the geomtry spreadsheet will now display newlines and tabs
in string attributes the same way that input fields do.

User interface

Fixed bug where jumping between objects at the SOP level jumped to the OBJ
level.

8.0.326

Operators

Fixed a bug where the opwire command would generate unnecessary
dependencies between nodes.

COPs

Fixed two problems with the Render COP:
1) The data format wasn't being respected on the C and A planes
2) The automatic update function wasn't working.

mantra

Fixed a large number of problems in the irradiance cache causing
inefficient or low-quality renders when the irradiance cache is turned
on.  Added a new option to the ray_irradiance IFD command to set the
maximum screen-space distance between irradiance samples (-d), with
a default value of 50 pixels.

User interface

Fixed bug where using the alias command for ctrl/shift/alt-function keys
would not work.

SOPs

When converting polygons to hulls, the first polygon will be used
to set the primitive attributes of the new hull rather than
leaving the attributes at the default values.

8.0.325

User interface

Fixed a bug where the "Polygon Overlapping" radio buttons in the
Select pane menu of the viewer were tied to the wrong value.

Custom panels

Fixed a bug where the custom panel builder would not properly resize
gadgets in the preview when either horizontal or vertical stretch
was turned off.

User interface

Added support for the SELECT_{CTRL,ALT,SHIFT} environment variables so
that custom scripts can query the state of the modifier keys just like
object select scripts.

Scripting

The commands set and setenv output a list that now includes the variables
F, FF, T, FPS, NFRAMES, TEND, TLENGTH, TSTART, FSTART, FEND, RFSTART,
RFEND, UNITLENGTH and UNITMASS at the beginning of the list.

Objects

Added ability to display multiple plane geometries for the SOP control
and Null object.  The 'Orientation' menu parameter will not function
correctly for Null objects that have been created since build 275.  A
script has been created to upgrade these Null objects.

Custom panels

Fixed a crash when attempting to paste a gadget in the custom panel builder.

17783

OPcustomize now allows aliasing an internal OP to a digital asset.  This
allows the removal of an internal OP and replacing it with a digital asset.

User interface

Entering an empty string in a float or int parm now returns the prior value.

8.0.323

handle

Fixed bugs where handles were not properly hiding certain parts in
the back, bottom, and left orthographics viewports.

User interface

In view-aligned mode and in ortho viewports when there is no rotation,
scale and rotate handles no longer draw parts that would obscure the
translator.

Objects

Turned on 'Xray' flag by default for the Null object.  Also added a point
to the origin making it easier to snap the Null object onto another object.

Objects

Added new 'Shaded Mode' parameter to the Null Object and SOP Control
which allows toggling between wireframe mode and shaded mode for each op.

8.0.322

take

Changing a node's type will now preserve any take data for that node
if "Keep Parameters" is specified.  Parameter data can only be
preserved if the parameter name, vector size and type match.

COPs

The Render COP now renders Deep Rasters from mantra properly.
Previously, they were not rendered at all.

mplay

Bound the Ctrl+u hotkey to 'Enable LUT'.

SOPs

Fixed bug where the polyknit state would generate two undo blocks
instead of a single one.

dop

Guide geometry memory usage is now considered when calculating the
current memory usage of a DOP simulation. This more accurately
reflects the actual amount of memory used by a simulation.

dop

Fixed a precision problem that could cause the expression "$FF % 20 == 1"
to return zero on frame 101 when used in DOPs. The $FF variable now
always returns three decmial places of accuracy instead of five.

Digital assets

Fixed crash that could occur when removing an OTL if it contained
operator types which had an explicitly set (but invalid) preferred
library.

Operators

Doing a Change Type operation on an unlocked digital asset now works
properly.

Operators

Fixed crash that could occur when doing a Change Type operation if the
source node was deleted before hitting Accept.

dop

Fixed the dopsave command so that it works properly from within hscript.

VOPs

Greatly sped up load time for hip files containing VOP Networks with
many Parameter VOP nodes.

VOPs

When changing the name of a Parameter VOP, the parm ordering set up in
the owner VOP Network is no longer lost.

User interface

Fixed problem with docked textport pane duplicating keyboard events.
EG. pressing Alt-n caused two confirm dialogs on a modified hip file.

8.0.321

COPs

Fixed a bug in the SSE implementation of the screen compositing
operation. This could be seen as tiling artifacts when using the screen
operation.

8.0.316

Fixing a problem where Houdini would crash when sending large amounts
of data back from openport to hcommand or back to the browser with
RunHCommand().

8.0.315

SOPs

Fixed problem with UVProject's Intialize button on cylindrical and
toroidal projections.

User interface

Fixed bug in Pose Library where multiple parameters with no set keys
were not being saved into a pose.

User interface

Updating the pane's menu bar after switching from the Parameters pane
to any other pane.

Scripting

Fixing the opchangetype command to report an error and exit if the node
being changed contains a VOP Network that defines an operator type used
outside the node being changed.

SOPs

Using vertex or primitive index attributes as local variables in
string field will no longer cause crashes.

SOPs

When interactively selecting vertices for operations such as
uvproject, uvfuse or uvtransform, we now support collapsing the
selection string to an empty string when all the vertices are
selected.

fui

Re-enabled and improved group selection undo/redo in the channel editor.

8.0.314

Scripting

Removed 1024 character limit on variables in hscript.

COPs

Fixed a crash when bypassing a ChannelCopy COP.

doc

Removed the message that showed up in the console window
while you typed a search query with unbalanced parentheses,
unbalanced quotes, or other parsing problems.

SOPs

Fixed some bugs with the uvproject's handles when working with a
cylindrical projection.  The UV Range Manipulator would incorrectly
map the domain onto the cylinder.  Moreover, both the UV Range and
the UV Project Manipulators would generate warnings which would
sometimes get picked up by the sop.

Scripting

Fixing a problem with the hscript command inside tcl where it didn't
handle commands with dollar signs in them.

8.0.313

Scripting

The opparm command no longer allows the specification of a channel
not belonging to that specific component as a value.

SOPs

Fixed bug in Fractal SOP incorrectly handling point attributes whose
default values were non-zero. Old hip files which were using the Fractal
SOP with such point attributes will now have different results.

COPs

Fixed a bug with the Merge COP when scoping was used on the first input,
which could cause some output planes to become corrupt if planes in the
middle of the first input's list were scoped out.

8.0.312

COPs

COP handles now snap to the current COP's closest frame when fractional
frames are used. This makes the handles more representative of the
animation being performed, as COPs are inherently frame-based.

VEX

Added a new VEX shadowmap() function that samples a shadow map in a
user specified sampling rectangle defined by 4 vectors.

HDK

Adding a new API to Houdini for generating deep shadow map files.
The new API is found in the header IMG_DeepShadow.h.  Also adds an
example standalone program to the HDK for generating deep shadow maps
from an I3D volume (i3ddsmgen).

COPs

Fixed a bug with collapsable pixel operations when a node in the middle
has the Effect parm (Mask tab) set to something other than 1, and the
operation doesn't fold the effect into the pixel equation (such as an
Invert COP). Now, this will break the chain and force quantization at
that node, making the chain evaluate correctly.

dop

The RBD Object DOP now provides some simple default geometry to
simplify the set up of start RBD simulations.

SOPs

The remove shared edges toggle of the divide SOP no longer
attempts to fuse points while considering edges shared.  Edges are
only shared if they share point numbers.

The previous behaviour in the presence of shared point positions was
to leave the boundary polygons intact, a uniformally undesirable
result.

COPs

Fixed a crash with the Switch COP when a pending keyframe was added to a
single key channel. The channel was not treated as time-dependent in
this case, as it needed to be.

Scripting

The mwrite hscript command has a new -n option. When given, it will not
change the current session's hip file name to the path just written to.

dop

The DOP list view now has the correct flags available.

VOPs

The Shift Range VOP now properly has a four dimmensional value
parameter for initializing the defaults.

SOPs

The AttribCreate's menu parameters are once again integers due to
backwards compatability problems with OTLs.

dop

Revised the Vortex Force to support a general curve.

8.0.310

CHOPs

Cooking the InverseKin CHOP no longer invalidates the object transform
cache for IK bone chains which contain non-bone objects.

SOPs

The AttribCreate's menu parameters now use strings, as one
expects, rather than integers.

POPs

The speed attribute is now updated after collisions.

ogl

Do not light the textured background images in the viewports.

shop

Errors will now be reported on SHOPs if there are errors when
evaluating parameters.

User interface

Now finding longest matching path when switching between subnets.

8.0.309

CHOPs

Cooking the InverseKin CHOP no longer invalidates the object transform
cache for normal IK bone chains.

take

Fixed two bugs, one minor and one major, with saving/loading hip
files in the master take.  The minor bug is that the master take was
not properly updated when saving to reflect any changes made to any
values it tracked since the last time it had stored them.  This was
only a minor problem since the nodes saved to the hip file still
contained the most recent values.  The major bug, however, was that
when a hip file was loaded in the master (hip) take, it would not
correctly flag the active parameters and flags and would not record
any changes to the master take until the user had switched to
another take and switched back.

HDK

The HOUDINI_DSO_ERROR environment variable is now respected in
Windows.  This means that unless it is set, you will no longer get
pop ups when the dsos fail to load.

User interface

Adding character picker and a pose/clib library tools.  You can
access the character picker by right-clicking on an asset.  You can
access the pose library from the Go menu in the help browser.

take

Fixed a bug where specifying the current take in the takeset command
would clear the take inclusion state of nodes, flags and parameters.

8.0.308

take

takels -l no longer prints the memory usage.  There is a new -m option
to specify this.

Scripting

The angvel expression will now return the angular velocity in
degrees per second rather than radians per second.

rbd

The Angular Velocity of objects in DOPs is now specified in
Degrees Per Second rather than Radians Per Second.  To convert
from radians to degrees, use the deg() expression.

SOPs

The AttribComposite SOP can now composite point positions P and Pw.

8.0.307

handle

Fixed problem with transforming object subnets via the Global Transform
Handle when they are nested inside other object subnets.

Objects

Fixed incorrect determination of time dependency status on object subnets
if their transform parameters were channel references.

channel

Fixed bug where channels that had 2 keys but didn't animate would be
incorrectly marked as time dependent, thus causing overcooking.

Digital assets

- Fixed bug that would prevent users from loading hip files with HDAs whose
  parameters were changed from integers to toggles.
- Added the ability to save the locked state of string, menu and toggle
  paramaeters.

CHOPs

Fixed problem with IK bone chains might cause false infinite recursion
in character rigs.

User interface

In the object-level Capture Geometry tool, we no longer set the selection
to include the skin object as that makes it highlighted, hiding the
weighting colouring.

User interface

Fixed crash which could occur when undoing the work of the object-level
Mirror tool while it was still active.

Objects

The Fetch Object puts up a warning flag if the specified path
cannot be found.

User interface

The light linker now follows channel references when changing masks.

Operators

Improved performance when attempting to follow channel references in
parameters which do not contain a channel reference.

dop

Tornado Force renamed to Vortex Force

8.0.306

SOPs

The Join SOP no longer crashed when it is asked to join degenerate
polygons.

SOPs

The Skin SOP again works properly with MxN networks of NURBs
curves.

Operators

Fixed an assert that would be triggered by multiparms if we first
removed and then added instances.

HDK

The HDK star example has been updated to match changes to Houdini 8's
help system. The sample code provides examples of how to provide either
embedded or external help.

SOPs

The Capture Metaball and Deform Metaball SOPs have been removed, because
they aren't yet ready for use.

8.0.305

SOPs

PolyExtrude's performance has been improved in general, and
in particular when outputting side groups.

User interface

Fixed a bug where the target tree in the light linker would not
properly update to reflect the new state of a node that is channel
referencing a mask that has just been changed by the linker.

8.0.304

Scripting

The oplocate and nbsize commands now perform boundary checks to make sure
that a script doesn't attempt to set a node or network box location too
far outside the safe zone of a network.

dop

Added a Tornado Force.

8.0.303

VOPs

The rgbtohsv VOP no longer has a missing trailing semicolon in the
ctransform command.

Licensing

The license manager will validate file permissions correctly if the
"keys" directory does not exist, but it will be able to create it.

8.0.302

Scripting

When accessing the last argument within an hscript script after using the
shift command, it is now the empty string instead of accessing the
variable in the parent script.

User interface

In the network editor for objects, the Xray and Origin flags are no longer
shown for object subnets as they don't do anything.

Scripting

Backtick expressions involving functions which require a channel or
channel segment will now return 0 instead of a random number.

User interface

The Mirror tool in the Object Viewer now automatically uses the Create
Mirror Null option if the Read-Only Pretransform preference is enabled.
This is required for correct operation of the tool.

dop

Implementation of ThinPlate/ThinPlate Collider is complete.

User interface

Fixed crash that could happen when quitting Houdini if a loaded .OTL
file was externally modified.

8.0.301

VEX

Added new environment() function to vex that takes 4 vector arguments
defining a sampling rectangle rather than a single vector.
This function allows the environment map to be sampled without
implicit derivative computation.

VEX

Adding new functions to vex to handle point and normal transformations.
The new ptransform function transforms a point by a 4x4 matrix including
translations.  The ntransform function is added to complete the set:
vtransform, ptransform, ntransform.

handle

The IK handle on bones is now able to hide locked handle parts for the
individual bone rotate handles.

rbd

The RBD solver will work better with objects whose orientation is
fully constrained.

Scripting

Fixed bug which had prevented "help -k" and "exhelp -k" from working with
search patterns that contained uppercase letters. Note that the search is
always case-insensitive.

Fixing a problem where -l in sesinetd.options wasn't working on
linux.

User interface

Fixed an annoying bug where the operator tree control would detect
that a node has been set as current in the network and also flag it
as picked for good measure.

Scripting

Added new 'urm' command to hscript.  'urm' unlinks a file on disk.
It cannot remove directories.

8.0.300

User interface

Doing a better job of deciding whether the help browser's navigation
controls should go on the left or on the bottom.

SOPs

Fixed a bug where the uvproject SOP would also try to wrap the V
coordinate if "Fix Boundary Seams" was on.

8.0.299

dop

Some bug fixes for mutually affecting Cloth/RBD objects. For the
moment, when merging cloth and RBD objects to set up mutual
affectors, the RBD inputs must be left of the cloth inputs.

ogl

Fixed bug where primitive spheres, tubes and circles would not use
the point or vertex alpha attributes when drawing.

User interface

Removed some spacing from the "All|Selected" and "Points|...|Detail"
menus in the geometry spreadsheet.  This fixes a bug where moving
the mouse along the entries would cause the entry selection to jump
temporarily.

8.0.297

Scripting

Added new 'uls' and 'umkdir' commands to hscript.  'uls' lists the
contents of a directory on disk.  'umkdir' creates a new directory on disk.

8.0.296

User interface

Improved performance in the geometry spreadsheet when limiting the
view to selected points or primitives.

User interface

Loading .cmd files on the command line when the directory has a
space in it now works.

Scripting

The "opscript -b" hscript command will now show parameters in its opparm
output if there are channel differences as opposed to juse value
differences. This makes its output more consistent.

rbd

A crash in the generation of SDFs has been removed.

Operators

Fixed overcooking of operators in particular networks involving Switch
SOPs that had channel references that were the same as an uncooked input.

SOPs

A Popnet SOP which is wired into a Null will no longer recook from
frame 0 every frame.  It now properly only needs to cook the
net-new frames.

8.0.295

mantra

A serious bug was fixed when ray-tracing sub-division surfaces
which were displaced (or shaded) using vertex attributes.

SOPs

You can now have an arbitrary number of layers with the Layer SOP.
Previously, when one had over 16 layers with textures, there was
the risk of crashes when displaying the geometry.

User interface

Hitting Apply or Accept in the Desktop... manager will now save
the changes to disk regardless of the Desktop Autosave option.
This matches the old default behaviour, allowing it to be used in
the same fashion as before despite Desktop Autosave now defaulting
to off.

SOPs

The Read Basis button on the Basis SOP now works even if the Basis
SOP is redflagged with an error.

SOPs

The Edit SOP can now have the recompute normal option turned off
and be saved in the .hip file.

Scripting

Fixed crash that could occur when using the otcollapse hscript command
on operators which belonged to bundles.

User interface

Fixed crash when opening a geometry spreadsheet with no geometry
(introduced yesterday).

SOPs

Convert SOP run on trimmed nurbs curves will now properly delete
the original curves.

8.0.294

dop

Fixed some substantial stability issues with the cloth simulator.

Scripting

The stamp() expression function's first parameter now acts like a "scope"
where it is an operator path to obtain the parameter value from. When
a stamping operator (eg. Copy SOP) sets a param value, it sets it into
itself and all parents.

Scripting

Fixed the case where parameters changed through opparm reference
following would not be correctly saved into an undo block.

fui

Ctrl+MMB reverts parameter(s) to default in the scoped parameter list.
In the name column the operation is performed on displayed channels if
the parameter clicked on is displayed; otherwise, just the parameter
clicked on is reverted. In the value column the operation is performed
on the value selection if the parameter value clicked on is selected;
otherwise, just the parameter clicked on is reverted.

Version 8.8

8.8.294

cop

Fixed crash that could occur when using the otversion version on COP OTLs.

Version 8.0

8.0.294

User interface

Fixed a bug where it was possible for the geometry spreadsheet to
access the wrong data when displaying the pCapt attribute if the
viewer added an internal normal attribute after the spreadsheet had
initialized.

8.0.293

VEX

Options winXY, winsize and winroll are taken into account
in the function getNDCValues in OP_VexFunction.C

VEX

The refract() function was modified slightly.  When total internal
reflection occurs, the reflection ray is returned instead of a
zero vector.

CHOPs

Fixed bug where the PreTransform CHOP would not inherit its input's sample
rate and always use the global animation frame rate.

take

Fixed bug that could cause Houdini to crash when excluding a parameter
for a take that has not yet been modified.

8.0.292

User interface

Added new Pose Library interface.  The pose library allows users to
capture and load character poses (using channel information)
for the "current" node.

Users can access the Pose Library by opening up hbrowser and then
selecting "Pose Library" from the Go menu.

User interface

Fixed a small bug with tree views that could cause the first tree
node to auto scroll out of the window when the vertical scroll bar
was not necessary.

8.0.288

User interface

Greatly improved performance when opening or closing a geometry
spreadsheet.  For example, one test with 384047 points went from
roughly 4.5 minutes to 0.04 seconds.

User interface

Added new Character Picker interface.  The Character Picker allows users
to create custom pick buttons for their digital assets.  The pick buttons
allow for easy selection on objects.

Users can access the Character Picker by RMB-clicking on their digital
asset in the network editor and selecting "Character Picker..." from
the pop-up menu.

Added new 'otcplayout' command to hscript.  This command saves and
loads the Character Picker layout for a digital asset.

8.0.287

Scripting

Fixed bug where executing a line consisting entirely of a single
backslash would never clear the "? " prompt in the textport.

User interface

Fixed a bug where it was possible for the modal state of the "Choose
Operator:" dialog to be confused when the plus icon beside the
"Representative" field in the "Operator Type Properties" dialog was
pressed when the "Choose Operator:" dialog was already open as a
non-modal dialog.

SOPs

In the AttribComposite SOP, integer attributes are now correctly
processed for all compositing operators and not just the mean
operator.  Also, a zero result is now returned when the mean
operator is selected and the sum of the weights equals zero.

dop

DOP nodes now display the input label when you middle click on the
input button. For nodes that create data, this input label also lists
all the expected subdata nodes that can be attached according to the
dopdatahint commands in the dophints.cmd file.

dop

DOP nodes for creating data now only provide as many data (green)
inputs as are allowed based on the dopdatahint commands in the
dophints.cmd file.

8.0.286

Objects

The Bones From Curve tool is now able to properly genrate bones
on a Line SOP. The size of the capture regions is correctly
set to be proportional to the bone length.

User interface

Fixed a bug where the popup help in spreadsheets would interfere
with popup menus associated with that cell.  In addition, fixed a
small bug where the popup help would appear even in empty sections
of the spreadsheet.

Scripting

Adding a -q option to chls to suppress extra information with using
the -a and -A options.

User interface

Channel group selection scopes channels in those groups. Keyboard
navigation of groups, select all/none commands now work as well.

User interface

Added toggle button to channel editor and channel list panes for
synchronizing group selection from scoped channels.

User interface

VEX operators with particularly long names will no longer crash
Houdini when they are placed from the tab menu under Windows.

SOPs

The IsoOffset SOP no longer crashes with Implicit SDFs and the
build tetra mesh options.

rbd

Glancing collisions with high friction and bounce were causing the
object to bounce back along the tangent.  One would expect the
effect of friction at the contact point would be nothing more than
required to bring the object to a stand still there.

Scripting

Fixing a problem where hscript wouldn't clean up the terminal
settings when you pressed Ctrl+D on bash.

8.0.285

Objects

No extra CHOP operators are created when adding or removing curve
kinematic solver to the bones in the Bones From Curve. If the
number of bones increases, the existing CHOP is reused (instead of
creating many new CHOPs). If the solver is removed from the bones,
then the existing CHOP is automatically deleted.

dop

Changed behaviour of cloth/volume collisions. Collisions now include
the surface of the cloth triangles, not just the cloth points. The
"volume offset" parameter should not be needed as often now.

User interface

Fixed bug where channel references would be not be preserved for menu and
toggle parameters when users would change the parameter values through the
parameter pane.

User interface

Fixed a bug in the parameter spreadsheet and parameter list where
some of the RMB menu pasting options did not properly affect the
selection.  Specifically, the expression, reference, relative
reference and channel pasting options did not work.

User interface

Fixed some bugs when pasting copied channels through the parameter
dialog.  Namely, it would not paste the channel into other selected
nodes and it did not work properly with the take auto mode.

8.0.283

expr

Fixed a bug that could cause Houdini to crash when using recursive inline
functions.

8.0.282

User interface

Now sending a varchange when the FPS is changed via the Global Animation
Options dialog, so that OPs recook.

SOPs

Add support for vertex attributes in SOP_BrushBase::brushOpCallback() for
HDK users.

fui

Adding channels to a scoped or pinned group will scope or pin the added
channels as well.

8.0.281

User interface

Fixed crash when selecting an object in the viewport that contained
"oprm /obj/$OS" in its selection script.

User interface

Fixed a crash with expression syntax highlighting that could
sometimes occur with heavily parenthesized expressions and functions.

User interface

Fixed a bug with channel referencing a spare parm, where deleting
another spare parameter which causes it to move in the parm list would
crash Houdini.

Objects

Improved handling of synchronized object assets in the Object Viewer's
Mirror tool.

SOPs

Fixed a bug in Transform, TransformAxis and SoftTransform SOPs where using
$GC{XYZ} variables wouldn't always be updated when the input changed.

Operators

Fixed extraneous cooking that could occur when an operator contains
channel references to parameters within itself.

User interface

Fixed a recently introduced bug where most attribute labels in the
geometry spreadsheet would contain garbage.

SOPs

Added the ability to visualize metaball capture weights to the
Capture Metaball SOP. Points are coloured based on their overall capture
weight only; no per-metaball group weighting is done.

User interface

The parameter spreadsheet now adjusts the current selection whenever
the contents are changed.

rbd

The RBD Solver now properly takes the constraint degrees of
freedom from the goal anchor.  This means the RBDConstraint OTL
will work as intended.

HDK

Metaballs now return outward facing normals when intersectRay is
used.

User interface

The scoped parameter list now provides independent selection of parameter
values. Use Ctrl to toggle individual entries, Shift to range select,
or press and hold Ctrl to paint select. Editing a value that is part of
the selection, using the value RMB menu on such a value, or dragging
and dropping onto a selected value will operate on all selected values.
Ctrl-RMB menu options for selecting all (a or Ctrl-a) and select none
have also been added.

8.0.280

SOPs

The IsoOffset SOP has an option to write the intermediary SDF to
disk, or to use a file on disk rather than regenerating the SDF.
By using the extension .simdata, this is the same format which
DOPs caches its SDFs, so one can inspect or create DOP SDFs from
the SOP world.

mantra

Depth of field artifacts have been eliminated for Houdini8.

mplay

Fixed a bug with extend conditions (hold, cycle, mirror) not working on
image sequences in mplay.

channel

Fixed hanging problem when deleting channels which contained
spline() or *match*() expression functions.

8.0.279

SOPs

A change was made to the convexing algorithm used in the divide
SOP.  The divide SOP now behaves as mantra and OpenGL do when
handling non-planar polygons.  As well, some pathological cases
for convexing are handled a little better.

SOPs

Fixed problem with the DynamicBlend SOP erroring out when there was
less inputs than blend parameters. This broke old hip files so we now
warn instead.

Scripting

opbop will now expand bundles when they are prefixed with @
(as already worked for groups)

SOPs

Add the Capture Metaball and Deform Metaball SOPs.

The Capture Metaball SOP captures the points in its first input to the
groups of metaballs in its subsequent inputs. Per-point, it weights the
groups according to the density of the point position with regard to
metaballs within those groups. Which groups of metaballs are used for
capture can be specified by the user.

The Deform Metaball SOP currently takes as input the output of the Capture
Metaball SOP; its subsequent inputs must be the same as the Capture
Metaball SOP's subsequent inputs. For each point, the weighted
transformations of the metaballs that point is captured to are used to
transform it. Changing the weight of groups will allow one group to
provide more influence than others, but per-metaball weight isn't
user-specifiable.

VEX

The dihedral vex function now normalizes its input vectors before finding
the dihedral matrix, to be consistent with the dihedral expression.

Background images now work in the IPR viewer.

Scripting

Added -S option to opfind. As with -s, if -S is set, then only the current
network (or the one network specified with the -p option) is searched.
Unlike with -s, with -S the full path is output.

doc

Fixed documentation bug in the Particle Shockwave Effects example where
the clamp expression had an extra trailing close parenthesis which has
been removed.

8.0.278

Scripting

Fixing a bug in the origin() function to make sure the rotate
translate, and scale values it returns will always give back the
original matrix.  Before, calling origin(identity matrix scaled
by -1) would give t=[0 0 0], r=[-180 -180 0], s=[-1 -1 -1], instead
of the proper t=[0 0 0], r=[0 0 0], s=[-1 -1 -1].

You can get the old behaviour by setting HOUDINI7_COMPATIBILITY.

User interface

Fixed bug where changing values in the parameter dialog would not change
all selected nodes if some of them were hidden.

Digital assets

It is no longer possible to open the Type Properties dialog on certain
operators where it is not applicable (such as "/obj"). Hitting Accept
on this dialog could cause Houdini to crash in these cases.

mplay

Fixed consistency of the handling of missing frames in MPLAY especially
for out of range frames.

8.0.276

Render outputs

RIBs generated with motion blur will now output the Basis call before
the motion block.

8.0.275

rbd

The RBD solver now mixes the two bounce values of two objects by
multiplying them.  This has the effect that a bounce value of 1
means that the other object will control the bounciness.

The old behaviour was minimum.  This means the old default of 0.3
on each object will produce less bounciness than it used to.  To
get about the same amount of bounciness, change it to 0.55.  The
new default in RBD Object is 0.5.

User interface

Select mode in the scoped parameter list has been hidden and disabled.
Users should use display mode exclusively, to manipulate multiple
parameter values in the parameter list the value column will provide
an independent selection (not yet available).

Objects

Null object can now display different geometries instead
of just the traditional cross geometry.  It contains a Control SOP
instead of a File SOP.

Digital assets

'Save Operator Type' will no longer ignore the 'Save Defaults as Initial
Parameters' option set on the operator.

SOPs

Added new Control SOP.  This SOP displays a selection between simple
primitives (i.e. cross, box, circles, etc.).

rbd

The RBD Object now exposes the parameters to control the surface
representation.  This includes things like whether to triangulate
the incoming geometry.

The default density has also been changed to 1000 to match that of
water in MKS units.

8.0.274

houdini

Houdini will now respect padding in numbers when using the
"Increment Filename" saving options.

channel

Fixed bug in the spline() expression function where we would not evaluate
correctly on a pending channel.

take

Fixed a bug where loading a hip file saved in the non-master take
would not properly update the take contents tree.

User interface

The parameter spreadsheet can now be populated by dragging a take
from the take tree onto it.

mantra

Opacity culling has been improved.  The quality should be
significantly better than previous versions of mantra.
As well, there should be performance improvements in general with
deep layers of transparency.

8.0.273

User interface

Channels and groups may be dragged into the scoped parameters list
to be appened to the scope. Note, the parameter value fields have
their own drop context so the group/channel must be dragged somewhere
else to have it scope (eg. name or pin column, or empty space).

takes

Fixed a bug where the master take data was not saved for a locked
OTL node when saving a hip file in another take.  This bug was
introduced when takes were modified to allow changing the contents
of locked assets.

SOPs

The Resample SOP and Convert Meta SOPs no longer have minimum
stepsizes of 0.001.

SOPs

The Basis SOP's Read Basis buttons once again work.

SOPs

Fixed bug in the BlendShapes SOP that prevented the first input from
being locked when difference mode was turned and the parameter for the
first input's weight was deleted.

Operators

Fixed bug where the 2nd input in multi-input SOP was lost when its
1st input was re-connected and the 2nd input was a sub-network input.
Also fixed a crash when reselecting the parent for a node in a subnet.

User interface

Fixed a small bug in the parmsheet tree view where turning off the
filtered based culling could leave some tree nodes incorrectly
selected.

SOPs

Fixed problem where multi-input SOPs which share an Edit SOP as a common
ancestor would fail to cook.

SOPs

Fixed bug where we would unnecessarily recook SOPs that were downstream
of locked subnets that had different render and display child SOPs.

8.0.272

rbd

Making glued RBD Objects will no longer crash on frame 2.  This
bug was introduced in 8.0.267.

User interface

Small optimization to querying miscellaneous colors.

mplay

Fixed a crash in mplay when 'Adapt Frame Range' was pressed while
viewing a missing black frame.

mplay

Fixed a bug when applying display LUTs to images, when the LUT's
domain/range was something other than 0,1.

takes

Added support for the auto take mode to the following commands:
  chadd, chlock, chrm, chkey, chkeymv, chkeyrm, chrefit, chround,
  chstretch, chreverse

Objects

Fixed problem with cooking IK bone chains that have other intervening
objects in between the bones.

8.0.271

SOPs

PolyExtrude now supports local primitives variables.

Operators

Fixed bugs with not maintaining bundle memberships when extracting or
collapsing subnets.

takes

Fixed a crash with the auto take mode and the opparm command when
following channel references.

COPs

The Edge Detect COP now produces proxy resolution results that are more
similar to the full resolution results.

Operators

Fixed bug where CHOPs inside of synchronized HDAs exporting to a node
within would not recook on reloading the hip file if the exports were
changed via a top-level parameter.

Scripting

Added new linker command to allow saving the light linker state to
hip files and desktops.

8.0.268

User interface

Fixed a bug that would cause redit to crash when opening or saving a
ramp file.

Scripting

Fixed a small bug where the bundlelist command was generating a -t
option but wouldn't recognize it.

SOPs

The AttribCreate SOP once again allows you to refer to the new variable
mapping inside the value field.  This was broken in 8.0.218.

User interface

The "Mask Lights" object state now has subnet support when linking
reflection masks.

8.0.267

Digital assets

Fixed a bug that prevented exported handles in Object-level OTLs from
following along when their parameters are animated.

Render outputs

Fixed a bug with rendering ROP subnets as single nodes -- they would
previously continue to render all of their inputs.

dop

Implemented the Initial State parameter on DOP Networks. This is the
name of a file that is loaded at the first timestep of a simulation.
When this file is specified, the DOP Network is not processed on the
first timestep.

dop

Added the dopsave command to save the state of a DOP Network simulation
to a file.  Added a RMB menu option to the root of the Simulation Details
View to do this as well.

User interface

The light linker target tree is no longer in readonly mode by
default.  In addition, the icon for this option has been changed to
a more familiar lock.

User interface

The light linker now supports for subnets of reflection objects when
linking reflection masks.

8.0.266

User interface

The viewcamera command now correctly outputs the full path of a camera.
As a result, saving hip files with viewports pointing to cameras not
located in /obj will now load correctly.

mplay

Fixed a series of bugs with Save Preview. The most serious was a crash,
but gamma & LUTs didn't work, nor did fragment shaders when rendering
offscreen. Save Preview now works as advertised again.

ch

The $CH local variable now also works in non-animatable parameters.

Objects

Fixed a bug that was introduced with the fix for bug 16394 where
non-subnet networks specified in a mask field with a light filter
(example: lightmask) would automatically include their contents if
there were 1024 or fewer lights in the scene.

Render outputs

String attributes are now fully qualified with the "string" type when
output to the RIB stream.

User interface

The Apply button in the Global Animation Options dialog will now update the
global frame range even if the range is only shifted (rather than shrunk or
stretched), and will send a varchange so that COPs recook when the range
changes.

8.0.265

mantra

Two new modes have been added to the minmax pixel filter:

The ocover mode will determine which object has the greatest
coverage in a pixel and box filter only its samples.  This can be
used for deep raster filtering to get the "most important" channel
information.

The "edge" mode will act as a box filter, except at geometric
edges.  At edges, only samples which hit an object will be
filtered to produce the result.

With both of these filters, anti-aliasing effectiveness is
sacrificed for selective filtering.

takes

Fixed a bug where dragging multiple nodes onto a take in the take
tree would only include one of the nodes flags.  Moreover, dropping
an object node onto a take no longer includes the bypass or render
flag.

SOPs

New instances of PolyExtrude will have the Orient Edges option turned on,
using a creation script.  Files saved with earlier versions of Houdini
will have this option turned off by default to maintain backwards
compatibility.  Future versions of Houdini may have this option turned on
by default.

User interface

The scoped parameters list is now split into two sections. The first
section includes all channels scoped because they are in a selected
group. The second section includes any other channels that are not
in a selected group.

8.0.264

COPs

Added two small improvements to the Scale COP.
1) When connecting or disconnecting a 2nd input, the scale mode
   is changed from its single input mode to its corresponding two
   input mode (ie, Scale Fraction -> Scale to Fraction of 2nd Input).
2) Split the Filter parm into two parms - Upscale
   filter and Downscale filter. This is mostly to set better default
   values for the filters.

mplay

Fixed a memory leak with uncached image sequences when software
emulation was used.

User interface

Toolbar changes to make the Desk and Take menus behave consistently.
Both now consist of a label with an adjacent popdown menu and are
separate from the other normal menu items.  Finally, the take menu
replaces the old current take indicator in the toolbar and a new
"Auto Take" button replaces the old color change of that indicator.

I also changed the color of the Always|Changes|Never and Update
buttons to match the new gadgets.

SOPs

The Group SOP can now take a point group in the Edges method from which to
grow a selection based on edge distance.

COPs

Fixed two issues with the COP viewport layout. First, maximizing a
viewport with multiple viewports was not removing the other viewports.
Second, sometimes viewports were not being added when more than one COP
was shift+clicked to be displayed.

User interface

Channel groups in the channel editor group tree show pending key
status. If all channels in a group have pending changes the key
icon turns a bright orange, if only some channels in a group have
pending changes the icon is a darker orange. Also, the key icon
is now only used to add keys. Keys may also be set on the selected
scoped channels through the context menu for the scoped parameters
list or the associated shortcut key Ctrl-k.

8.0.263

User interface

Some small ui changes to the light linker pane, including a move of
two buttons from the main toolbar into the toolbar of the relevant
tree.

User interface

The "Mask Lights" state now renders any target nodes linked to the
currently selected source nodes with a dotted wireframe highlight to
aid the user.

8.0.262

mantra

The math behind computing crop regions in mantra was improved so
that registration should be guaranteed between two images with
abutting crop regions.

8.0.261

User interface

Fixed bug in the light linker where it was still possible to brush
select in the target tree even when the selection was flagged as
readonly.

Render outputs

The mantra ROP now has a parameter for choosing the main plane's
quantization levels.

User interface

Added menu option to the light linker pane to control whether the
target tree is automatically expanded to show linked nodes when the
selection in the source tree changes.

8.0.260

Render outputs

Fixed a bug that prevented Houdini from generating the correct number of
uniform attributes for RenderMan on RiCurve primitives.

SOPs

Fixed a bug that would cause the Edge Depth option on the Group SOP to
select points on primitives that are not of the specified type.

Render outputs

Added Pre-Frame and Pre-World include parameters to RenderMan ROP.  Their
contents are output before FrameBegin and WorldBegin respectively in the
RIB stream.

Scripting

hscript will now understand the colorswatch command and won't give an
error when loading in hip files that contain this command.

User interface

Display column in Channel Editor's scoped parameter list changed
to parameter pinning column. Display mode is default mode for the
parameter list. Added parameter display toggle shortcut.
Parameter operations that worked on selected parameters now also
work on displayed parameters in display mode. Menus in channel
editor change based on parameter list mode to correctly
indicate operation scope (eg. works on dislpayed or selected).

User interface

Renamed "Link Editor" to "Light Linker" in the interface.

User interface

The "Mask Lights" state now supports subnets when modifying a mask.

mantra

The IFD commands for specifying deep rasters have changed.  The
new set of commands allow for arbitrary properties to be set on
each deep raster plane.  In other words, each plane can now have
an individual
- Pixel filter
- Sample filter
- Dithering level
- Quantization target
- White point
- Gamma value
These parameters are now exposed in the mantra output driver.

The sample filter is a new concept.  This specifies how samples
are composited before being passed to the pixel filter.
Currently, samples may be composited using Of (i.e. standard
compositing) or only the closest surface may be chosen (previous
method for compositing deep rasters).

A new pixel filter is also introduced.  The "minmax" filter will
scan all samples within the pixel, extracting either the sample
which is nearest or farthest from the camera.  Only the single
nearest or farthest pixel value is used.

At the current time, there is no capability present to mimic the
previous "maximum coverage area" sample filtering (i.e. taking the
surface which covers most of the pixel and use that value only).

Per-plane format overrides have been removed.

In addition, the number of deep planes is now a multi-lister
(meaning that the hard coded limit of 20 deep rasters has been
removed).

8.0.259

User interface

The link editor now also supports selecting of subnets in the source
tree when the mask belongs to the target nodes.

User interface

Enabling threaded UI in Linux.  This means that, when Houdini is
computing something, a dialog will no longer pop up asking you if you
want to interrupt Houdini.  Instead, you can press escape in the main
Houdini window, and the main window will display the progress and show
an hourglass.  This change is especially important for dops, because each
frame of the simulation often popped up an interrupt dialog and many
window managers steal the input focus when a window pops up, annoying
you if you're trying work on something else while generating a simulation.

Unfortunately, wacom tablet support is not compatible with threaded UI.
So, to use a wacom tablet on Linux you now have to set the
HOUDINI_ENABLE_TABLET environment variable to 1.  Enabling wacom tablet
support will disable threaded UI.

For now, HOUDINI_ENABLE_TABLET's default value will be 1 so we can do more
testing on different machines.

8.0.258

Objects

Update geometry inside bones to use a single new BoneLink SOP. This saves
considerable memory for production character rigs. It's also slightly
faster now to create long bone chains in the Bones tool.

In order to have only 2 SOPs (BoneLink + CaptureRegion) inside a Bone
object, and to support turning on/off of their rendering, we now have a
Renderable parameter in Bone objects which says whether the bone will be
rendered (to mantra/prman/etc).

User interface

Added an object level "Mask Lights" state.  Does not yet support
subnets.

ogl

Fixed a small bug that was triggering an assert when attempting to
do a box pick at the object level with one of the dimensions being
zero.

Render outputs

Rendering Aux variables sent to deepraster images will now correctly
maintain their order as specified in the ROP.

VEX

VEX can now handle integer parameters with values larger than 1
million (1e6) properly.

8.0.257

HDK

Added some sample code to the OBJ_Shake.C HDK example for how to hide
existing parameters.

8.0.256

dop

Changed the Merge DOP to have a menu for choosing what sort of affector
relationship to set up between input objects. This now makes it possible
to use a Merge DOP to create a mutual affector relationship between all
input objects.

8.0.254

dop

The DOP SOP Solver has changed considerably. The DOP Solver SOP is no
longer required in the SOP network. Instead, stamp and stamps expressions
should be used in the SOP Network to fetch the appropriate geometry from
DOPs using an Object Merge SOP.

dop

DOP Constraints have been revised considerably. Rather than Pin, Nail,
Stitch, and Glue constraints, the main constraints are now RBD Constraint,
Cloth Constraint, Cloth Stitch Constraint, and Wire Glue Constraint. By
customizing each constraint to the type of object it is meant to work
with, the constraints have been simplified somewhat. RBD and Cloth
constraints now have handles associated with them.

expr

In addition to the stamp expression, a new stamps expression has been
added which behaves just like stamp except it is used to retrieve
stamped string parameters. Currently only the SOP Solver DOP and Copy
Data DOP can create stamped string parameters.

expr

Added two new expressions, pointpattern and seampoints. The former returns
a string containing all the points represented by the input pattern which
can include numeric ranges ("1-10") and point group names. The seampoints
expression returns a string of all points with cloth seam attributes,
ordered to allow the current points to be stitched to the goal points.

CHOPs

Fixed the InverseKin CHOP's ability to control bone chains which contained
non-bone objects within.

User interface

Minimizing/Maximizing network boxes will now hold the top right corner
in place.

HDK

The imdisplay program has been extended to allow reading of deep
raster data.  The interface to write deep raster images is covered
in $HFS/support/public/tomdisplay/README.html

8.0.253

take

Fixed a bug where being in the non-master take would corrupt the code
generated from VOP networks.

User interface

Channel groups will scope when selected in the channel editor. Undo/redo
support for channel group selection was also added. Currently group
scoping applies to all scoped channels, this will be changed with
RFE 18381.

Render outputs

In the RenderMan ROP, we now output AttributeBegin/AttributeEnd pairs
in the RIB stream around shading groups which have a matching RIB hack.
The format is:
AttributeBegin # { <attrib_name> <attrib_value>
AttributeEnd # } <attrib_name> <attrib_value>
Note that if <attrib_value> contains spaces, then it will be appropriately
double quoted and escaped as necessary.

This has two advantages:
1. If the RIB hack outputs attribute values such as motionfactor, they
   will only affect the shading group around which the RIB hack was
   executed.
2. This allows easy RIB filtering to discard specific shading groups.

8.0.252

SOPs

The Visibility SOP now has the option to set visibility in all viewports
at once.  The selector toolbox also has three new options to quickly
hide or expose selections in all viewports.

User interface

The Link Editor can now export the current node in the source tree
as the view camera to any linked viewers.

Operators

The previously removed optimization for renaming nodes has been reinstated
without breaking the Joint handle.

dop

Rather than doing collision dectection internally, RBD Solver now expects
an external Collider.

8.0.251

handle

Previous optimization to renaming nodes accidentally broke the updating
of bones in the joint handle. The optimization has now been removed.

Digital assets

Fixed bug with updating assets when the new operator definition has
parameter defaults that are now expressions.

User interface

Reworked channel editor group and channel list RMB and CTRL+RMB menus.
Specifically: clarity in menu labels, improved context of menu items,
and working with channel list selections.

User interface

By default, the take auto mode no longer allows changing the contents of
locked assets.  There is a new preference to change this behaviour.

8.0.250

SOPs

Added option to UVEdit SOP to "Sew Vertices with Shared Points" which will
sew vertex UV's for vertices that share the same point in a set of selected
edges.

8.0.247

Objects

Fixed a bug that would cause point light handles to orient the point light
to face the invisible target handle.

SOPs

Restricting the maxarea parameter to be >= 0.0001 in the Triangulate2D
sop.

User interface

Added a pane menu entry to the Parameter Spreadsheet to load the
current scope.

COPs

Added a third input to Channel Copy, so that it is easier to copy 3
channels from different inputs to a single color.

8.0.246

COPs

Added Levels COP.  This COP is inspired by the Adjust Levels feature of
image manipulation packages.  Although similar to a gamma COP surrounded by
colormap COPs, the way it allows combining global and component adjustments
produces a different effect.  The Levels COP adds sliders to the histogram
view. The top row of sliders control the input black point, mid point
(gamma) and white point, while the bottom row control the output black and
white points.

Scripting

Fixed a bug and a minor memory leak in the chopscope command.
Previously, we would fail to reuse a viewer for multiple chops in
the same network if the viewer was either a newly opened floating
pane or one that was previously viewing another chop network.

User interface

Fixed a bug in the parameter spreadsheet and parameter list gadgets
where attempting to scope the selected parameters would only scope
the current parameter.

User interface

Added pane menus to the parameter spreadsheet.

User interface

Fixed bugs where tearing off a Bundle List or Link Editor pane would
result in a blank and disabled path gadget with grey navigator
controls.

8.0.245

SOPs

The merge SOP will now display a warning if the inputs have
mis-matched attributes.  This gives a hint that some attributes
may have un-expected values.  For example, if one input has point
normals, and a second input doesn't have point normals, the
warning will be a hint that the normals of the second input might
not be correct.

Adding $HFS/toolkit/bin to the path on unix in houdini_setup
and houdini_setup_bash to make it easier to use the HDK.

VOPs

Fixed a bug that could cause RSL VOP to generate incorrect code when
creating OTLs with uniform parameters.

User interface

Added Reflection Mask support to the Link Editor.

dop

Added a working but *incomplete* version of Tornado force.

8.0.244

User interface

Fixed bug where if the chop unexport dialog pops up during the running
of hscript commands via a "java -w" applet, then it would cause Houdini
to go into a permanent exclusive state.

8.0.243

dop

Renamed some of the nail and pin constraint's parameters related to
"two-state" and "degrees of freedom" parameters. Existing hip files
using those options may need to be updated.

Licensing

Fixing a problem where the license administrator wouldn't let you log in
to retrieve licenses.

8.0.240

Render outputs

Added initial support for RenderMan 12.5.  The Geometry objects have
several new parameters in their Shader/RIB tab which allows fine grain
control over the visibility attributes introduced in RenderMan 12.5.
As a result, the ri_photonmask and ri_reflectmask parameters, which
previously controlled the objects visible to ray tracing/photons, have
been removed from the RenderMan ROP.

User interface

Added menu item "Unscope Selected" to channel editor parameter pane's
ctrl+rmb menu which unscopes parameters that are selected but not pinned.

User interface

Added context sensitive popup help to the textport. This will popup help
tags for command completion, path/channel completion and simple command
help (like which options the command has). You can select the completion
to auto-complete the word. If the tip is showing 'Help: opparm ...',
clicking the tip will bring up the help browser with the command's help.

COPs

Fixed a small bug in concentric ramps that would sometimes cause the
corner pixels to begin repeating the next cycle of the ramp. This made
them look like stray pixels.

mantra

When rendering with mantra to mplay, there is now an option to
specify the tile rendering order.  The order can be specified as:
middle - Default (start in middle and allow interactive rendering)
top - Tiles are rendered from top to bottom
bottom - Tiles are rendered from bottom to top
In some cases, it's desirable to render tiles in the same order
they will be rendered to disk.  This option allows this behaviour.
See the format options for "ip" in the output driver.

dop

Added helpcard documentation for Magnet Force.  Updated the naming
convention in Drag Force helpcard.

8.0.239

CHOPs

Made the PreTransform CHOP smarter so that it no longer recooks if the
source pretransform has not changed.

User interface

Dragging operator nodes onto a group or bundle tree node in the Link
Editor will now add those operator nodes to that group or bundle.
In addition, group and bundle tree nodes now have an icon.

dop

Added Magnet Force.  Fixed a naming convention.

User interface

Dragging a node from a contained subnetwork onto a group no longer
brings up a menu for adding the node to the group. (nodes cannot be
added to a group from another network)

User interface

The channel editor properties "Show Display Flags" and "Select Mode"
are both now on by default.

SOPs

The PolyExtrude SOP's viewport handle now works again.

8.0.238

User interface

The menu option "select / select entire subnet" is now off by default.
The preferences file ~/houdini8.0/houdini.pref contains an overriding
setting.

User interface

Implemented the selection toolbars in the Link Editor.  Also added a
label to the toolbars.

Specifying a mask of "@bundle1" will match the contents of bundle1.
To match the bundle itself, a mask of "@@bundle1" must be used.

SOPs

Added make planar option to SOP Facet to make selected primitives
planar. The primitives are processed in the order provided, and
are not allowed to previously processed primitives when transformed.

dop

The options on the POP Solver and Cloth Solver to feedback to RBD
object has been removed.  Instead, to get feedback, make the RBD
and POP/Cloth objects mutual affectors.

dop

Impact information on DOP objects is now stored only in data named
Impacts or Feedback.  This simplifies things a great deal as it means
extracting impact information does not require figuring out the right
path to the impact data, which used to vary from solver to solver.

User interface

Keyboard selection of points preserves selection order.

8.0.235

User interface

Operator tree choosers that are launched from a parameter's '+' button
(e.g. bundle chooser or operator chooser) now respect the hidden state
 of operators.

User interface

When entering string parameters via the Parameter Pane, we longer have a
8192 character limitation.

expr

Adding an objpretransform() function to complement the objpretransform
command.

SOPs

Added option for oriented bounding box in Box SOP when used as
bounding box for input geometry.

8.0.234

SOPs

Added Shear parameter in the following SOPs: Edit, Transform,
SoftTransform, UVEdit, UVTransform, Primitive, Duplicate, and Copy.
This allows non-uniform scaling about rotated axes.

dop

The Stitch Constraint has been revised. The data input on the
constraint can now be used to attach another constraint.
The parameters for object name, goal object name, and goal object
geometry have been removed, but the same effect can be achieved by
modifying the attached constraint.

SOPs

Fixed bug in edge lopp hotkeys for UV Pelt SOP which prevented users
from accessing the features from the RMB menu.

Digital assets

The opparm command can now be used in OTL On Loaded event scripts.

User interface

The arrow bundle menu in the Parameter Spreadsheet pane now displays
"No bundles defined" if there are no bundles.

User interface

Fixed a small bug where a non-default foreground colour for a tree
node would afterwards use black as the default foreground colour
instead of restoring the previous foreground colour.

User interface

Added undo support to the Link Editor.

mplay

3D LUTs no longer corrupt the alpha on normal RGBA images in software
mode.

dop

The Data is Temporary parameter has been removed from all Data DOPs.
Instead, if the Activation parameter goes to zero, the data associated
with the DOP is removed.

dop

Several DOP object creation assets (such as RBD Object, Cloth Object,
and others) no longer have a data input on them.

rbd

The foam solver has been removed from the RBD solver DOP.

8.0.233

SOPs

Fixed bug that caused UV Edit's Ignore UV Connectivity toggle to not
behave as expected.

8.0.231

User interface

Added LUTs and gamma to the Render state. This is done using fragment
shaders, if the video card supports them, otherwise they are applied by the
CPU. Both the LUT and gamma have their own parm in the state toolbox.
They can also be set globally via the 'Color->Settings' dialog
(Correction tab).

ut

Added UT_FileMonitor to monitor any change to a file on the disk.
Extra flags have been added to geocache to allow monitoring.

mplay

LUTs are now applied to the same planes as gamma, as defined by the
Display Options 'Color Correct Planes' (previously 'Gamma Correct
Planes'). By default, only C (color) is corrected.

User interface

The link editor now attempts to simplify the mask string after
modifying it.

rbd

Shock Propogation is now spelled properly: Shock Propagation.  This
means the channel name is now "shockpropagation" so if custom values
have been set they need to be set again.

User interface

Improved performance of setting up the light-geometry associations
in the viewer.

8.0.230

SOPs

The GroupCopy and GroupTransfer SOPs now preserve group orderedness.

VOPs

The raytrace() VOP had a bad default value for the maximum
contribution.  The default was changed from 0.005 to 1.

8.0.229

User interface

Clicking on the current node will no longer trigger an inplace edit
of the operator name in the link editor pane.

User interface

The trees in the link editor pane no longer contain non-empty groups
or bundles whose contents are entirely filtered out.

Scripting

Fixed bug with chkeymv when moving ranges that included all the keys of
the channel.

User interface

The link editor pane now has separate "Link Type" and "Mode" menus
rather than a single menu.  In addition, we're now more explicit in
the "Link Type" menu by referring to the Light or Shadow Mask.

Licensing

Fixing a problem where Houdini is unable to connect to hserver when
the system's hostname is not resolvable in DNS.  This should make it
easier to set up Houdini to work on a machine configured with DHCP.

8.0.228

User interface

The "No Filtering" entry is now always the first entry in the bundle
filter menu.

dop

Fixed instability in cloth stretch/shear damping forces
(only affects the "optimal" damping model used by the "optimal"
force model)

User interface

Implemented some missing operations in the Link Editor for
shadow linking.

8.0.227

User interface

The Link Editor uses shorter node paths where appropriate.

Operators

Fixed the infinite recursion cook problem when Export CHOP
and Edit SOP were intermixed.

8.0.226

mplay

Mplay and the COPs viewer now have an info button in the bar above
the viewer. This displays the OP info in COPs, and information
about the image sequence in Mplay.

8.0.225

mplay

- Fixed the laggy pan/zoom which occurred when a heavy fragment shader
  was used.
- Gamma and LUTs are only applied in unpremultiplied space when
  transparency is on.

Render outputs

Added new support for RenderMan RiCurve primitives.  There are now three
new detail attributes that can be set to control the output of open
polys to RenderMan: "ri_curveinterpolation", "ri_curvebasis" and
"ri_curvestep".  "ri_curveinterpolation" should be set to either "linear"
or "cubic".  "ri_curvebasis" can be set to any standard RenderMan basis or
a custom basis matrix.  When "ri_curvestep" is omitted, the value in
"ri_curvebasis" is used to determine the correct step size if possible.
The RiCurve Basis parameter (renamed RiCurve Interpolation) in the
RenderMan ROP is obsolete and may be removed from future versions.
The environment variables HOUDINI_RMAN_CURVE_STEP and
HOUDINI_RMAN_CURVE_BASIS are also obsolete and may be removed from
future versions.

8.0.224

mplay

Panning and zooming in mplay with fragment shaders enabled no longer
causes the image to lag behind the mouse. Only the latest mouse position
is used, resulting in much snappier panning and zooming.

8.0.223

dop

The POP Solver in DOPs is now ready for use. To use this solver, just feed
a POP Object into a POP Setup, and point the POP Setup node to a POP Node
or POP Network.

rbd

The Bounce and Friction values read by the RBD Solver are now
clamped from below at 0.  This prevents meaningless values causing
the simulation to explode.

8.0.222

Scripting

Fixed bug where nested if statements inside a false branch would have
their backquoted expressions in the conditional be evaluated.

rbd

The SphereTree and SphereEdgeTree representations of RBD objects
now have parameters.  These allow one to specify that objects
should be polygonized or that the barycenters of faces should be
included in the point/edge cloud.  These options are on by
default, meaning that primitives spheres and default boxes should
now behave more like one would expect.

8.0.221

User interface

Renaming an operator is now faster than before.

Scripting

Adding a -L option to the opparm command to list the user-friendly
name of a parameter.

rbd

RBD objects now behave properly when pinned to other currently
solving RBD objects.

8.0.220

SOPs

Fixed problem with Edit SOP not recomputing normals in Sculpt mode.
Instead of two separate parameters for doing this in the Transform and
Peak parameter pages, we now have a single one for all possible modes.

SOPs

The Align SOP will no longer crash in some cases when the
auxillary input was used and guide geometry was turned on.

8.0.218

mplay

Added texture/fragment shader capability to mplay. It improves
performance by doing gamma, LUTs, brightness and component selection
using fragment shaders. This is automatically detected, but you may wish
to delete your mplay.prefs and compdisplay.prefs to so that all the
hardware features are enabled.

SOPs

AttribCreate SOP now reads the local variable values from the
incoming geometry, not its own geometry.  Normalizing vectors in
place can now be performed.

8.0.217

dop

Added dopallfields expression function to list all the field names that
can be passed to the dopfield expression.

dop

DOP subnet digital assets can now use object-specific local variables. The
value of these variables is evaluated by the node that is referencing the
subnet parameter.

User interface

Added a new "Link Editor" pane for viewing and manipulating light
and shadow masks.  This is a work in progress.

8.0.216

Digital assets

Fixed a bug that prevented nodes with separators and labels in their
parameters from having their parms correctly recreated by the Type
Properties dialog when they are dropped in it.

Scripting

The -m -F options in opglob will now disallow invalid filter types. The
documentation has also been corrected for the list of valid filter types.

rbd

Setting up a recursive glue hierarchy no longer crashes.  Instead,
the hierarchy is broken so as to keep it a DAG.

rbd

The RBD Object now has the SDF building parameters promoted to its
Volume tab.

8.0.215

User interface

Folders in OTLs can now be done with either the tradional tabs or with a
single menu, containing all the folders as items. A menu folder is more
efficient for large numbers of folders, or long folder names.

The look can be changed by changing the 'Folder Look' to 'Menu' in the
Folder parameter settings in the Type Properties->Parameter page.

User interface

Fixed a bug with the Parm Expression popup tips positioning themselves in
the lower left corner of the Houdini window if triggered when a helptip
was already shown.

User interface

When adding to the bundle the operators that are selected in the tree
(in the bundle pane), and some of the selected operators are not visible
in the tree (i.e., their parents are not expanded), then we display
a warning about this situation.

CHOPs

Fixed bug that would prevent the user from writing a node into the first
input of an Export CHOP when an input already exists.

mplay

Fixed ASCII .lut file reading, which was always failing.

User interface

Fixed the Add Spare Parm menu, which was always adding float parms,
regardless of the type actually picked.

HDK

Corrected HDK examples in $HFS/toolkit/bin/sample/GR so that they compile
again.

8.0.214

SOPs

Fixed bug that could prevent PolyExtrude from correctly computing local
spaces on small geometry.

dop

Fixed crash when rbd object is wired into a cloth solver.

dop

Fixed bug with cloth simulator and position information where the
position information affected the cloth Geometry, but not constraints
using the InputGeometry.

User interface

Fixed a bug with the Expression Editor where if the user closes the window
without using the Close button, old references will be re-used.

Fixed bug in point loop selector where undoing would loose the direction
of point loops.

8.0.213

Operators

Minor improvements to memory usage when loading operators.

User interface

Changed the label for the filter menu to "Op Filter" in the parameter
spreadsheet.

dop

Fixing crash that could occur when deleting nodes (SOPs, Objects, etc)
that were being referenced by a DOP Network.

dop

Fixing home operation when viewing inside a DOP Network.

dop

The DOP Affector Matrix display now has Object Names on by default. It
also does a better job of preserving column widths and scroll positions
when changing the current time.

8.0.212

Render outputs

The 'Set Valid Frame Range' parameter in ROPs has been changed from a
toggle to a menu, to be a little more descriptive of what it is actually
doing. The menu items for 'Valid Frame Range' are 'Render any Frame',
'Render Frame Range', and 'Render Frame Range Only (strict)'. The
difference between the two Frame Range items is that the first will
allow frames to be rendered outside its frame range, whereas the second
strictly enforces the range, and does not (useful for texture loops and
other cycles).

The Render Control dialog also has a toggle to disable all the
overrides, and a reset button to clear them all. The override parameters
are also more clearly marked as overrides, to avoid any confusion with
the node parameters.

COPs

The Merge COP now has a scope parm for each input, which allows planes
to be selectively picked from each plane.

User interface

The operator mask field in the parameter spreadsheet no longer
automatically includes subnet contents.

8.0.211

User interface

Polished off the Parm Dialog titlebar a little more. The Presets icon
has been replaced by a Presets drop down menu, since I couldn't find an
icon that would adequately describe the term. The Presets menu has been
rearranged a little bit, and the 'Save as Permanent Defaults' item
added.

The |< and >| 'step to key' buttons also highlight when the mouse is
over them.

8.0.210

User interface

Fixed a small bug in the parameter spreadsheet where it was attempting
to access a bit array out of bounds while modifying multiple selected
parameters.

Digital assets

Fixed bug that was causing scripted OP parms without menus to write out
menus.

dop

Many DOP nodes were renamed, as well as many parameters.  Existing hip
files are likely to experience problems due to these changes.

User interface

Renamed the Geometry Spreadsheet pane to Details View to better reflect
its new multiple purposes (geometry spreadsheet and simulation tree
view).

dop

The Details View for DOP simulations has a new branch labelled
Affector Matrix.  Selecting this branch displays a grid with all
objects along both axes.  If one object affects another, the
cell at the intersection of these two objects is colored blue.

dop

Added a Delete DOP for deleting simulation objects or data from objects.

dop

The Affector DOP now builds implicit groups if the affector or affected
group parameters don't specify simple group names.  So values such as
"*" now work as expected in these fields.

dop

Added a few new DOP expression functions for getting affector information.
removed some dop expression functions for accessing object information
that is now available using the dopoption expression on an object.
Added the angvel expression which calculates an angular velocity value
required to move from one orientation to another in a given time.

dop

Added the RBD Keyframe Active HDA which makes it easy to animate the
active/passive state of an RBD object, and to keyframe its position
when it is passive.

dop

DOP nodes now present proper error messages when an output is connected
to an input of the wrong type (object input vs. data input).

User interface

Making Help->Contents display in a popup window again but displaying
the contents side bar in the popup.

8.0.209

Objects

Light and Camera handles now have a Gimbal mode similar to other
transform handles.

out

The Renderman ROP will now correctly refrain from producing an extra
ring of polygon primitives around the edge when the boundry interpolation
is enable (via an detail or primitive attribute interpolateboundary).

COPs

Fixed a rare generator masking bug with certain COPs (Font, Shape, RotoShape,
Geometry) when replacing an input image with a newly generated image,
and the effect parm wasn't 1.

Scripting

oparm now has a "-i" option to replace the commit values useage of "-c".
The "-c" option in opparm is now only for triggering callbacks.
Also fixed the documentation to reflect these changes.

8.0.208

COPs

Fixed a problem with automatic promotion from a single image to an
animation if the sample rate wasn't 30fps. When using 24fps, the
resultant sequence was a bit shorter than it should have been.

Scripting

Fixed bug where when sourcing another script from hscript that used the
exit command, it could cause hscript to go into a bad state that then
disallowed any further execution of loops.

Jive

Restored the ability to clear the dopesheet selection on the playbar by
clicking on the empty margin area underneath it.

8.0.207

Render outputs

Added the ability to specify RenderMan or Mantra ROPs as representative
ROPs to custom HDAs.

User interface

Fixed small bug where keyboard events would not work in the parameter
spreadsheet tree view.

User interface

The bundle pane now has a menu bar with menu items that provides all
the functionality of the toolbar buttons and list menus.

dop

Geometry attached to a simulation object with any name other than
"Geometry" is no longer transformed by the Position of the object.

dop

Added three new dop expression functions: doptransform to extract
transforms, dopvelatpos to get velocity information, and dopnodeobjs
to get a list of simulation objects processed by a given DOP Node.

dop

Added a new Active Value DOP which can be used to make any simulation
object active or passive (and the value is animatable). A passive object
is not processed by the solver attached to it, but still acts as an
affector for all its mutually affecting objects.

dop

The SOP Solver now has options to transform the object geometry before
passing it to the SOPs for processing. It can apply the position and/or
the geometry transformation.

dop

Enhanced the DOP Transform SOP to allow it to apply any combination of
the Position and Geometry transforms to the input geometry (it used to
always apply both). It now can also apply the inverse transform, and
can add a point velocity attribute to all incoming points based on the
velocity of the simulation object.

dop

Combined the operation of the Switch Data and Switch Objects node into
a new Switch node. Combined Merge Objects and Merge Data into a single
Merge node. Moved Apply Data To Data functionality into Apply Data node.
And renamed dynamicstate node to rbdstate. Old hip files should still
work properly because of new entries in the OPcustomize file.

8.0.206

expr

Fixed bug where expressions that cooked other operators (eg. centroid)
would sometimes leave them cooked with a value of 0.

Scripting

opcollapse is a new command that can be used to collapse nodes into a
subnetwork.

Render outputs

Ambient lights no longer disappear from Irma re-renders.  Added shadebuffer
file options: writetodisk and filename, to the parameter list.  Added
re-rendering mode menu to the parameter list.  Polygon re-rendering seems
to work fine now and levels of transparency greater than 1 no longer seems
to incorrectly brighten the re-renders.

SOPs

- Dissolve SOP Tolerance parameter now allows values greater than 1.
- Partition SOP is slightly more efficient.

dop

Allowing DOPs to run in Houdini Master (i.e. without an Experimental
license).

User interface

Fixed a potential crash in the parameter spreadsheet when attempting
to generate popup help for a node without an associated operator type.

8.0.205

COPs

Made some enhancements to the Channel Copy COP. First, all planes in the
first and second inputs now appear as plane targets. If a plane in the
second input is chosen as a target, it is created in the output. Second,
a new destination item, 'New Plane' has been added, to allow the
creation of any of the standard planes (C,A,M,L,P,N,Pz,V,B).

Also fixed a bug with fp16 vector->scalar conversions.

8.0.203

User interface

Added context-sensitive popup help to parm fields. This provides help
when editing expressions and paths. For incomplete functions or paths, a
list of possible completions is displayed. For complete functions, the
function signature is displayed.

The items in the completion list popup can also be selected, which
inserts them directly into the parm field.

SOPs

Point loop selection is now possible using the same techniques and
shortcut keys as the edge loop selectors.

SOPs

Fixed stamping in the Copy SOP.

User interface

Fixed a problem with multiparms fields not properly setting the number
of instances. The newly typed number was ignored.

SOPs

The AttributeTransfer SOP can now transfer point positions.

SOPs

The Point SOP now will interrupt faster when computing normals on
large geometry.

SOPs

Resampling a polygon with 0 vertices by edges no longer crashes.
Instead, the resulting degenerate polygon is deleted.

8.0.202

dop

Changes to SOPs, Objects, etc. outside a DOP Network now cause the DOP
Network to be flagged as requiring a resimulation (just as when a DOP
Node is changed).

CHOPs

Fixed a bug with chops not overriding parameters correctly.

Added ability to maintain a readonly selection to SI_Tree.

8.0.201

dop

Implemented the Field Force in DOPs.

dop

Changed the logic for displaying geometry attached to DOP simulation
objects. Now only the data with the name "Geometry" is displayed. Other
geometry can be displayed by attaching a Rendering Parameters data to
the geometry.

Version 7.2

7.2.200

dop

Created some default DOP toolbars.

dop

Added dopoption and dopoptions expression functions, which are very
similar to the dopfield and dopfields functions except with two of
the arguments hard coded to the most common values.

CHOPs

Added sample rate parameter to the Object CHOP.

rbd

The RBD Object, RBD Glue Object, and RBD Fractured Object no
longer have the initial velocity split into Speed and Direction
components.  There is now a single Velocity.

A new Velocity handle allows this to be interactively adjusted in
the same way the speed/direction could be.

7.2.199

Objects

Fixed bug where the object viewer's "Capture Geometry" tool and the
bonealigncapture hscript command would not work with bones inside locked
digital assets even if the appropriate parameters were promoted.

7.2.196

Scripting

Added new options for the opglob hscript command to expand operator mask
patterns. Please see "help opglob" in hscript for more info.

take

The takescript command now generates the commands in blocks of equal
priority in order to group the takeinclude and the various
opset/opparm commands.  This is important for things such as the
display flag in sops where we need to generate takeinclude commands
both for the flag being turned off and the one being turned on
before generating the commands to actually set the flags.  Moreover,
we no longer generate commands to turn off display and render flags
in sops or render flags in cops.  Instead we rely on the fact that
the commands which turn on these flags will also turn them off on
the appropriate nodes.  This is an unfortunate hack but is currently
necessary.

User interface

The split bars on the Houdini desktop now have 2 small arrows beside the
swap pane button in the middle which allow either pane to be minimized.
Clicking the bar while the pane is minimized will restore the pane. The
bar will move to the edge that the arrow button points to, effectively
minimizing that pane.

Swapping panes can still be done when minimized by clicking the swap
button in the middle of the split bar. The minimized pane & maximized
pane will be swapped.

take

Replaced the takels -c option with the new takescript command.
Unlike the takels -c command, the new command generates the
appropriate takeinclude commands, supports channels, and outputs the
commands in the correct order to work better with multiparms.

User interface

Labels and headings parm types now evaluate their vector component
labels, so that expressions can be used in the label, and the result
will be shown, rather than the expressions. The main label (what would
be the 'Label' in all other parm types) does not evaluate expressions,
but it can be hidden if only 1 label with an expression is required.

7.2.195

mplay

Loading images at different sizes now uses filters more appropriate to
enlarging or reducing. Reducing, in particular, no longer produces
blurry images.

dop

Gravity DOP now defaults to 9.80665 m/s^2 instead of 9.81.

User interface

Fixed a bug which occurred when a flipbook was attempted while Houdini
was playing, which resulted in Houdini locking up in a permanent
playback loop.

User interface

The Parameter type 'Alphastring' now allows non-alphanumeric characters
to be entered into it, which allows for expressions. Any
non-alphanumeric characters left in the string after evaluation will be
changed to underscores.

POPs

Fixed a bug where the sprite POP would not allow specifying a generic
surface shop.

Jive

The slope handle size preference in the Channel Editor now properly
scales the slope handles.

User interface

The Type Properties dialog no longer allows the '/' character in folder
names. In VOPs/VEX, this character is reserved for nesting folders.

Scripting

The oporder command now accepts absolute and relative node paths.
Previously, it only worked on nodes in the current network.

7.2.194

User interface

Spare parameters now appear in there own tab in the node dialog. This
tab will not be visible unless at least one spare parameter exists. The
'Add Spare Parm' button has moved to the control bar containing all
Jump-to-key and Presets button, which is now permanently open.

User interface

Parms in VEX and OTLs can now be optionally have hard locked ranges. In
addition to setting the UI range of a slider, a hard range clamps the
parm value at the range value. The hard lock is specified on each range
value, so they may be set separately.

In the Type Properties dialog, hard ranges are set using the two lock
buttons beside the Range fields.

For VEX, use the vex '#pragma range' and append a ! character to the
range value to make it a hard range value. (ie, '#pragma range gamma 0!
10'). This also works for .ds files ( 'range 0! 10' ).

User interface

Removed some inconsistency in the order of traversal of tree nodes
when clearing or setting the selection of a subtree by always using
a forwards traversal.  This should have no impact on the current
behaviour of any trees.

shop

Corrected the implementation of the OpenGL material shader. Previously
the specular component was calculated using Phong lighting (reflection
vector dot view vector). Now we use half vector between light and view
dotted with normal, the way the OpenGL does it.

User interface

The projected textures in a 3D viewport should now appear very close
to the actual Mantra rendering (if it uses using opengl material shader).
The light intensity should also be the same as when the projected texture
spot light option is turned off in the display options.

take

Added takeautomode command to allow toggling the auto include mode
from hscript.

7.2.193

User interface

Fixed a bug that would prevent the UI from resizing correctly when the
take status box is displayed.

7.2.192

SOPs

Improved Edit SOP performance when transforming points on geometry
consisting of a large number of NURBS primitives.

7.2.190

mplay

Fixed .pic.gz loading so that all the deep raster information is
recognized, not just RGBA.

7.2.189

Render outputs

Fixed bug that would prevent the user from using the Render Control dialog
to override both the output and the resolution.

hescape

Houdini Escape with Render Plus will now display the hip file name in the
title bar.

User interface

Added syntax highlighting and paren/quote matching to the textport. The
syntax highlighting recognizes hscript commands and variables, and can
highlight errors in variables or option usage.

Additionally, the same support has been added to the hscript editors in
Type Properties, for editing menu scripts and on-event scripts.

7.2.188

SOPs

Added the ability to rotate the poly-loop selection arrow in the opposite
direction.

User interface

Fixed a bug in both the parameter list and the parameter spreadsheet
where executing a drag-n-drop operation on a selected field would
apply any successive changes to all of the selected fields.

7.2.187

dop

Added much better error reporting to DOPs. Nodes properly flag errors
if there is recursion, if the wrong data type is input, and if an
input node is flagged with an error.

dop

Added a Copy Data DOP which attaches its input data any number of times
to its output location. The copy number can be accessed in the input
data DOPs using a stamp expression on the value CY.

dop

The Switch Solver now has a Default Switch Value parameter which is used
to choose a solver for objects with no Switch Value data attached.
Previously objects with no Switch Value would have no solver applied.

SOPs

The Transform SOP and TransformAxis SOP now have an option to
Invert their Transform.  When toggled, they will apply the inverse
of their transformation.  This allows one to move geometry between
spaces without having to manually figure out the correct procedure
to invert a transformation.

7.2.186

Operators

Fixed problem with loading certain files that would cause Houdini to hang.

expr

Fixed crash that could occur when evaluating recursive expressions.

SOPs

Polygon loop selection is now possible using the same techniques and
shortcut keys as the edge loop selectors.

dop

Added a new method for specifying orientations for use with Orientation
anchor.  A point's orientation can now be specified using a vector
attribute containing Euler angles.

CHOPs

The list of CHOPs for Houdini Escape is now a list of CHOPs
disallowed rather than a list of CHOPs allowed.  This means that
HDK custom CHOPs will now work in Houdini Escape.

Rendering

The Composite ROP should now error out when the network it refers
to errors out.  The Geometry ROP should now be more consistent
about erroring out.

SOPs

The sopcache -c command used to have problems with long chains of
instancing SOPs (null, switch, object merge, etc) which would
require multiple sopcache -c calls to fully unload the chain.  It
is now more effective at unloading entire chains in a single
invocation.

dop

The SDF DOP now has an option for inverting the sign of the
distance field.  This allows one to easily make a hollow container
to hold other objects.

7.2.185

ch

Added option A to chls to list all parameters ignoring whether or not they
are animatable.

7.2.183

User interface

Added Syntax Highlighting, Parenthesis matching and Quote matching
to Parameter fields. These features are only active when the
expression is being edited. They can be individually enabled or disabled
in the Main Preferences, General UI page.

The syntax highlighting can catch simple errors, such as non-existent
variables and functions, or using an hscript function in an expression
outside a backquote.

Paren/Quote matching automatically highlights the corresponding
parenthesis ([{}]) or quote "'`. You can jump to the match by pressing
Ctrl+m (default hotkey).

7.2.182

VEX

Using the intersect() vex function will now return proper uv values when
intersecting with tube geometry primitives.

COPs

COP and MPlay viewers now have a button for the display LUT on the
control bar (by the brightness/gamma controls). This button pops up a
menu that allows the LUT to be chosen through a file browser, and a
toggle to enable or disable the LUT.

Each viewport now has its own LUT. Previously, there was only 1 display
LUT for all viewers and viewports, in the Display Options. Changing the
display LUT in the display options will still cause all viewports to
change to that LUT, but the LUT button provides finer viewport control.

COPs

Fixed a crash that could result from doing a File->New when a COP image
viewer was shown.

7.2.181

Help -> Contents now opens a help panel at the right instead of a floating
window.  This help panel shows the navigation controls, unlike the floating
window that was opened.

User interface

Fixed crash when dragging parameters from a viewer tool's parameter dialog
into the viewer.

SOPs

The IsoOffset SOP now has an Invert Sign option.  This inverses
the inside/outside calculation for computing the SDF.

7.2.180

The default exponent for the Gaussian filter was changed.  This
will alter the output of a large number of functions and tools in
Houdini from COPs to mantra to VEX filtering.

hescape

Houdini Escape users can now use the File, Gamma, Bright and Contrast
COPs, for simple file loading & color correction.

COPs

Fixed a bug with the Shift COP's 'Shift End to Shift Value' menu item,
which wasn't saved correctly.

Digital assets

Reduced the peak memory usage when saving OTL files.

SOPs

Primitive, degenerate, spheres no longer cause a crash if they are
converted to polygons.

SOPs

The Group SOPs Point Number field in the Edges tab is now properly
enabled when other grouping methods are turned on.  Previously it would
only be enabled if Edges was the only grouping method, which was
too strict.

SOPs

The Copy SOP now generates warnings if you have duplicate stamping
parameters.

7.2.179

SOPs

The Group SOP's Combine tab now accepts ad hoc groups on which to perform
boolean operations.

dop

The DOP Transform SOP has a new option to allow it to transform the
whole input geometry based on the position information from a single
simulation objects (rather than the default mode of transforming
primitive groups based on matching simulation object names).

dop

Made several improvements and fixes for the File DOP. This includes
better performance for files with large numbers of objects, proper
loading of group information, and better handling of creator node
information which will make it easier to use File DOPs within HDAs.

dop

Solver DOPs no longer have an activation field. They are always active.
They also no longer have a second input (which was used for attaching
data to all objects piped into the solver). Now there is just the
object input, and any number of data inputs which are attached as
subdata to the solver. The Unique Data Name parameter is now off by
default for all Solver nodes, making it easier to use Apply Data nodes
to associate a solver with an object.

dop

Added several new DOP expression functions for getting information
about simulation object groups, and for relating simulation time
to global Houdini time.

dop

The Partition DOP now behaves more like the Partition SOP, by
placing each simulation object into one or more groups based on
an expression. The old behavior of the Partition DOP has been moved
to a new DOP called Split.

dop

The Group DOP now uses dynamic parameters to allow the creation of
any number of groups using a single DOP.

dop

Adding an Affector DOP to create arbitrary affector relationships
between groups of objects.

SOPs

Fixed bug that could cause conversion from curved surfaces with profiles
to polygons to crash.

SOPs

Fixed bug that could cause the PolyBevel SOP to crash when using point
bevels.

7.2.178

mplay

Added command line option to enable Diff mode when starting mplay.

Some fixes to reduce the number of events generated by changes to
operator groups.

The OP_GROUPS_CHANGED event has been replaced by OP_GROUP_CHANGED and
OP_GROUPLIST_CHANGED events.

Some minor cleanup of op event handling.  This should have no functional
impact.

7.2.176

User interface

Fixed some LUT/gamma ordering bugs in the UI color swatches & sliders.
Some of the gadgets had the order backwards, resulting in an incorrect
color. The correct ordering is 1) LUT, 2) gamma.

Render outputs

Added a LUT parameter to the Composite ROP. RGB images are run through
the LUT before they are written to disk.

mplay

Made the imgview... family of hscript commands available in mplay. These
commands allow scripts to change the MPlay Viewer UI.

7.2.175

CHOPs

Fixed operator path dependencies for the Export, Fetch, and Image CHOPs.
Previously, if a relative operator path was used, the parameter would
not change if the referenced node was renamed.

Operators

Fixed bug where typing in expressions involving local variables would
not properly evaluate until the hip file was reloaded.

VOPs

Fixed bug that would break the UI for a VOP-based operator if the
default value of a string parameter was set to something like "/obj/*".

Digital assets

Fixed bug that would cause badly formatted disablewhen strings to be
generated in some situations.

Digital assets

Fixed a problem that would cause "Color+Alpha" parameters in digital
assets to be converted to "Color" parameters.

7.2.174

expr

Added new stamp() expression that is intended to override use of param().
This new function behaves much the same as param() except it takes as its
first argument, the path to the operator that will perform the stamping.
Thix fixes problems with conflicts between multiple stamping operators
that happen to stamp the same variable names. Use of the param() is
now deprecated and operators will warn if it is being used.

image3d

The HDK API for i3d files now include a gradient method that can be
used to directly compute gradients on i3d files.

User interface

Implemented a toggle in the viewport at Object and Sop levels. This
toggle button switches between headlight and object lights illumination
of the scene in the viewport.

User interface

A copied and pasted OTL that contains a light inside will now
illuminate the objects in the viewer.

SOPs

The Object Merge SOP now has options to create per-point or
per-primitive path attributes.   This will create an index
attribute called "objname" which has the absolute path to the node
which the point or primitive was merged from.

SOPs

The Object Merge sop is now interruptable.  This is rather
important now that you can merge thousands of objects at once.

7.2.173

User interface

Color pickers, sliders & swatches can now have gamma and LUTs applied
to them (through Settings->Colors...->Color Correction). All
'Save Image...' dialogs, in MPlay and COPs, now have support for both
gamma and LUTs to be applied to the output images.

User interface

The connected selectors will no longer select hidden primitives.

shop

Renderman and Mental Ray SHOPs will now appear in Houdini Escape with a
RenderPlus license.

7.2.172

User interface

Added an option to align transform handles to the viewport.  This provides
the ability to rotate/translate/scale in the plane of the camera/current
view, as well as perpendicularly to it.  When aligned to the view,
the transform handle has a widget that allows objects to be moved
into and out of the scene in a perspective-correct manner.

7.2.168

SOPs

The gwavefront application which converts .obj files to .geo files will
no longer allow the use of invalid characters in group names.  This fixes
problems with .obj files created incorrectly from external software.

Render outputs

The RenderMan ROP can now output "grouping" attributes to the RIB stream
based on object bundles specified in Houdini.

SOPs

Houdini will now ignore white space characters in group names read in from
badly created .bgeo files.

7.2.167

User interface

The Render State's Driver menu will now show all the RenderMan and Mantra
ROPs, even those not rooted in /out.

take

Fixed a bug where moving an ancestor of the active take somewhere
else in the take hierarchy could either lose some changes not yet
saved to the active take, or leave Houdini in a state which does not
correctly reflect the active take, or both.

7.2.166

SOPs

The Copy SOP template points now have access to all the standard local
variables.

User interface

Fixed a problem with custom dialogs (notably ROPs) not displaying
correctly.

CHOPs

Fixed a crash that occurred if a file extension was added via the CHOPio
table more than once (either in the same or different CHOPio files).

take

Fixed a bug where merging a child take into the master take with
overrides would corrupt the state of the master take.  This would
cause it to hold onto the take data even when other takes no longer
referenced that parameter or flag.

7.2.165

SOPs

Extended the capability of the Wire Deform SOP to transform geometry
according to the changes in the direction of the normal to the
curve (local frame on the curve). If the deforming curve has a normal
attribute then any vector on geometry parallel to it in the rest pose
will be parallel in the deformed space.

opui

Added support for the pattern "." in opdef, ie one can now use
opdef:.?SectionName to refer to the current asset.

Render outputs

A new RenderMan version was added to the RenderMan ROP (prman12.0).  When
this new version is set, the AOV output will use the DisplayChannel syntax
and will group channels that are sent to the same filename and device
together.

Digital assets

Takes now allow the user to override values and flags in a locked asset.

ch

Setting the current frame to zero when float-valued frames are allowed
now properly sets the frame to zero instead of a very small number.

expr

Channels containing expressions that call opblist are now dirtied when the
relevant bundles are changed causing the appropriate OPs to be recooked.

7.2.164

CHOPs

Now, the Object CHOP correctly calculates the "single bearing angle"
as an angle between +z axis of the source and the direction towards
the target geometry. Previously, 90 degrees were always subtracted
from that result. Note, that HOUDINI7_COMPATIBILITY inhibits this
change and the Object CHOP will calculate the angle the old way.

Objects

Fixed a problem with selecting transparent objects. Now, if OpenGL
alpha transparency set for a given object, that object is still
selectable in the viewport

7.2.163

User interface

Fixed an occasional bug where Ctrl+UpArrow and Ctrl+DownArrow wouldn't return
to $FSTART and $FEND respectively while the playbar was playing.

7.2.164

User interface

3D Viewport names are now restricted to alpha-numeric characters (invalid
characters are replaced with underscores). This makes it is easier
to refer to the viewport with hscript commands.

COPs

Fixed a crash in the File COP which would occur if an RGB image was used
in a sequence of RGBA images.

VEX

Added 2 #pragma hints to the VEX vfl syntax.
- #pragma hint [parm] nolabel  : hides the label of the parm
- #pragma hint [parm] joinnext : Joins this parm and the next parm on the
  same line. Can be used multiple times to create a very long parm row.

7.2.162

CHOPs

Fixed crash introduced in 7.2.124 in fix for bug #17432. Export CHOPs
which exported to parent nodes would crash when their parents were
deleted.

7.2.161

SOPs

Putting down a group sop will turn on the highlight flag,
regardless of whether the sop was created in the viewport, in
the network editor, or with opadd.  This mimics the previous
behaviour of the group sop.  Note that if a file was saved with
the highlight flag turned off, it will still be turned off;
this change only affects new group sops that are created, and
not ones that are loaded in.

7.2.160

VOPs

Fixed a bug in the Null VOP where some output names would get lost in
certain cases when collapsing or extracting a subnet.

User interface

Fixed bug where selecting/deselecting network boxes in large networks
amidst changing the particular zoom levels in the network editor could
cause Houdini to crash.

cmd

Fixed backwards compatibility problem with sourcing channel opscript
output where the channel end behaviour always stayed at cubic().

7.2.159

User interface

If the help browser crashes, re-opening the help pane will now attempt
to restart it.

cmd

Fixed problem with extraneous errors when sourcing opscript output for
SOPs which use local variables such as the Point or Primitive SOPs.

cmd

Added the option -a to objpretransform which multiplies the current
pretransform with the given matrix instead of replacing it.

VOPs

Added two new VOPs: integrate3dclip and intersect3d.  Also fixed a bug in
the integrate3d VOP that would prevent it from correctly using the scale
parameter.

7.2.158

Operators

Toggle and Menu parameters are now allowed to reference other toggles or
menus within the same node.  This would previously give a warning and refuse
to perform the link.

VEX

image3d related vex functions can now correctly use the "infinity"
parameter.

cmd

Fixing a bug where it was possible to run opparm or
chadd on the root (/) node.  For example, "opparm /obj/.."
would crash Houdini.

Licensing

Fixing a problem where hserver would sometimes write a "heartbeat
failure" message to the log and exit with an unhandled signal.
Hserver's failure may have gone unnoticed because it would be
eventually be automatically restarted, but it may have caused
licenses to be held for 5 or 10 minutes longer that necessary by
the license server, possibly resulting in failed checkouts because
all licenses were in use.

Licensing

Fixing a rarely occurring problem where, if Houdini/mantra
detected a really old, incompatible version of hserver and could
not start up a new version of hserver, Houdini/mantra might crash.

7.2.156

SOPs

Fixed a bug that could cause giges to crash with trimmed surface importing
in certain cases.

Added the option to hide labels and join parameters on a single line in
the Parameter tab of the Type Properties dialog.

The layout of the parameter controls was also redone slightly, to better
group related controls together. The menu editor now has its own tab as
well, so that more editing room is available for the menu items or script.

7.2.155

VOPs

Added new Null VOP.  It simply passes inputs to outputs with the option
to change output names.

Scripting

The message command no longer causes disappearance of the last line in the
output window.

Render outputs

Added bundles support for the Visible Reflection/Trace and Visible Photon
parameters in the RenderMan ROP.

SOPs

Fixed crash in UVPelt SOP when edge list is empty.

7.2.153

Digital assets

Added Confirm dialog that allow users to save added data in optype
properties even though the node that created the window has been
deleted

7.2.152

SOPs

The Object Merge SOP accepts wildcards for specifying objects to merge.
The operators are globbed the way the "opglob" command works in hscript.
The parameters can use wildcards to specify the simulation data of
a DOP network.

expr

Added new expression function:
matrix mobjlookat(string base_node, string target_node, vector up_vector)
which does a Look At from the base_node to the target_node taking in
consideration an up vector.

Scripting

Fixed a bug that could cause opchangetype command to crash.

Objects

The transform and rotation order in objects are now evaluated with the
current animation time. Previously, they only used a value of 0 since
they were non-animatible parameters. However, if they had a !!ch()!!
reference, then they could then cause other operators to cook at the
undesirable time value of 0.

Render outputs

The bundle chooser will now resolve a correct path at the ROP level,
and not have the assumption that node names are relative to "/obj".

7.2.151

Fixed bug that could cause Houdini to crash in certain cases when trying
to read an invalid image file (or one with an incorrect extension).

Render outputs

- The render command has two new flags (-d and -k) that allow users to
  override the device or image format for a render (for those ROPs that
  support the feature).
- ROP SubNets must now have their children explicitly wire their inputs
  for the dependency structure to be passed along.
- Removed the 'Specify Output' option from the Render Control dialog because
  it could lead to unexpected errors.  Users are encouraged to use the
  render command with the new options if this is necessary.

7.2.148

User interface

Fixed minor memory leaks when displaying parameter dialogs for the first
time.

7.2.147

User interface

Fixed extremely small memory leak when creating temporary files in Houdini.

User interface

Fixed bug in the viewport Render tool where it would generate temporary
files in the current working directory instead of the temp directory.

Licensing

Fixing a problem where *'s in the sesinetd.option file weren't being
properly passed to sesinetd (sesinetd would receive a backslash in
front of the *).

User interface

Fixed the display of disabled flags in the list view of the network
editor and the parameter spreadsheet to match that used in the
worksheet.

7.2.146

User interface

Fixed a bug where the list mode in the network editor would not properly
update the enabled state of the flags until the next redraw was somehow
triggered.

User interface

If a help file for a custom operator exists in the Houdini path,
Houdini will now always use that help file, even if there is a help
section in the operator definition.

Digital assets

Added OnLoaded custom operator event.

Operators

Fixed minor memory leaks that were not cleaned up when deleting operators.

7.2.145

Objects

Implemented a new mechanism for updating representative object types.
This new mechanism should be more robust and less prone to errors.

Scripting

Added a -N option to the opfind and opchange commands.  This option will
allow the matching of a given patter against an operator's full path.

7.2.144

SOPs

The Primitive SOP can now transform the primitive attributes.
Note that previously, the primitive attributes (eg normal) would not be
affected by the transformation. Because the default attribute
that is transformed is "N", the primitive normal is now going to
be transformed by default (unless there are point normals specified).

SOPs

The PolyReduce SOP can now perform the polygon reduction process in
respect to a specified reference frame and/or reference mesh (added
third input).  Referencing is only possible with "Use Original Points"
enabled.

Render outputs

The render -p command will now issue unique ids for each root ROP
mentioned on the render command.  Also, the help for the render command
has been expanded to include help on the new output format of the -p flag.

take

Fixed a bug where loading a take with data for entities not already
activated in the master take would obliterate the loaded value.

7.2.141

Render outputs

The render -p command now outputs the full ROP dependency structure
rather than just the depth.

User interface

Fixed potential problem with writing out tiff files that contained
extraneous crop window tags.

7.2.140

COPs

Fixed a crash when using the DialateErode COP with a 16 bit Float image.

COPs

Fixed some artifacts that could be generated in the Chromakey COP when the
saturation of the color was zero.

SOPs

Fixed bug in Merge SOP where it would sometimes incorrectly merge inputs
that had differing point or primitive attributes.

7.2.139

Objects

RenderMan ROPs can now accept a user-specified number of Auxiliary Files
(AOVs).

Objects

Update the Light Object's documentation to better reflect its parameters
in the Shadow tab.

7.2.138

Render outputs

Fixed a bug that could prevent the first frame to render correctly if
a pre-frame render script turns on/off objects or lights.

COPs

- Fixed bug that could cause the Lookup COP to crash when no file
  is specified.
- Fixed bug that would prevent auto-conversion of LUT files on Windows.

7.2.137

SOPs

The Primitive SOP is now capable of transforming user defined vector
point attributes. A new parameter allows to specify any attributes
that need to be transformed.

User interface

Fixed bug where the individual UI_Value objects in parameter dialogs
were being incorrectly initialized to arrays.

7.2.136

Added 3D LUT support to the Houdini .lut (and .blut, binary) format.
Anywhere LUTs are supported, 3D LUTs will now be supported (mplay, COP
Image Viewer, Lookup COP).

In addition, a new option has been added to the COP menu, 'Save LUT...'
which allows any color correction node (or chain of nodes) to be written
as a 1D or 3D LUT. This way, LUTs can easily be created in the compositor.

The limits for 3D LUTs are 2x2x2 to 256x256x256, and they must have equal
dimensions. Binary LUTs also support 16 bit float for better compression
at higher LUT sizes.

Other LUT formats can be supported through the $HFS/houdini/LUTio table.
A conversion app must be able to write the Houdini .lut format to stdout
(to convert to .lut) or read .lut from stdin (convert from .lut). Either
binary or ASCII reading and writing is supported, which can be specified
by 'stdin.lut'/'stdout.lut' (ASCII) or 'stdin.blut'/'stdout.blut' (binary)
in the LUTio table.

7.2.134

Objects

Fixed a bug that could cause the representative objects to not take affect
when first loaded if the OTL is unsyched with its definition.

Render outputs

When rendering on Windows within Houdini to RenderMan, errors will now be
captured and printed out.

Render outputs

Fixed bug with the render command where the -F option did not do anything.

User interface

The "Show All Attributes" drop down menu in the geometry spreadsheet
is now much more useful and robust.  The individual attribute entries
are now toggles and the menu label no longer changes to follow the
last selection.

User interface

Cleaned up the Display Option dialog in the viewport with regards to the
near/far clipping planes:
- The near/far clipping planes will be reset to the no-camera planes when
  the view is switched to a no camera view.
- The dialog will no longer allow editing the near/far planes when looking
  through a camera.

7.2.133

Render outputs

In the Renderman ROP, we now support an "Explicit" option for motion
blur. This decouples the motion blur parameters between camera/light
and geometry objects. Without this new option, if any light, camera, or
object had motion blur turned on then the whole scene will motion blur,
including any automatically generated shadow maps.

Render outputs

Added new Motion Blur parameter to ROPs which allow us to globally
disable all motion blur rendering.

Operators

Fixed problem which would cause some input output connections to become
disconnected when undoing or redoing a "Match Current Definition"
operation.

SOPs

Added a "Force Recook" button to the unix SOP.

7.2.132

User interface

Moved the current take name from the lower right corner to the top of
the interface.

7.2.131

User interface

The Desktop menu label now reflects the current desk name.

mplay

Fixed bug that could cause mplay/Halo to crash if changing the gamma with
no LUT loaded.

expr

Added new expression function:
vector objlookat(string base_node, string target_node, vector up_vector)
which does a Look At from the base_node to the target_node taking in
consideration an up vector.

SOPs

The Cookie SOP now has an option to consolidate the boundary edges
of the cookie operation as a post operation.  This can allow one
to chain multiple cookies together and ensure the resulting
geometry contains connected pieces.

7.2.130

User interface

Fixed a minor memory leak in the tab operator menu.

User interface

Fixed a bug where the channel group tree was checking an uninitialized
variable when dragging.

Objects

Fixed bug that could cause the Light handles in Houdini to hang.

User interface

Fixing a bug where "cuadd -t button" would fail on the Linux Red Hat 9
build.

User interface

Fixed bug where the channel group tree would export an incorrect
channel list for drag-n-drop if the group contents had changed after
the tree node was selected.  Moreover, previously we were only sorting
the exported channels in certain situations.  We now sort them in all
cases.

7.2.129

mplay

MPlay and COPs now support 3D LUTs through the Houdini .lut format. 3D LUTs
can be created through a new 'Save LUT...' option in the COP op menu, and
through conversion programs from other 3D LUT formats. Currently, Iridas
.itx is supported through the command line tool ilutiridas.

7.2.127

Scripting

Enhanced the parmsheet command with many new options.  We now also
save a subset of the state of any parameter spreadsheet panes to the
desk.

User interface

Both the parameter spreadsheet and the parameter list now have
improved support for disabled parameters.  In addition, they are
now take aware and respond to changes in takes.

7.2.126

POPs

New parameters have been added to the Fetch POP to aid the adjustment of
the reference frames and space differences between the fetching and
fetched POPs. See Fetch POP help for more details.

Rendering

When generating RIB for sub-d surfaces, Houdini will no longer
automatically generate the "N" variable if it doesn't already
exist on the geometry.  This will change shading of sub-d surfaces
in prman slightly (when the N variable isn't defined).

User interface

The parameter spreadsheet op mask, filter and parm mask are now
saved to the hip file.

SOPs

The Creep SOP now properly calculates surface normals.
Previously, the z scale factor was incorrect (often by a factor of
1/0.707).

SOPs

The Connectivity SOP now has an option to specify a variable
mapping to go with the attribute.  When blank (the default) this
acts like it would in the AttribCreate case - it creates an ALL
CAPS variable.

SOPs

The proto installed version of the Line SOP has been renamed Line
Proto to avoid ambiguities between the two versions.

SOPs

The IsoOffset SOP has an additional menu for tetrahedralization.
It is possible to create independent closed tetrahedrons or cubes
rather than just a terahedronal skeleton.

7.2.125

User interface

The default favourite tool for the objects viewer has been changed from
the Transform tool to the Pose tool. For this to take effect, the
tool.pref file must first be removed from your existing $HOME/houdiniX.X
directory.

User interface

The Animate desktop has been updated. A new desktop, called Posing has
also been added. The Posing desktop is intended for during the early
stages of animation while the Animate desktop is intended for fine-tuning
of animation.

SOPs

The Attribute SOP along with the Renderman ROP are now capable of
outputting detail attributes as renderman constants.

Objects

Lights can now be set to generate Average Z shadow maps for Renderman.

ch

Fixed crashing bug with timegroups which was introduced in their
recent rewrite.

Operators

Fixed bug where doing an Extract Contents operation on a Sub Network
would not delete the original Sub Network.

SOPs

Fixed a problem with the Primitive SOP which could cause it to align
primitives in the wrong orientation when using the Match Normals
option.

7.2.124

Digital assets

Fixed bug where saving a custom operator would cause its chop overridden
parameter dependencies to be lost and thus not recook the chops during
playback.

take

Added a new auto include mode for takes.  This mode can be activated
from the Settings menu.

docs

Changes to online help search interface.

- Removed confusing "Find on Page" icon from top toolbar and added
  "Find on page" textual button next to search box. This button
  shows the "Find on Page" toolbar, which lets you search for text
  on the currently displayed page. The new "Highlight" option
  highlights all occurances of the string on the page.

- Removed the "filter the table of contents as you type" feature.
  Now Houdini performs a full text search as you type in the
  search box.

- Moved the search box above the splitter control, so even when
  the navigation pane is collapsed the search box is still available.

- Added grippy texture to splitters and toolbar controls to make
  them slightly more visible.

CHOPs

Fixed bug where CHOP networks that contained string parameter references
would not cause its exported nodes to recook if the string parameter
values were changed.

SOPs

The Primitive SOP will now translate primitives to the template geometry
point positions even if the Rotate To Template option is set to Off.

7.2.123

Digital assets

Fixed a bug that could cause Houdini to crash when deleting an OTL with
a representative object.

7.2.120

expr

Change opexist to consider bundles and groups. It will return 1 if the
node, group or the bundle exist, return 0 if any of them doesnt exist.
Group and bundle has to be defined with '@'. ie opexist("/obj/@mygroup")

houdini

Fixed a bug where using the More|Less|Clear buttons to add additional
instances to multiparms in multiple selected nodes would not undo
properly.

Scripting

Fixed bug preventing brackets from being parsed correctly in hscript
if they were not separated by whitespace.

houdini

Fixed some inconsistencies in dealing with takes in the various methods
for setting parameters in OP_Parameters.

7.2.119

Digital assets

Fixed a bug that changed old parm references when adding and duplicating
parms in Type Properties.

User interface

Fixed a bug where the "Animatable Parameters..." dialog would always
set keys on the first frame instead of the current frame until a time
change occurred while it was open.

User interface

Fixed a bug where the "Animatable Parameters..." dialog would ignore the
take state of parameters and would crash when attempting to add a channel
to an inactive parameter.

User interface

The view dependencies dialog now shows dependents which use the !!ch()!!
references in toggle parameters.

7.2.118

Operators

Fixed problem that could cause false infinite recursion in cooking of
nodes when using !!ch()!! references.

User interface

The view dependencies dialog now only shows one root at time.  The other
roots are now displayed as folders that the user can switch to.  This makes
the tool both faster and easier to navigate.

SOPs

Fixed bug where Houdini would crash when rendering a ROP node with
Initialize Simulations turned on if an object contained an empty POP
Network SOP.

expr

Added the new expression opselectrecurse. It returns all selected nodes
included the children of the current network. It keeps the context by
default. The context can be discarded.

7.2.117

ch

Fixed a bug that would cause the chkeyls command to use the wrong time
value if quiet mode is specified.

expr

Added mlookatup. Works like mlookat except that you also feed it an upvector.

Render outputs

Fixed bug that would prevent users from wiring many ROPs into one ROP as
is possible in other networks.

7.2.116

SOPs

The file browser launched from the File SOP will now collapse the files
from the same sequence so that the user no longer has to go back and
manually add the $F variables.

7.2.113

Digital assets

Fixed a bug that could cause Houdini to crash when hitting Apply or
Accept in the Type Properties dialog.

Objects

- Fixed a bug that would make the focus handle inactive when the user
  first changes the light from a point to a cone.
- When the focus parameter is not bound, we now use a default value to
  update the focus handle's orientation instead of just leaving it
  undefined.

User interface

Fixed a bug where it was possible for the existence of a floating
pane to prevent the user from closing the second last non-floating
pane in the desktop.  Also fixed a related bug where the existence
of floating panes would allow the user to close the last
non-floating pane.

Operators

Automatic tile layout in the network editor now respects grid snapping.

Scripting

The opchange hscript command now has the -t, -T, -n, and -p options
from opfind. This allows opchange to be applied only to operators
which match specific criteria.

User interface

Added a Dependency viewer that would allow users to trace through
dependencies and references for a parm (or operator) in a tree-structure.

7.2.112

SOPs

A few improvements to the Group SOP:
- New parameter for extra control over conversion of point groups to
  primitive groups.  A new toggle now allows the conversion to
  "Only Include Primitives with all Points in Group".
- The conversion now respects the "highlight" flag in the SOP.
- Plugged two small memory leaks in when using conversions in the Group SOP.

Digital assets

Split the option for linked parameters in Type Properties to allow user
to have either name or label prefixed with source node label.

User interface

Fixed a bug that could cause non-cameras to show up in the camera menu
at the bottom of the viewport if they were hidden and then exposed.

SOPs

Added support for sending SOP point float attributes to OGL2 shaders.

User interface

Fixed the object transform handle to properly set pivot parameters when
they contain channel references.

7.2.111

Render outputs

Added toggle to ROP Renderman to turn on/off the Aux Files features

7.2.110

houdini

Minor speed optimization when notifying existing bundles of a new
node being added.

7.2.109

COPs

Fixed a couple of problems with the 'Expand Luminance' option in
the Expand COP, and a image corruption issue with Fill Holes/Remove
Specks.

7.2.104

Render outputs

Added a 'Reload All Files' toggle parameter to the Composite ROP. When
on, all File COPs (and any other OPs that reference files) will have
those files reloaded when a render begins.

7.2.98

Render outputs

Added ROP dependency rendering. ROPs can be wired together to form a
dependency tree and rendering a ROP will render it and all its inputs
so that the ROPs are rendered in an order necessary to maintain the
dependencies. The render command has been extended to control this
behaviour, and a Render Dialog has been added to act as an interface
to that command. It pops up when the new parm button "Adjust Render
Settings..." is pressed.

In addition, the dialog allows sub-ranges to be rendered, the output to
be redirected (possibly to a flipbook) and the resolution to be scaled
without modification to the ROP.

7.2.96

mantra

Adding an interface to Pixar's Irma to the RenderMan ROP, in the
new "Irma" tab.  The UI exposes the same functionality that is
available in Maya when using MTOR for Irma rendering.  The
rendering mode (pre- or re-render) can be selected from a
pull-down menu.  For pre-rendering, the render quality settings
can be specified to override those in the ROP, and the number of
levels of transparency in the cache can be specified.  For
re-rendering, each Irma cache can be turned on or off, and shadow
map regeneration can be requested.  Irma pre-renders execute
exclusively (starting a new pre-render stops the previous one)
while re-renders can be executed concurrently as long as a
pre-render already exists.  Irma ignores the background and frame
range controls (it always renders in the background and renders
the current frame).

User interface

Fixed minor problem where selecting unselectable nodes in a tree
view would still clear the existing selection.

User interface

Fixed a crash when dragging a network box onto a gadget which accepts
either parameters or channels for drag-n-drop.

7.2.95

CHOPs

The Geometry CHOP will no longer crash if a muti-value attribute
like N is used for the organize attribute.

It will also no longer crash if the organize attribute goes
negative.  Negative organize indices will be ignored.

SOPs

The AttribPromote SOP again works properly when Delete Original is
disabled.  This was broken in 7.2.90.

7.2.92

Operators

Changed opget to behave as opparm when returning the op given as argument.
For example opget -d /*/light will return opset -d off /obj/light
            opget -d light    will return opset -d off light

expr

Added a new expression that returns the relative path between a source
node and a destination node.
oprelativepath( string srcpath, string destpath)

7.2.90

ch

Fixed a crash caused by copying a channel and then deleting the source
channel.

SOPs

The AttribCopy and AttribPromote SOPs can now operate on multiple
attributes.  The attributes can be specified using pattern expressions.
The carat symbol, '^', can be used to denote omission, i.e., any attribute
preceded by a carat is omitted and not copied, e.g. ^Cd.  Also, a blank
field is interpreted as indicating that all attributes should be copied.
And if the first attribute that is specified is preceded by a carat then
all attributes are copied except that specified attribute.  These rules
are identical to what is done with attribute specification in the
AttribTransfer, AttribStringEdit, AttribMirror, and AttribComposite SOPs,
as well as the AttribTransfer POP.  Pattern expressions are now accepted
in the attribute parameters of these OPs (AttribTransfer SOP etc.).  When
specifying new attribute names for the AttribPromote SOP, the input and
output attribute lists must be consistent in format,
e.g. attribute[AB] input* --> attribute[CD] output*
An attribute menu has been added to the source attribute parameter in the
AttribPromote SOP.

houdini

The default FPS value is now 24 unless overridden by the environment
variable FPS. Existing hip files or users that have explicitly saved
their FPS options are unaffected.

gplay

Fixed bug where background images were not working properly in gplay.

7.2.89

Scripting

Fixed handling for the "status" hscript variable.

opwire

opwire can now take full path ie opwire -n /obj/cam1 -0 /obj/light1
An error will be returned if the path is invalid or if the output and
input are in a different network.

Render outputs

The Op Tree chooser will no longer filter out object networks when
filtering for a specific object type.  This allows one to find
cameras that are inside an object network that is buried in a
normal object.

Render outputs

The Archive ROP now has a normal string field for the camera parameter
instead of the drop-down menu list.

SOPs

The UVTexture SOP now flags a warning if it is given an invalid
camera when texturing from camera.

ch

Undoing time group operations works everywhere (including when using
tmgshift).

Digital assets

Optimized the handling of representative objects.  The interactivity of
these objects is now improved when there are many of them in the scene.

mplay

Fixed crash in executing commands in mplay's textport.

CHOPs

The Geometry CHOP will now work properly with Organize by
Attribute turned on and only true attributes listed for
conversion.

Operators

We now detect infinite recursion in parm callbacks and abort
rather than crashing.

SOPs

The GroupCopy and GroupTransfer SOPs, when they have a blank group
given for their group field, will now behave properly in batch
mode.  Previously, they'd refuse to process any groups when
executed inside a Cache SOP or output driver loop.

Render outputs

Added parameters to the Archive Generator ROP to include object-level
shaders and/or identifiers when outputting RenderMan archives. By default,
these parameters are turned off to maintain old behaviour.

ch

- Time groups now allow you to move keys past other keys.
- Hitting 'a' in the graph editor is no longer a dumb toggle but either
  attaches or detaches all selected keys depending on their current attached
  state.

User interface

Major overhall to the tree view embedded in the parameter spreadsheet
pane to provide increased functionality.  The tree can now be used
to directly select the nodes visible in the spreadsheet and also
supports various new filtering options.

It is now possible to preview sequences from the Eye icon in the file
browser on Windows.

COPs

Fixed a bug in timescale where the 'blend nearest frame' option was
backwards; when blending frames 1,2,3,4 it would blend them as
2->1, 3->2, 4->3.

SOPs

The Wireframe SOP will now preserve point attributes in the
resulting tubes.  Tubes will get the average of the point
attribute values that they are built from.

POPs

There is now a Null POP which, unsurprisingly, does nothing.

Render outputs

Default camera names in rops are now /obj/cam1 rather than the
antiquated cam1.

Scripting

opfind now returns nodes in the same order as opls.

Digital assets

Fixed a bug that could cause the representative object to be lost if hiding
the transform and subnet parameters of the object OTL.

SOPs

Added option for global search and replace.

Operators

The Operator menu in the "Change Operator Type..." dialog box now respects
hidden OPs.

Operators

Fixed bug where nodes that were deleted from bundles did not get actually
get removed if there were still references to the deleted nodes.

SOPs

The Resample SOP will no longer attempt to convert particle
systems.

Scripting

The opflag expression now works with the same set of flags that
opset works with.

7.2.84

User interface

When running scripts from the textport, output from executing commands
are immediately flushed and the textport is redrawn. This allows us to
monitor the progress of executing scripts via echo commands.

mplay

Shift+LMB clicking the Region of Interest in mplay was not selecting
the correct area if the zoom factor was anything other than 100%.

User interface

Fixed a bug with viewport flipbooking, which could produce corrupt images
if the camera or viewport size was changed since the last time the
flipbook dialog was opened and a 'quick' flipbook render is started (the
dialog is bypassed by just LMB clicking the render button).

User interface

We now send out notifications that bundles have been deleted when
Houdini is cleared or a new file is loaded.  This is necessary for
the parameter spreadsheet to be properly alerted to these kinds of
changes.

7.2.83

User interface

Fixed bug where the "commandecho" textport command would report that
it was enabled if any textport had it enabled, not just if itself was
enabled.

Scripting

Changed "nbop add" hscript command beqhaviour on minimized network boxes.
Under no circumstances now, are nodes moved.

Digital assets

Added the ability to undo/redo creation and deletion of parameters and
handles from the Type Properties dialog.

7.2.82

Render outputs

- Added toggles to enable and disable render scripts, located under the Scripts tab.
  It is available to any ROP using render scripts.

Objects

- Fixed a bug that woudl cause viewport handles (e.g. crop and crosshair)
  to be displayed even if we are not looking through the handle's camera
  but another camera with the same name.
- The geometry of the representative object should no longer be displayed
  when looking through the camera OTL.

7.2.81

Objects

Fixed bug that caused all camera objects to be displayed in the camera menu,
even those that are hidden.

User interface

Fixed potential crash when changing desktops that might happen if OPmenu
entries had operator type names that executed hscript commands via
execute().

7.2.78

Scripting

Fixed bug where in custom expression functions, the /= (divide and
assign) operator multiplied instead of dividing.

Scripting

The default $HH/scripts/traverse.cmd script is now fixed so that it
doesn't cause Houdini to go into an infinite loop.

SOPs

Fixed a crash in the channel SOP introduced when BUG 14144 was fixed.

User interface

New OPs placed in the Network Pane from the operator menu are now snapped
to the grid when grid snapping is enabled.  The preview tile outline also
snaps and is consistent with the final location of the OP tile.  Copying
and Pasting also snaps the pasted tiles when grid snapping is enabled.

7.2.77

SOPs

Fixed a crash in the ray SOP when cooking guide geometry.

SOPs

Improved the stability of the uvproject SOP's "Plastic Wrap"
projection mode to give more consistent results across platforms.

7.2.75

User interface

Fixed a bug where homing on a view which contains an empty particle
system would always include the origin.  The fix extends to other
empty primitives as well.

ch

Fixed broken keyframing (using pending values).

Objects

Light bundles may now contain custom HDAs with lights as representative
objects.  The bundles will implicitly contain all the lights inside the
light subnet.

7.2.74

User interface

Fixed a bug that was recently introduced which would access deleted
memory when the save path contained an variables.

7.2.73

SOPs

When removing inlined points with the second last point being
removed from a closed polygon, a crash may be avoided.

7.2.71

SOPs

No longer used fixed buffers in giges.  This can prevent crashes on
certain IGES files.

User interface

Changing the grid spacing in the network editor while grid snapping is
enabled now scales the tiles along with the grid.

7.2.70

User interface

Fixed bug that could cause Houdini to crash if the Geometry Spreadsheet
has to display strings that are sufficiently large.

User interface

Fixed a bug where tiles in the network editor were not snapping exactly to
the grid points when grid snapping was turned on.  Also added grid edge
snapping.

Digital assets

- The Material operation is now aware of representative objects.  Dragging
  and dropping material onto objects they will now also correctly set the
  appropriate parameter if it is exported to the HDA.

- The Texture SOP is now aware of representative objects in an HDA.  The
  convention used is that the transform of the specified object will be
  used, not that of the representative object.  If you wish to get the
  transform of the representative object, you will need to specify it
  manually.  This is the more flexible of the two options.  Also, the
  Texture SOP will no longer crash if something other than a camera is
  specified.

- The Object selection mask in the viewport will now allow selection of
  HDAs with representative objects that match the selection mask.

- The objlightmask and oplightmask expressions will no longer display
  HDAs with representative objects as lights, instead they will only
  show real lights.

mantra

Added an option to the Mantra and RenderMan output drivers to turn
off final image generation when rendering.  The new option is a
checkbox under the "Specific" tab of the ROPs, named "Generate
Final Image", which defaults to on.  When this option is turned
off, only maps (shadow and reflection) will be produced when the
ROP is rendered.

7.2.69

SOPs

Local transformations on degenerate polygons are now treated as global
ones.

SOPs

Increased the performance of the PolyKnit SOP.

User interface

Fixed a bug that was preventing objects from being properly displayed
when their Display parameter contains a channel reference which has
changed.

7.2.68

User interface

The idialog now has a Pause button, which halts Houdini CPU activity
without interrupting the operation, so it may be resumed later.

Progress bars are now built into the idialog, which indicate the
operation progress in operations which support this (some operations
don't have an easily or accurately definable completion percentage,
so they don't show a progress update).

SOPs

PolySplit once again allows you to select what to split
interactively.  This was broken with the sop cooking changes.

7.2.67

User interface

Fixed bug that could cause Houdini to crash if something other than an
Object node is dragged into the viewport.

Render outputs

The image format options in the Mantra ROP parameters dialog now show up
again.

SOPs

Fixed a bug in Capture Layer Paint's Undo when the stencil mappings
change due to an OP being renamed.

7.2.64

ch

The channel group tree now also exports those entries without actual
channels for drag-n-drop.

User interface

Switching folders using opparm now executes without delay.

7.2.63

Objects

Moved the "Renderable" parameter on custom geometry objects (such as Path,
and PathCV) from the Controls tab to the Misc tab.

Operators

Fixed bug where using opwire commands on input nodes that did not exist
yet would not correctly recook the output node when the input node finally
gets created.

User interface

Fixed problem with transform handles in the viewport where rotating it
could sometimes cause very small precision changes in the translate
channels as well.

SOPs

Fixed a bug that would prevent polygons with fewer than 3 vertices from
begin extruded, even if the local transform wasn't used.

Objects

An initial preview version of the OTL representative objects is now
available.  Along with the ability to specify your representative object,
the camera menu and the viewport features now work with these kinds of
objects.

Objects

The switcher for cameras can now recognize the input camera's mask
parameters.

User interface

Fixed a bug where we were incorrectly updating $HIP before expanding
it in the save dialog.

7.2.61

Scripting

Added verbose options (-v) to exread and exrm, along with the missing
help for these two commands.

Scripting

Added a 'findfiles' function.  This function is similar to the
'findfile' function, except that it returns a list of all of the
matches.

Scripting

Added 'ifs' function.  This behaves exactly like the 'if' function,
but returns a string value.

VEX

Added removegroup function to vex to parallel addgroup.

POPs

A new POP operator is now available. It is called Import POP and it
fetches particle stream primitives form other POP networks. The
POP operators to import are specified by the parameter.

User interface

Fixed a bug that was preventing the take contents from being sorted
(in alphabetical order).

7.2.60

Scripting

Fixed bug which prevented takesave from working as advertised when
the -o option was specified.

User interface

Initial commit of a selection mechanism for the parameter spreadsheet.

User interface

Added missing support to the parameter list and parameter spreadsheet
for the following menu entries: Revert To Defaults, Revert To And Restore
Factory Defaults, Include In Take, Exclude From Take.

mplay

Fixed problem in mplay with no longer recognizing $F4 in the command line.

7.2.57

Jive

Made it so that you can click in the box above all of the disable buttons
in the dopesheet to disable all rows in the dopesheet.

ch

Fixed crashing bug with match*() functions.

User interface

Don't include invisible parameters in the take when dragging an
entire node onto the take tree.

7.2.56

Digital assets

When opening the Type Properties dialog for an operator type named
"subnet", Houdini now brings up a warning dialog to ensure that the
actual intention was to do a "Create Type From" before editing the
Type Properties.

Digital assets

Button parameters can now be promoted to the top level of a digital
asset.  Pressing the button on the digital asset behaves as if the
child node button was pressed.

SOPs

Added right arrow button menu for the alpha attribute.

User interface

Added some initial support for a parameter mask to the parameter
spreadsheet.

User interface

The default filename when saving a take is now <takename>.take instead
of untitled.take.

SOPs

Sops are now able to the same input at different frame times
without resulting in unusual behaviour.  This avoids the need to
put temporary sops when building unusual networks with the Cache
SOP.

7.2.55

Scripting

Fixed a bug in which opscripted nodes would have some fault chlock and
chautoscope commands inserted.

COPs

Fixed a bug with COP monitors that caused the first COP monitored to
'stick' in the monitor forever, even if opened on a different node.

COPs

Fixed a subnet cooking problem which caused previously cached results
to be reused for different parm settings.

COPs

Fixed a bug in the File COP when loading pic files with the 'Flip Image'
option. The alpha planes and deep raster planes would be corrupt.

Jive

Added a pane menu command to show/hide the Time Bar.

gplay

Added display options button to side toolbox.

Jive

Added the ability to undo cut, copy, and paste operation in the graph
editor.

User interface

Removed the camera options menu from underneath the viewport.  This button
is not useful in that location.

7.2.54

ch

Fixed a bug in which scaling accels caused accels to snap back to default.

Objects

Added a new two-dimensional mode for the camera and light's Orientation
Handle. This 2D Orientation Handle is only displayed when looking through a
camera or light. It controls a camera or light's translation and rotation,
both globally and locally.

7.2.53

Scripting

- Added chkeyget that samples a key given a frame and displays it
- Renamed chkeyls -f -> chkeyls -s (script keys insted of full keys).
- Added chkeyls -vVmMaAf to print out partial key values.
- Added chkeyls -S to print out scripted keys less briefly.

SOPs

The Lattice SOP now has a new parameter called "nromthreshold". This
parameter controlls the fall-off smoothness for the influence strength
of a capture region. Please see help for details.

7.2.50

Scripting

Added the -f option to chkeyls.  Instead of outputting a list of key times,
chkeyls will output full chkey commands for each key it finds (with slope
and acceleration if applicable to the curve type).

Objects

Fixed bug with Gimbal mode in the object Transform tool when used
with bones or other objects that have non-default rotation orders.

ogl

Fixed problem with incorrectly causing objects to be rendered in the
viewport with transparency when given projector map lights that contained
alpha.

User interface

Fixed bug that caused UV snapping to not work if editing the UVs on
an object that has transforms and 'See All' is selected in the viewport.

Fixed a crash with cineon LUTs that would occur if the LUT didn't exist
or it failed to load.

7.2.48

SOPs

The Disolve SOP should behave now more reliably for large number
of edges to disolve or unconventional polygonal sturctures. As
as side note, the Disolve SOP works better when the primitive
numbers are spacially coherent; that is, when the primitives with
similar primitive numbers are in the same neighbourhood, rahter
than scattered randomly all over the model. The Sort SOP may be
used to order the primitives in x, y, and/or z directions.

User interface

Custom RMB menu scripts now create undos properly.

User interface

Added support for toggle buttons to the parameter spreadsheet.

SOPs

The SOP Cache now shows up in the Cache Manager dialog.

7.2.47

Licensing

The license server, sesinetd, has been updated along with new tools
which will automatically restart it if it dies unexpectedly.

SOPs

Fixed problem with GroupTransfer if given less than 2 groups. It would
likely warn with an invalid group name.

7.2.46

User interface

The commandecho command can now be enabled or disabled on individual
textports.

Jive

Added an optional "All-Channels" row to the DopeSheet.

User interface

Fixed a crashing bug in the parameter spreadsheet (which was also
in the parameter box, but much rarer).

User interface

Added support for callback buttons and callback menus to the parameter
spreadsheet.

7.2.44

mplay

Fixed a problem with applying display gamma and LUTs to an image with
black and white points. Previously, the points were not taken into account
when applying the gamma or LUTs, so the resulting display was incorrect.

This does not affect images without black and white points, as they worked
correctly.

COPs

TIFFs saved from the Compositor are now saved with any black/white
point settings they had. This helps when saving linearized Cineons to
TIFF files (amoung other things). The TIFF file will load with the
correct white point.

User interface

Added a perference 'Play Audio with Popup Notifications' which allows
the sounds effects played on certain popups to be muted
(ie, Ding-Dong: "Save Changes to 'untitled.hip' before exiting?"). It is
in the Main Preferences, General User Interface tab.

7.2.43

Objects

Added option to Main Preferences to set the default Gimbal mode behaviour
for transform handles.

Scripting

Fixed a bug in hscript that caused a bash shell to loose its icanon and
echo attributes when hscript exits.

Objects

The new Mask parameters have also been added to lights.

User interface

Added a filter menu to the parameter spreadsheet.

vcc

Fixed a bug that caused pragmas in vcc to stop evaluating arguments after
a fixed number.  This, for example, prevented group pragmas from adding
more than 30 parameters to their group.

Licensing

The license server log usage analyzer utility, sesiusage, now has a new
-l option to output information for the minimum, maximum, median license
usage times. It now always prints out the average license usage as well.

Licensing

The license manager, sesinetd, will now correctly log "stats" (checks
for existence of a license) as such instead of as license check outs.

User interface

Flattened the look of the parameter spreadsheet to reduce the
unnecessary clutter in the cells.

7.2.42

mantra

Caching of grid data in mantra has been changed to use a disk
cache.  The cache will be created (if required) in the houdini
tempororary directory (see hconfig HOUDINI_TEMP_DIR) and will be
called mcache.XXX, where XXX is a unique identifier for the
process being rendered.

When this cache is created, a warning will be output (with
verbosity 1 or greater (command line option -V 1)).

The -G option controls the allowed memory before the cache file is
created.

Previously, the -G option specified the number of grids to be
created.  Now, however, it specifies memory allowed.  To keep a
reasonable form of backwards compatibility, the option specifies
a multiple of 4KB chunks of memory.  Thus, -G 4096 (the default)
allows 16 MB to be used before the disk cache is created.

The previous behaviour of mantra was to re-generate data if it was
flushed out of RAM, which could have been prohibitive when
expensive shading (such as global illumination) was involved in
rendering.

Depending on disk speed (and if the HOUDINI_TEMP_DIR is local or
networked), the new caching mechanism may prove to be more
expensive than the re-generation of grid data.  This behavour can
be controlled on a per-object basis using the IFD command:
ray_ocache, which takes exactly one argument.  The argument should
be "disk" or "regenerate".

WARNING:  Not all data can be re-generated, meaning that even if
all objects are set to the previous behaviour of regeneration of
data, the disk cache file may still be constructed and used.

mplay

Fixed a crush on mplay startup. This was happening when the
a default background has been specified in the preferences
and saved as a default to the preference file.

User interface

Added the Cache Manager dialog, which shows a comprehensive view of all
major caches in Houdini. It also allows editing of the maximum cache
sizes and the current cache sizes (normally by clearing the cache).

User interface

Added initial support for menu parameters to the parm spreadsheet,
along with additional bundle UI.

7.2.41

ch

Fixed a bug in which locked channels did not have keys in the dopesheet.

Made the "k" and "alt-0" keys work on the playbar.

SOPs

Fixed erroneous default behaviour of the Operators menu.

Licensing

Fixed bug in sesinetd that could cause it to crash on high load
conditions. Also fixed problem where sesinetd would not cleanly
shutdown when sesictrl -q was invoked.

7.2.40

SOPs

Fixed a bug where the blending weights were not being animated.

Render outputs

The renderman output driver correctly renders a motion-blurred
geometry that has a velocity attribute and is also surface-subdivided.

7.2.39

Licensing

Fixed problem where sesictrl -q would not properly shutdown sesinetd.

User interface

Initial commit of a new parameter spreadsheet pane.  This is still very
much a work in progress.

ch

Fixed a bug with matchin():  consecutive segments that use matchin() will
all have the same slope.  Before, succeding segments would have a slope of
0.

User interface

In the Bones from Curve tool, when a new prefix is specifed for the
bone chain, this prefix is updated for the bones created previously
by this tool.

User interface

Drag and drop works again when an operator is dragged from the tree or
a list view and dropped onto the bundle or group pane.

7.2.37

COPs

The COP info now shows the frames and planes required for each displayed
node (if any).

7.2.36

ch

Fixed a bug that causes chrefit to make channels dissappear.

User interface

Fixed a bug where it was impossible to drag-n-drop to the right from
a tree node.

7.2.35

mantra

Adding group instance rendering support to houdini.  Geometry
objects now have a "Geo Instance Group" parameter in the render
parameters area, which allows rendering of the instance to be
restricted to a group in the SOP.  Only a single group can be
specified, and it can be specified as a name or primitive list
pattern.  Only Mantra and RenderMan are supported.

Licensing

Several improvements to the sesiusage utility to give more info sesinetd
license server logs. The output format for peak usage has now changed
to support new information such as heartbeat failures and simple license
checks.

mantra

Fixed bug which occurred when the same shader was applied to two
separate objects which had the same parameter overrides but with
different classes of attributes (i.e. one object had point
attributes, the other had primitive attributes).

7.2.34

The command line tool izg now keeps track of the second closest Z
value.  This produces the same results as the auto-computation
method.

The colors chosen by the command line tool izg are now inverted by
default.  This matches the mplay display, but is different than
before.  Scripts which depend on the previous behaviour should use
the -i option to invert the gray scale.

User interface

Fixed a minor bug in the parameter list which could sometimes give the
user the incorrect XCF slider the first time.

mplay

The subregion guide now includes the UV/pixel coordinates of the region
at the lower left and upper right corners. The guide will also appear
when selecting a subregion, even if guides are off.

mplay

Fixed a bug with the UV inspect readout in mplay/COPs when a subregion
was used. The UV values were incorrect.

User interface

The checkbox parameters and drop down selection menu parameters now can
be locked. In the right mouse button pop-up menu for these parameters,
lock and unlock entry is available to prevent the change of the parameter
values.

7.2.33

SOPs

Added a linear interpolation type to the lattice SOP.

7.2.31

There's a new environment variable (HOUDINI_DEFAULT_RIB_RENDERER).
This allows the default RIB target version to be specified.  When
rendering from the viewport or saving geometry (and any other
places where the target isn't specified), this variable will be
used to determine the appropriate target.  For example, to save an
archive containing RiNuCurve primitives (not supported by prman),
you could set the variable to "rdc3.3" or "air2.8".

To change the viewport renderer to a renderer other than prman,
it's also necessary to set the variable HOUDINI_VIEW_RMAN to the
appropriate command.

Render outputs

Fixed bug where the post-render script of the last child of a Subnet ROP
would not be executed.

SOPs

The Inflate SOP now evaluates the Tightness and Max Inflation
Distance parameters on a per point basis.  All standard point
local variables are available.

7.2.30

Render outputs

Fixed problem where if an error occurred in the execution of render scripts
when rendering an output driver (ROP), it would fail to further render
until its render script parameters were cleared to obtain a successful
render.

User interface

Added a new parameter to cameras, "Mask Overlay SOP." When the Camera Mask
display option is selected on a viewport, and that viewport is looking
through a camera, its mask overlay SOP will be rendered on top of the mask.
To be rendered properly, mask overlay SOPs should be defined in the range
[0, 1] both vertically and horizontally on the z = 0 plane.

7.2.29

User interface

In the Operator Type Manager dialog, before removing a library from
OPlibraries file (or from local session), the user is prompted for
the confirmation for that action.

7.2.27

VOPs

Changing the input connection order of a custom VOP now changes the
connections inside the VOP.

Fixed bug that could cause hcompile to crash if the command line is
formatted incorrectly.

SOPs

Fixed bug that could cause the Scatter SOP to crash if it is used with
empty geometry.

mantra

Added a "null:" tile device for mantra.  When the output filename
is set to "null:", no image will be saved, though the render will
proceed as usaual.  This is useful when the render is used to
generate extra files (like deep rasters).

7.2.24

Render outputs

- The pre-include for RIB now gets output right before the shader
  Transforms.
- The post-include now gets output even if all your share assignment is done
  at the SOP level.

User interface

Fixed a bug that would cause Custom Panels to break on RedHat 9 machines.

7.2.23

SOPs

The AttribCopy SOP can now copy multiple attributes.

gplay

Houdini and gplay no longer share the same default display options.

Scripting

Two new commands have been added (see help for details):
- viewsnapshot, which takes, shows, hides, and deletes snapshots
  of the viewer.
- viewsnapshotoption, which sets and returns the snapshot options
  for a given viewer.

User interface

The view snapshot options have a new option to hide the handles
when a snapshot is being taken. Also, the snapshot options dialog
is now automatically popped up to the top (if it is open) after
rendering out the snapshot.

User interface

The snapshot memory options dialog (opened by the "+" button
at the end of the memory snapshot buttons) allows to specify
which objects should be included/excluded from the snapshot.
This parameter works much like the visibility mask for flipbook.

User interface

Now the viewport snapshot memory has an option to blend the snapshot
image with the scene view with a user-defined alpha blend factor.
The blend factor for the snapshots can be specified in the
dialog box that is popped up by clicking "+" button at the end of the
snapshot memory buttons (though it is considered to move the options into
the display option dialog).

User interface

Now the viewport snapshot display memory has an option to not show
the snapshot if the current time frame is the same as the time frame
at which the snapshot was taken. The options for the snapshot memory
are in the dialog box that can be shown by clicking the "+" button
at the end of the snapshot memory buttons (though it is considered
to move the options into the display options dialog).

User interface

A new type of temporary view storage is available for the viewer. Now
in addition of the View and Clip plane memory, there is a Snapshot memory
capable of storing the view framebuffer as an image. The stored snapshots
of the scene can be recalled (ie. displayed back in the viewer) by
pressing the memory buttons under the viewer.

To store the view form the viewer into a memory, press the 'M' button,
and then press the memory location (buttons 1-9, or type a new memory
label in the input field).

To recall the memory press the memory button associated with the
desired snapshot. The snapshot will be displayed in the viewer until
the memory is retracted by clicking the same button again.

In addition there is a Clear button which frees up the memory taken by
the snapshots. The keyboard shortcuts can be assigned to the buttons.

User interface

Fixed a minor bug where the parameter list would still have interests
in changes to the operator types when closed.

7.2.22

User interface

Multiparm temporary dialogs are now written to the temp directory,
rather than $HFS/houdini/config/Dialogs. This avoids several problems
with writing data to a shared location in a multi-user environment,
and a location that might be read-only at that.

7.2.21

User interface

Fixed a bug wherein the view state lock is stuck in the graph editor if
multigraph mode is entered while the space bar is down

Fixed a bug wherein modifying a channel permission by locking, unlocking,
adding or removing from the the current take, or write protecting a node did
not cause the animation editor to template or untemplate the channel
automatically

Digital assets

Added new "Hide Object Transform and Subnet parameters" option to the
Type Properties dialog.  This allows digital assets at the Object level
to not contain the Transform and Subnet tabs and paramters so that the
user sees only the custom parameters.

Objects

When selecting items in the viewport, if there are multiple items under
the cursor, it is now possible to choose which of the items will be
selected through a pop-up menu. To enable this menu, select
"Popup Menu Selection" in the Objects and Geometry subheading of the
Preferences dialog.

User interface

Added a new "Mask" tab to the camera parameters. This tab contains two
values: mask aspect and mask opacity. Using the camera mask makes it
possible to have a camera of one aspect ratio (e.g. for television) which
allows you to preview what the frame will contain for another resolution
(e.g. for film). Masks are only visible when looking through a camera;
their visibility is toggled on and off in the Display Options dialog.

User interface

In bundle chooser dilaog (available, for example, by clicking the "+"
button at the visible objects parameters for in mantra output driver),
the list view of the operators has been replaced with the tree view,
which allows collapsing nodes that are not of interest, thus reducing
the clutter.

User interface

The Paint tool now has an option for disabling Force Visualization in its
tool parameters dialog (hit p in the viewer while the tool is active).

mantra

Coving of Bezier/NURBs surfaces has been improved.  There should
be fewer patch cracks.

7.2.20

SOPs

Fixed crash that could occur when two Group SOPs are in a chain with
identical second inputs and both using the Bounding Object method.

SOPs

Fixed memory leak in the Group SOP when using the Bounding Object method.

Fixed a bug that could cause Houdini to crash if the audio device
fails to initialize.

User interface

When "Keep Position When Moving" option is turned on, there is now a
viewport warning message that appears to inform the user.

User interface

. Blocked parameters that are not write-able (e.g. those not in the current
take) from being auto-scoped.  This makes sense since locked channels are
already blocked.

mplay

Fixed a bug in mplay where the image description wasn't being updated
when 'Reload' was hit. This was most noticable with Cineon images, when
the Image White point was changed.

mplay

Fixed inspection bug in mplay with gamma: now the original values are
returned in the inspection bar, not the gamma'd values.

Fixed a bug with Cineon files loaded with a LUT file. The white point
was being incorrectly interpreted, resulting in very dark files.

7.2.17

Scripting

The opchangetype command no longer moves the node to the end of the
user-defined order in the operator list.

User interface

When using projector maps in light objects, clamp to frustum now fully
works if the OpenGL driver supports the GL_ARB_texture_border_clamp
extension.

Licensing

Fixed a bug that could cause hserver to hang Houdini if hserver was
not run with the -d option.

User interface

Added an option to the optimization tab of the viewport's Display Options
dialog called "Automatically Adjust Near/Far Planes When Homing."
Houdini's default behaviour, the same as its previous behaviour,
is to have this option enabled; if it is disabled, any adjustments
made to the near and far planes will be maintained when homing the
viewport.

SOPs

Change the radius default on the wirecapture SOP from 0 to 0.3 to
match the cregion SOP.

Digital assets

Now when the OTL has an invisible toggle parameter, the value
of this parameter is correctly saved in the hip file.

SOPs

Implemented an arc length carve SOP called CarveCurveArc. It is
available as proto_install SOP. This sop carves curves by measuring
out the arc length distances (rather than using the parameter space
"distances").

SOPs

The TriBez SOP now properly prompts for a point group rather than
a primitive group.

SOPs

A new SOP has been added: the TriDivide SOP.  This is used to
refine triangular meshes in a similar way that Subdivide allows
you to refine quadrilateral meshes.

7.2.16

Fixed a crash in OpenEXR image loading with Display Window EXR images.

mantra

- There is a new file format for .rat files which makes them
  incompatible with old .rat files.  Backwards compatibility is
  maintained and old .rat files will still work.
- Texture access has been optimized and now will execute about
  20-30% faster for both old and new .rat files.

Jive

- Fixed a bug with the current time handle in the animation editor not
  being drawn properly in multi-graph mode

Scripting

A new command called "mnew" is available in hscript. This command
resets the session much like selecting "File -> New" from the menu.

COPs

Fixed a bug with COP states and Display/Current mode. When entering a COP
network, some COP states would not be initialized properly with the current
node. For some states, like RotoShape, this could cause crashes.

User interface

When you try to do a search and java is not installed, Houdini now
properly detects that java isn't installed and it displays a helpful
web page.

User interface

Fixed problems with the list mode in the network editor:
  - Right-clicking on a row or copy/pasting nodes no longer reset the
    width of the name column
  - Changing operator contexts (eg. from OBJ to SOP) now maintains the
    width of the name column
  - When Houdini is loaded with a network editor in list mode and the
    Edit Expose Flags option is on, it now lays out correctly.

SOPs

The Sort SOP with Sort by Primitive no longer crashes when there
are more primitives than points.

7.2.15

Targa files now respect the orientation bit in the header.

POPs

Added two new functions to the pop context.  The first, poppointid,
is similar to poppoint though the particle is specified by the id
rather than the point number.  The second function, poppointnum does
a lookup for the point number based on the particle id.

7.2.14

Fixed select/display related operators in the channel group tree

Jive

- Shifting cells in the dopesheet properly handles overwritten keys when
  overwriting is disabled
- Stretching channels in the dopesheet no longer crashes when keys are
  overwritten
- Fixed a bug in which the animation editor was sometimes leaving in
  channels that should have been filtered out
- The dopesheet and spreadsheet both support channels that are not in the
  current take-- if you can scope it, it shows up, but it might not be
  editable
- You can no longer add or delete keys from channels that are not editable

ch

- Fixed a bug with chround -R: even if, for a particular key, the snapped
  key can't be added, the other replacement key is still added
- The verbose output to chround should be little more human-readable
- Fixed a bug with the dopesheet: non-integer frames were sometimes being
  missed

SOPs

An ordered set of points is now created when converting an edge selection
into a point selection.

Operators

Fixed bug in object geometry instancing where if the referencing object
in a custom object was created prior to the geometry instance object being
created, then the viewport would not update to show the new instanced
geometry.

User interface

Removing browser popup window that would sometimes appear, saying
"startPage=chrome://...".

Objects

Fixed bug that prevented Paint Capture Layer's parameters pane from being
refreshed properly when entering the state.

7.2.13

ch

- Hitting k no longer keys channels not in the current take (or locked
  channels)

User interface

Fixed a bug where using the RMB on the embedded tree control in the
worksheet could execute the command on all the nodes flagged as being
current in their respective network.

Jive

- Moved "Add Keys" and "Smooth Slopes" into the pane menu as radio buttons

7.2.10

SOPs

Fixed bug that prevented the group parameter from being used in the
BlendShapes SOP.

mplay

- Added -f start end option to the loadseq, appendseq and prependseq
  commands, to override the frame ranges.
- Fixed some bugs associated with overriding frame ranges, which were
  resulting in inconsistant behaviour when loading file from the command
  line with -g or not, or from the File->Load dialog. The wrong frames
  were shown in some cases.

ch

Fixed a bug where nodes would not recook on time changes for channels that
were time dependant but had only one key.

SOPs

Added a Reload button to the Iso (3D Texture) SOP.  In addition, this
sop now also supports the opupdate command properly.

Scripting

Added strreplace function.

SOPs

Fixed a bug that prevented UV Pelt from generating texture coordinates
when no cuts are specified.

HDK

The GU_RayIntersect::minimumPoint() function now works for
quadric primitives (tubes, circles, and spheres).  It doesn't work
very well for non-uniformally scaled versions, however.

7.2.9

Digital assets

Fixed crash which could occur when dragging a node to the parameters
panel in the type properties dialog.  The crash was caused by not
being able to resolve a parameter in the disable string.

7.2.8

VEX

- Fixed a bug that caused vcc to crash when the choice #pragma is used.
- Fixed a bug that caused all "choice" type #pragmas to be either
  "choice" or "choicescript".  It now supports "choicetoggle" and
  "choicereplace" variants correctly.

ogl

Fixed a bug where selectors were allowing selection from sops which
are not eligible for picking.  This includes the target output sop
(when in Display Current mode), as well as the display sop when the
display options specify not to render it.

Jive

Fixed a minor bug with "smooth selected slopes" in the graph editor regarding
the slopes at either end of the channel.

User interface

Fixed minor bug with the selector toolbox sometimes not redrawing
cleanly.

SOPs

A new SOP, the IsoOffset SOP, has been added.  This SOP allows you
to convert geometry into implicit surfaces and then generate an
iso surface from a given offset level.  This also lets you build a
solid tetrahedronal mesh to fill the implicit function.

7.2.7

mantra

A significant bug with tile boundary artifacts was fixed.  This
bug occurred when velocity motion blur was specified for an object
which didn't have the velocity attribute defined.

User interface

Starting houdini with a hip file on a command line no longer produces
duplicate entries in the operator list for the operators that were
hidded (un-exposed).

Objects

Setting the object transformation cache size to zero, no longer
crashes houdini.

7.2.6

User interface

Added the ability to drag and drop camera and light objects into a
viewport in order to set the viewport's camera.

Operators

Fixed a bug that caused unrelated OPs to recook when an OP is deleted.

User interface

Fixed a bug where selecting multiple nodes in the worksheet, but not
changing the current node would not properly gray out the parameters
with different values in the embedded parameter dialog.

7.2.3

ogl

Fixed a bug where changing the double buffer state would result in using
an incorrect lighting model.

POPs

Fixed several bugs where the speed attribute was only updated during the
timestep at the start of a frame.  In particular, particles would have
an incorrect speed set during the first frame of their life.

7.2.2

User interface

The multi-line text editing fields in Houdini now support middle-mouse
for pasting. A bug was also fixed where clicking on somewhere to position
the mouse cursor would clear the copy buffer.

SOPs

Added cardoid preset for the IsoSurface SOP.

User interface

On Unix, copy/pasting between Houdini and other applications will now
consistently work when using explicit copy/paste hotkeys (Ctrl+c/Ctrl+v).

SOPs

The proto install now includes CreepMulti and FlowField SOPs.
The CreepMulti SOP works similar to the Creep SOP but can operate
on a sequence of groups.  The FlowField SOP moves a primitive's
vertices to follow the direction of a vector field.

Scripting

Fixed a bug with chkeymv -r which was causing not to work at all

ogl

The primitive color attribute is now only used for the face color in
Hidden Line Ghost mode rather than both the face color and the wire
color.

SOPs

Added option to PolyExtrude to Orient Edge Extrusions.  This allows
PolyExtrude to ignore the specified edge orientation and choose an
orientation that better matches the faces around it.

Licensing

Fixing a bug in sesinetd that would cause it to periodically crash.

User interface

The shortcut keys in the bundle pane that pertain to the
bundle list now work also if the keys are pressed in the docked tree view.

Objects

When constructed interactively in the viewer, the rivet object is
placed at the viewer path level, rather than than being parented to
the parent of the object to which it is being attached.

7.2.1

mantra

When using a default light for RenderMan rendering, the rib file
will use a single light shader (asad_light.sl) rather than diverse
shaders.  The asad_light shop will now use asad_light.sl for
RenderMan rendering.

mantra

When rendering points for an object, mantra will now respect the
"orient" attribute.  If this attribute exists, the points will be
oriented so that their normal is along the axis specified by the
attribute.

houdini

Fixed bug where entering the Modify Channels state and the sop Select
state did not update the state name in the viewport until the user
did something.

User interface

CTRL+MMB in the parm list fields now restores the default value.  This
is more consistent with normal parameter dialogs.

Version 7.0

7.0.183

COPs

Fixed the layout of the Color Wheel COP's parm dialog.

SOPs

The GroupCopy SOP now has a Copy Empty Group toggle.  This
defaults to on and causes it to copy groups that would be empty in
the destination.

COPs

Fixed a multithreaded problem with the compositing engine because of
some recently introduced non-threadsafe code.

User interface

The behaviour of the channel group tree has been changed:
- LMB on the scope light, scopes
- MMB on the scope light, pins
- LMB on the key button, sets keys
- Ctrl always toggles

mplay

- The overlay behaviour of the regular dopesheet is now present in mplay.
- Copying a key over top of another key used to remove a key and crashes
  mplay. You can no longer copy keys over top of each other.
- The mplay dopesheet uses bright green to show moved keys, which is
  confusing because bright green means non-integer keyframe.  It now uses
  the pending colour: Orange.

COPs

Fixed a bug with the Transform COP which crashed Windows machines when
the scale was set to zero.

COPs

Fixed a bad inefficiency with COP subnets that slowed things down so
much in some instances that it appeared to be hung.

mplay

.tex and .env files will now show up in mplay's load file dialog.

Operators

Cutting and pasting a group of nodes named "add#", where # is
sequentially higher numbers, will paste them with the numbers
increasing in the same fashion.  (Ie, the 6.1 behaviour is
restored)

7.0.179

houdini

It is now possible to select lights from the camera chooser in
output drivers.

VOPs

The parameter VOP now has string qualifiers to allow for creating
a parameter which is a list of objects.  This is primarily used
for creating light masks in VOPs/SHOPs, but has other uses as
well.

houdini

Bundles now support SHOP filters properly.

Scripting

Fixed bug where running opparm to set values on a locked parameter that
had channels would result in the channels being cleared.

Operators

Removed requirement that tiles flow strictly in one general direction
for oplayout.  This fixes an infinite loop bug.

Scripting

- Fix for chkeymv where some destinations are the same as some sources
- This fixes an mplay bug where keys mysteriously dissappear when
  committing back to houdini

Rendering

RenderMan will now generate alpha in auto-generated reflection
maps.

7.0.178

VEX

The VEX optimizer was sped up when there were complex cases of
nested if/else blocks.

User interface

The channel scoper tree no longer randomly changes the current item
when shift-selecting multiple nodes to scope.

mplay

Fixed a problem with mplay showing a corrupt font for the playbar selection
when it is in double buffer mode (normally seen in View->Flipbook with
Block Editing).

COPs

Fixed a periodic crash and odd behaviour when deleting RotoShape points.
Sometimes it crashed and sometimes it removed more than one handle when the
underlying point still existed.

User interface

The geometry spreadsheet (and other spread-sheet like gadgets) now
supports the wheel mouse.

houdini

Fixed problems with the help browser and mplay when running Houdini
in standalone mode.  Communication between Houdini and these applications
was not working properly and could lead to Houdini crashing.

Scripting

The sopcache -l command will now explicitly state that the memory
amount is in bytes.

7.0.177

hescape

hescape now supports the Houdini-Render-Plus license for RIB and
.mi generation.  To invoke hescape with this option, please either
use the "hescape+" application or use the "-p" or "--plus" command
line options.
% hescape --plus
% hescape -p
% hescape+

VEX

Fixed bug that could cause Houdini to crash when previewing certain
SHOPs that reference a COP with the op:/ syntax.

Jive

- A message is rendered when level of detail is low and channels
  are drawn with straight line segments regardless of slopes
- There is a space between the (held) string and thannel name
- Draw past ends off affects channels with 0 or 1 keys now

mplay

Mplay now assumes integer frame numbers by default. To read fractional
frame numbers, use the -D option. Many users liked using '.' as a separator
between the frame number and the rest of the filename, and this caused
the fractional frame reader to produce very odd frame numberings for the
sequence.

Also removed the -I option from mplay (assume integer frame numbers), as
it is redundant.

Render outputs

Composite ROPs can now render in Houdini Escape without 'Permission Denied'
errors.

COPs

The File COP auto-renaming feature now works correctly when adding File
COPs via opadd. Previously, it would delay renaming the node until it was
cooked, causing problems with scripting. Calling 'opadd file [new_name]'
also respects the new name, and sets the File Naming Convention to
User Defined.

7.0.176

Objects

Fixed bug that resulted in no handle hiding for a locked channel that
referenced an unlocked channel.

houdini

On Windows platforms, the user's home directory no longer defaults to
a temporary directory if the user doesn't have $HOME set.  It now defaults
to the user's 'My Documents' folder.

VOPs

Fixed bug that was causing bad code to be generated when an input was
connected to a rotate VOP.  The input matrix was being ignored.

7.0.175

houdini

On Windows platforms, the user's home directory no longer defaults to
a temporary directory if the user doesn't have $HOME set.  It now defaults
to C:\Documents and Settings\<user_name>\Application Data.

SOPs

PolyWire no longer creates extra disconnected points when wiring
straight segments.

SOPs

Bilinear NURB and Bezier surfaces will now render with full LOD if
they have trim curves.  They do this even if the
HOUDINI_OGL_FAST_ORDER2 is set.  This is to ensure trims are
properly rendered.

SOPs

The Cusp option will now work better with geometry that is
partially cusped.  For example, cusping the extruded letter A will
cusp the edges as expected.

7.0.174

User interface

Fixed a bug in a channel lister that would display "%s" instead of the
actual parameter label for certain multi-parameters.

7.0.172

POPs

The deforming collision algorithm better takes into account any
time spent resolving collisions in preceeding collision POPs.

Render outputs

Fixed bug in OpenGL ROP where spotlights were being rendered as
non-spotlights.

POPs

Fixed a bug in the deforming collision algorithm which was
incorrectly computing the collision velocity in cases where
the particle had already collided earlier in the frame in a
previous collide POP.

SOPs

Houdini properly undoes changes to attributes in the geometry
spreadsheet.

SOPs

Houdini no longer crashes if you undo changing a point position in
the geometry spreadsheet.

7.0.171

Rendering

Generation of RIB has been changed a slight bit with regards to
transform blocks.  The shader definitions are now blocked in a
TransformBegin/TransformEnd which may account for marginally
larger RIB files.

When shaders are applied at the SOP level, RIB files will be
marginally smaller now (especially with motion blur) since the
object transform is now only output once (rather than once per
shader group).

Several bugs were fixed with archive generation and auto-archive
generation.

gplay

Stop playback when quittin in gplay.

CHOPs

Included the Jiggle CHOP in Houdini Escape.

User interface

The Operator tree chooser that is launched from a '+' on an op path parm,
no longer changes the selected state of the operator.  This fixes cases
where the user accidentally enters the path for both the current node and
the node that was selected from the tree.

User interface

Added Ctrl+MMB ability for reverting to defaults on parm input fields.
Initialize all UI_Values in a UI_Vector properly to ensure proper type
settings.

7.0.170

VEX

Add support for "#pragma hint param invisible" in VEX which will generate
.ds files with invisible parameters.

User interface

Bumped up precision of xcf ladder to 6 SD.

Digital assets

Fixed a crash when using OTLs which was recently introduced.

Render outputs

Fixed bug in Archive Generator ROP where after each frame, instead of
calling the postframe script, it would call the preframe script instead.

User interface

Improved the sorting in the parm list gadget to group components of the
same parameter together, rather than sorting purely by channel name.

User interface

The "Create Nested Channel Groups" option no longer includes invisible
parameters even if they contain channels.

7.0.169

mantra

Mantra now handles .rat files which are embedded in .otl files
properly.

Scripting

Fixed a bug that would cause hscript not to return the filename and
line number where an "Unknown command" error is found in a source
.cmd file.

Scripting

Added command support to save the state of the new parm list gadget
to desktops and hip files.  There is now a new parmlist command that
can be used to change the state of the parm list in either a channel
editor pane or a channel list pane.

User interface

Rearranged node RMB menu entries so that "Save Operator Type" is not
right next to "Match Current Definition".

Objects

Fixed a bug that could cause handles not to update when the user selects
objects in the viewport.

7.0.168

User interface

Update input field values before starting field editors.

User interface

Single undo for cone handle change.

geo

Fixed bug where resetting vertex attributes was resetting primitive
attributes.

7.0.165

mplay

Fixed bug where mplay could not kill renders coming from prman display
driver.

Operators

Support for drag & dropping network boxes into bundle & group lists

Operators

Adjusted coloring of network boxes to allow darker colors in the palette to
be usable.

Operators

A netbox's name will now be displayed on top of the box for COPs/VOPs
networks.

Operators

Added 2 new options to the network box menu:
1) Delete Network Box And Contents
2) Snap Network Box to Contents Bounds

ch

Made the parm list more robust when user defined operator types
are modified.

SOPs

The bake VEX SOP now deals with wrapped meshes (torus, tube etc.)
correctly.

VOPs

The texture VOP is now available in the shadow context.

HDK

The signature for SHOP_Clerk parameter evaluation was changed to
eliminate fixed buffers.  Any custom SHOP_Clerks will have to be
re-worked to use the new signature.

VOPs

It is now safe to use Parameter VOPs with expressions for their
Parameter Name.  Previously it was possible to generate invalid code
if the value of the expression changed.

Operators

Fixed a bug which prevented changes from being propagated properly
down through multiple layers of subnet operators if the contained
subnets were connected directly to the indirect parent inputs.

7.0.164

Render outputs

Fixed hrender for proper per-frame progress display and to support negative
frames.

Render outputs

Added crop window support when rendering from prman to mplay so that it
is placed at the correct position within the original size of the image.

User interface

Do not show camera if the viewport is in that camera's view.

VEX

The asad_light shader can deal with very small cone angles now.
Though users should be cautioned that the precision of the cos()
function at very small angles may be a limiting factor for very
tiny angles (like 0.2 degrees).

7.0.163

mantra

Handling of the "scope" argument in shaders has very slight
different symantics now.  Previously, if an invalid pattern was
specified (i.e. the pattern referred to a non-existant object),
the pattern was assumed to be invalid and mantra defaulted to the
object's reflection mask (or the appropriate mask).  Now, an
invalid mask will be interpreted as a mask which will not
intersect any objects, which is a more correct interpretation.

expr

The system() expression function (and the systemES() function)
now handle back-slash protected double quotes slightly
differently.  This enables functions like:
system("echo \"This is a test\" | grep \"test\"")
to be evaluated properly.

rscript

rscript should work as advertised now.

User interface

Changing the autoscope behaviour so that it always matches which
nodes are currently selected.  Before, when a node became selected
it would add the parameters to the scope and when it was deselected
it would remove the parameters from the scope.  Unfortunately, if
other parameters were scoped outside of autoscoping, they wouldn't
be unscoped when the selection changed.

cmd

Fixed openport -a to always return the correct port number that it opened.
It might have been off by 10000 if the process pid was less than 10000.

7.0.162

User interface

Fixed bug where non-sequence renders from the Viewport Render Button would
not be backgrounded if the corresponding ROP had its frame range enabled.

Jive

Rearranged animation editor options (minimum size is smaller, layout is
more intuitive)

Digital assets

Fix for using loops in selectors panel from Operator Type Properties.

User interface

Fixed bug that could cause Houdini to crash if trying to display nurbs or
Bezier surfaces in VEX shaded mode.

COPs

Fixed a couple of COP state problems:
  - the composite handles in Composite/Layer COPs wasn't responding to key
    presses
  - the RotoShape state was improperly setup when launched from a COP
    monitor, which resulted in odd state behaviour.

User interface

Do not process motions if we are avoiding key repeats using the special
hack (from X11_Window), because the event position values may be wrong.
Fixes erratic shaking when in volatile key state and moving outside of
focus-locked window.

7.0.161

Digital assets

Fixed problem when synchronizing custom operators that had nested custom
operators within them. If the inner custom operator had a new parameter
added after the outer custom operator was saved, then synchronizing
the outer custom operator would not immediately reset the new parameter
to its default. However, it would restore itself when the hip file is
reloaded.

SOPs

Added "Remove Unused Points" parameter to Dissolve SOP (defaults to on).

User interface

Fixed crash that could happen when loading corrupted desktop files
that contained no panes.

7.0.160

Operators

Added support for the -o (omit network box names) and -f (print full paths)
options to nblsop. Similar support for -f added to opls.

7.0.158

mplay

Toggling to the range slider in mplay does not replace the playbar
anymore; the range slider pops up under the slider and the start/end
fields appear beside the playbar.

Jive

Made the channel group key state work with unkeyed parameters

Operators

Fixed bug where undoing a copy/paste of a node containing network boxes
caused a crash.

7.0.157

User interface

Fixing a problem where, when dragging a handle in the viewport, the
viewport would not update until you stopped moving the mouse.  This
but only appeared when "delay inactive viewport redraws" was turned on.

Operators

Fix for channel group undo.

Features:
- Chround is rewriten with four modes-- check them out with "help chround"

Beaviour:
- Fixed the behaviour of the scope/pin button
- Replaced "Preserve Shape" toggle in JIVE with a button strip that makes
  way more sense

Bugs:
- Fixed a bug in which currently unpinned channel groups do not unscope
  after an attempt to unscope them while pinned
- Fixed bugs in which adding/removing channels or groups were not updating
  the scope flags of the target group
- Fixed a bug in which inserting a group was not updating its
  parents for parameters that do not have channels on them
- Fixed a bug where checking if a key is on an integer frame, we where
  using the tolerance as if it was expressed in frames instead of seconds
- Fixed a bug in chscope where it would not list scoped parameters
- Chscope -f shows the flag status
- Fixed bug in which the channel group key button was not adding keys to
  parms without channels
- Fixed a bug where removing a parameter from a group and undoing would
  create a channel on the recreated parameter

Speed:
- Made the scope flags update much faster
- Made scoping many channels faster

mplay

Fixed a variety of problems with the mplay blocking tool:
  - Frames would disappear if moved outside the original frame range
  - Fixed a crash if the start frame was moved backwards
  - 'Export Blocking Changes' now dims if all the frames are moved back to
    their original positions.
  - The NT mplay flipbook no longer is 'Always on Top' as this gets in the
    way of viewport flipbooking.
  - The frame range no longer snaps back to the original range when frames
    are moved.
  - When changes are exported back to Houdini, the frames immediately turn
    blue (unmodified) instead of waiting for a redraw to do this.
  - Homing on the playbar causes an immediate redraw to show the home.

Operators

Can now select a network box and do group operations (e.g. add a group to
the network), and the network box's contents will be automatically
considered for the operation (e.g. the netbox's contents will be added to
the group).

Operators

Fixed bug where creating a custom operator from a node in a netbox removed
that node from its netbox

Operators

Support to merge files containing network boxes via the hscript command
mread, or the "Merge File" option in the File Menu.

Objects

Manipulating of bone with the bone tool (not bones), is now more stable.
The crash is fixed.

Licensing

The tools: aconvert, easy, aappend, aclip, acombine, ainfo, aplay,
areverse, claudio, clchan, clchn, clcp, clphone, mcacclaim, mcbiovision,
mcmontanal, and motion_analysis now run any token.

User interface

Fixed crash associated with connecting to indirect inputs.

SOPs

Fixed primitive filter in delete sop which was sometimes being applied to
wrong detail.

Operators

Do layout selected tiles if there is only one selected. Fixes hang
when a child (that is located above its parent) is selected.

Operators

Fixed hang when trying delete node, but user mask restricts access.

7.0.151

COPs

Fixed a crash in RotoShape when deleting points.

7.0.150

User interface

Fixed bug that caused the flipbook to wait for external events (such a
mouse move) to proceed.

SOPs

Fixed infinite loop problem with OTLs which use a Switch SOP to decide
their output.

ch

Fixed a major bug when autoscoping and following channel references
which was resulting in invalid channel references being created and
scoped.

7.0.149

User interface

Fixed a bug that caused drag and drop of parameters to no longer work,
and caused slow refreshes in the viewport.

CHOPs

Fixed numerical stability problem when cracking a rotation matrix near a
Gimbal lock situation.

ch

The chgpopulate command will now add all auto-scopeable parameters
and channels to the groups.  The -a and -n options have been removed and
the -c option now means to only add parameters with live channels.
The -f option now supports spare channels and will add a subgroup for them.

ch

The parm list defaults to display mode in the channel editor.

7.0.148

ch

Fixed some problems in the parm list when adding/removing channels from
the selected parameters.

ch

Added some menu entries to the parm list RMB menu to pin/unpin channels
to the scope.

ch

Added a -z option to chscope command to clear the scope.

ch

- Updated the chcommit command so that it will include parameters that
  don't yet have a channel (if they are scoped).
- Hitting the global 'Set Key' will now also set the key on parameters that
  don't yet have a channel (if they are scoped).

7.0.147

VEX

A bug was fixed when derivatives were required for variables
which were imported from point-cloud textures.  This was primarily
noticable in pcunshaded() loops.  Derivative computations are
performed slightly differently inside pcunshaded() loops now.
Please see VEX documentation for details.

VEX

There are two new VEX functions to make transform matrices.  These
functions take two vectors which determine the basis vectors for
the transform matrix.  Please see VEX documentation for more
details.

SOPs

There is a new SOP (PolyFrame) available through proto_install.
This SOP will compute a "frame of reference" for points based on
primitive connectivity.  This frame of reference will be computed
in a consistent fashion so long as the topology of the primitives
remains constant.  This SOP can be used to create a per-point
transform from a rest position to a deformed piece of geometry.

7.0.145

ch

- Added pinned flag on paramaters: a pinned parameter won't
  unscope when you scope other things.
- The behaviour of the channel group tree is much more
  complicated.  You can now:
- Click the scope icon (pin if scoped, otherwise scope if unscoped).
- Shift-click the scope icon (toggle scoped -- will unpin if
  necessary).
- Shift MMB the name of a group (scope a group).
  New behaviour:
    - ctrl-MMB the name of a group (toggle pin)
    - ctrl-shift MMB the name of a group (toogle pin, but add to
      scope if pinning)
- Added add to take, remove from take and create take on the
  channel group tree

7.0.144

ch

Parameters must now be explicitly flagged as being autoscopeable.  These
parameters are now scoped along with those parameters containing channels
when autoscoping is enabled.  Flagged a subset of the object parameters
to be autoscopeable.

7.0.143

COPs

Flipbooking a COP with an arbitrary frame range now sets that frame range
in mplay properly.

mplay

Flipbooking and rendering 16 bit floats to mplay now works correctly.

User interface

Do not grow inputs when disconnecting. Changed multiple connections wiring
order to be based on layout, by y in vops/cops and by x everywhere else.
Multiple connections now match in which input/output the connection instead
of just defaulting to the first. For ordered input, the specified
connection is maintained while other selected nodes are wired by layout.
When connecting unordered input of a node containing ordered inputs, none
of the other selected nodes are connected to the ordered inputs.

User interface

Relaxed restriction on playback range slider ui to animation range when
"Restrict playback to Start and End frames" is off.

SOPs

Fixed a bug in the Deform SOP that caused stale attribute offsets to be
used in Fast Deform when capture weights are removed.

ch

We no longer save the autoscope flags on parameters which have not
been explicitly changed by the user.  This is much more robust
because it allows those parameters to follow the defaults determined
by the parameter template.

mantra

When rendering geometry that had a mix of polygons and other
primitive types as sub-division surfaces, mantra would have
crashed.  This bug has been fixed.

ch

Scoped channels are now automatically flagged for display.

ch

Fixed a bug with sorting the scoped channels.

Operators

Parameters do not default to autoscope unless they are flagged as
able to contain a channel.

ch

In the volatile modify channels state, the LMB now does an "interpreted"
drag instead of bringing up the ladder.  Most parameters just map the
horizontal motion of the mouse into the parameter range to modify the
parameter.  Translate parameters are special in that we attempt to
interpret the mouse motion within the local space of the node to determine
the appropriate value change.

VOPs

Banana Skin VOP and Periodic Noise VOP now work in the RSL context.

ch

Added ability to extend the selection in the parm box to include all
channels with the same name as those already selected.

7.0.142

The netmantra (and rscript) applications have been removed from
the Houdini distribution.

The netmantra command was used for a version of mantra prior to
VEX to perform network rendering.  The rscript program was used in
conjunction with netmantra for this task.  These tools are no
longer available.

SOPs

Fixed bug in CaptureMirror SOP where it would incorrectly cook if the
following steps occurred:
- the display flag was set on its input sop
- the display flag was set on some node on the capture mirror or downstream
- the capturemirror is recooked

User interface

Fixed snapping to distinguish between front and back.

ch

Added popup help for the display column in the parm box.  Also fixed
a bug which would allow you to close the channel group gadget when
it was the only gadget open in the channel list pane.

User interface

The parm scoper no longer updates itself when it is not visible in the UI.

7.0.141

Scripting

Fixed bug that prevented the metaweight() expression function from adding
interest on the specified SOP.

ch

Fixed bug in the parm box where we were not correctly using the channel
colour for spare channels.  Also allowed using the parm labels even when
using full channel names.

User interface

Fixed problem with the object transform handle where pivot mode would
work only after moving the object first while not in pivot mode.

Jive

Consistent keying hotkeys:
- k               is the global add key on scoped parameters hotkey
- Ctrl+k          is the pane-specific add key hotkey
- Ctrl+Shift+k    is the pane-specific remove key hotkey

- Ctrl+k (snap options) needed to be changed to Ctrl+Shift+j

ch

The parm box now has hotkeys to select all, select none, display all
and display none.

SOPs

When deforming normals in the Deform SOP, the result is now always
unit length. Previously, they might not have been if the point was weighted
by multiple bones.

7.0.140

SOPs

Fixed bug that caused global handle in PolyExtrude not to be centered around
edge selection.

ch

The parm box now has an optional column to manipulate the display
flag for channels.

Render outputs

In output drivers, if any of the executed callback scripts return with
a non-zero status, then the render is aborted.

Scripting

After every executed hscript command, we now set the status variable to
be the exit code. By default, the value is 0.

The exit command now takes an optional integer status code which also
sets the status. The unix command now also returns the exit code in the
status variable.

User interface

Fixing problems where Houdini would exit with an unhandled signal
if you did a search and java could not be found.

ch

The value fields are now optional in the parm box.  Combined with
the new mode recently added, this will allow this gadget to replace
the old brief mode in the scoper tree once the channel editor
supports the new display flag for channels.

VEX

There is a new pragma in VEX to specify "tags" on parameters.
These tags are discussed in the compiler help in the online VEX
documentation.

7.0.138

ch

- Creating nested channel groups no longer brings up the channel editor,
  instead, an optional dialog is displayed.
- The chgpopulate command no longer supports the -w option.

VOPs

Enabled the following vex VOPs in the rsl context: cellnoise, cellcracks,
skin, stonewall, and cardboard.

7.0.137

COPs

Fixed an SSE optimization problem with 16bit -> FP conversion code.
This would occasionally result in bad pixels along the right side of
the composite buckets.

ch

The parm box now has a new mode of operation where it marks scoped
channels for display.  The channel editor does not yet respect
this new channel flag.

SOPs

There is a new SOP, the Connectivity SOP.  This allows you to
create an attribute on either points or primitives.  The new
attribute will have a unique number for each collection of points
or primitives that is connected.  This can be used to break up
geometry according to connectivity information.

SOPs

MMB to get the info text on a SOP will once again cook the SOP.

7.0.136

VEX

Point cloud textures no longer core dump when their results are
required for derivatives in ray-tracing.

Operators

Fixed undo when deleting a node that was the second input to a Merge
SOP with three inputs.  Previously the undo operation would not
reconnect the Merge SOP inputs correctly.

Digital assets

Before running operator event scripts (OnCreate script, OnUpdate script,
etc) we now clear the noalias variable if it is set (and reset it
afterwards).  This means these scripts can safely use command aliases
(though it should still be avoided because aliases in one Houdini
session may be set up differently than in another Houdini session).

VEX

Executing the dsreload command now forces a reload of VEX functions for
operator types defined in .vex files on disk.  Operator types embedded
in OTLs already had this behavior.

Operators

The OPcustomize file entries now work for scripted operator types such
as those loaded from OTLs.  Also added hscript commands that correspond
to all the actions that can be performed in this file.

7.0.135

mantra

A bug with opacity culling in mantra was fixed.

image

The izg tool will now auto-compute near/far planes when creating a
gray scale image.
There's also a new option to specify that an inverse image should
be created (black near, white far), which is actually probably
more the expected result.
Half-precision floating point data is also now fully supported.

VEX

RAT file textures now support half-precision floating point
images.

ch

Added global hotkey (Alt-0) to clear the current scope.

Scripting

Adding an updateui hscript command.  This command tells Houdini to
process any events that have been queuing up.  These events include
externally-generated ones like mouse clicks and keypresses but they
also include internally-generated ones that may have been queued as a
result of executing other commands.

7.0.134

ch

The Floating Channel editor now starts with the parameter list on by
default and the parameter scoper off by default.

ch

Minor bug fixes for the parameter box.

mantra

The -b option in mantra now accepts "half" to render
half-precision floating point images.  These have a high dynamic
range, but only consume 16 bits per channel.

documentation

As 16-bit floating point numbers are becoming more common in
Houdini, here are some statistics about what a 16 bit float can
store:
- Largest value is 65504.0
- Smallest non-zero value is around .001
In general a half precision floating point number will yield
around 4 digits of precision.  For many cases (i.e. texture maps),
the advantage of requiring half the memory is a clear advantage.

image

It's now possible to specify more than just 8 and 16 bit depths
for image conversion using iconvert.  The -d option takes:
-d byte,char,8    = 8 bit unsigned int
-d short,16    = 16 bit unsigned int
-d half        = 16 bit floating point
-d float    = 32 bit floating point
This only works for formats which support the bit depth specified.
For example, SGI images don't support half-precision floating
point images.

SOPs

Added "Enforce Consistent Topology" parameter to the Subdivide SOP

VEX

In all shading contexts, there are now functions to evaluate the
BRDF's for the built-in lighting models
- specularBRDF
- phongBRDF
- blinnBRDF
- diffuseBRDF (both Lambertian and Oren-Nayar)

The texture/colormap functions in houdini now support access of
images stored in half-float (16 bit float) format.

image3d

i3dconvert and i3dinfo now have support for tiled block files.
The tiled block format provides a memory efficient way of storing
point cloud data.

7.0.133

expr

Fixed the mousepane and mousepath expression functions when the mouse
was over a viewer window, such as a 3D viewport or a CHOP viewer.

Digital assets

Fixed the parser for OPlibraries files so that "//" and "/*" are no
longer recognized as comments.  This means that UNC paths and wild
cards are much easier to use in these files.

Scripting

Added an option to the dsoinfo command to display only operator types
defined by DSOs, and omit scripted operator types.  Fixed the help for
this command to match the current usage.

VOPs

The addattribute VOP now has support for the "vector" and
"indexpair" keywords to the addattribute() VEX function.

User interface

Speeding up the saving of capture weight sops to the hip file.  This
decreases hip file save time dramatically in some cases.

VEX

The shimport() function has been added to the surface and fog
shading contexts to import values from shadow shaders.

ch

The new parameter scoper no longer allows the user to select nodes.

ch

The chscope command has a new '-a' option which will allow the scoping
of parameters that don't yet have a channel.

SOPs

The scatter SOP was changed to have new methods of
- Interpolating between area and the alternate attribute
- Computing nearest distance

Digital assets

The "Create Subnet Operator Type..." menu item for creating an empty
new subnet operator type has been removed from the Ctrl-RMB menu of the
network editor.  It was often being confused with the "Create Type
From..." menu item on the RMB menu of node tiles.  To create an empty
new subnet operator type, use the "File->New Operator Type..." menu.

VOPs

Added VOPs for the new point cloud texture operations.

VEX

There is now support in VEX for point cloud textures.  Please see
VEX documentation for the pcopen(), pcimport(), pcexport(),
pcfarthest(), pciterate(), pcunshaded() and pcfilter() functions.

VOPs

Fixed recently introduced bug that would cause Houdini to crash when
adding a Parameter VOP in a VOP Network.

7.0.132

Operators

Added the autoscope flag to parameters

Jive

Added graph mode copy and paste, first draft

Hscript support for netboxes added, along with a big list of other
enhancements including subnet/OTL support.

7.0.131

User interface

When multiple viewports are open in the geometry viewer, only
the viewport containing the mouse is guaranteed to update.
The other viewports will update only when there are no more
input events to Houdini.  For example, if you play, scrub, or
move a handle quickly in one viewport, the other viewports
won't update until you stop playing/scrubbing/moving the handle.
There is a preference to switch back to the old behaviour.

User interface

Performing many miscellaneous performance optimizations for
hip file loading, 3D display, and playback.

7.0.130

User interface

Panes which have teared off of desktops now get saved in the desktop file.
Desktops saved on or after this version will not be loaded in prior
versions.

ch

Added a new volatile modify channels state for objects, sops and
pops.  In this state, the user can use the ladder handle to change the
selected scoped channels.

ch

The parameter box now modifies a global scope selection instead of
merely maintaining an internal selection.  Also fixed a minor bug
with selecting.

Digital assets

Fixed crash that occurs when loading locked custom subnet operators
that contain VOP networks.

7.0.129

User interface

Added check on playback range and global animation range for reverse
values. Added hotkey for edit keys button. Fixed update of range start and
end fields when range is restricted.

7.0.128

mplay

Added proper negative and fractional frame support to mplay when the -g
option is used to load files. The new command line options, -I and -N,
disable fractional and negative frame support respectively, treating '.'
and '-' as normal filename characters (useful for some sequences which
use these characters as separators, and would be interpreted incorrectly).

ch

Added drag and drop functionality to the parameter box and updated
the help prompt.

7.0.127

COPs

The defocus COP now supports per-pixel mask defocusing.

User interface

New consolidated playbar in place with option to display of ticks, audio,
keys. New option to display range slider below the playbar. Added button to
control edit/non-edit state of consolidated playbar/dopesheet. When keys
are hidden, keys are also locked in consolidated playbar/dopesheet. Look
and use of range slider and dopesheet selection changed.

SOPs

The Deform SOP can now deform user specified vector attributes.

User interface

When a viewport flipbook is aborted, we now show what has been generated
so far.

7.0.126

Scripting

Fixed the memory command on Linux when more than 1 GB of memory is used.

SOPs

The resample SOP now correctly interpolates the point and vertex
attributes. Previously the Resample SOP used incorrect blending
weights sometimes causing visible artifacts.

User interface

Fixing a bug with reading 8-bit aiff files that was introduced in
7.0.122.

Digital assets

Fixed the "Save Operator Type" operation for saving assets to an OTL file
with spaces in its path.

Digital assets

Fixed bug that would create an invalid dialog if more than one Label
parameter existed in an operator type.

Custom panels

Fixed certain crashes with calling cuset commands within custom panel
callback scripts.

The parameter box now displays a prompt.

ch

Replaced the channel scoper and the parm chooser in the Channel Editor
with an initial version of a new parm scoper tool.

ch

Added support for toggling the expression state in the parameter
box using the MMB.  Moreover, the state is now indicated in a way
more consistent with normal parameter dialogs.

7.0.123

cmd

Fixed bug in expression language that could prevent some expressions
containing escaped quote characters from being parsed correctly.

cmd

Fixed bug in expression language that could prevent certain strings from
being interpretted properly if they contain the ';' or ')' characters.

POPs

The english name of the AngVelocity POP has been changed to
Angular Velocity.

Jive

You can now do a one time add or scale in the animation editor by typing
in +value or *value in the appropriate UI field (T V S A, at the bottom)
it will use the scale handle's pivot if the scale handle is up,
otherwise, just frame 1, value 0

ch

Added support for scoped parameters to the parameter box and made the
selection behavior more consistent with the tree gadgets.  Also added
an option to use the parameter labels instead of the channel names in
the list and reworked the hotkeys a bit.

7.0.122

User interface

Adding the ability to read in .wav and .mp3 files on all platforms.

User interface

The bundle list pane settings are now saved when Houdini exits and they
are restored when Houdini starts up.

User interface

When in real time and resetting to frame 1, the playbar will no
longer rarely jump to the last frame hwen playback restarts.

houdini

Hitting Shift-C while the mouse is over the play bar will no
longer crash Houdini.

7.0.121

cmd

Added chkeyrm that removes keys using a range or a frame number

Jive

Optimized animation editor handle redrawing

User interface

Lights with no colour are now omitted from being enabled, freeing up
an OpenGL lighting slot. We may have many lights with no colour
contribution set up in the scene for the sole purpose of generating shadow
maps.

User interface

A new "OBJ Cache" tab has been added to the general preferences for
"Objects and Geometry" section. The OBJ Cache tab allows setting the
general parameters of the object cache.

Note that the "SOP Cache" section of the preferences has been moved
to the "Objects and Geometry" under "SOP Cache" tab.

7.0.120

SOPs

Fixed bug that would cause Houdini to crash when putting down a Platonic
SOP.

channel

Fixed divide by zero in evaluating a spline() function when it was on a
single key in a channel.

User interface

- The bundle list pane now has buttons for selecting and deselecting
  all operators. This option can help clear the selection before the
  operators are selected for addition or removal from the bundles

- In the bundle pane, the filter guessing is now turned off by default.
  To turn it on, click the "Set filter type" button in the pane toolbar.

7.0.119

User interface

Added optional small look for range slider, now used below playbar.
Regular range slider still used in mplay, gplay, and JIVE.

ch

Implemented more of the RMB entries for the parm box parameter fields.

User interface

Added ability to remove-select with ctrl and add-select with ctrl+shift in
addition to the existing ability to toggle select with shift. (Only
available in replace select mode).

7.0.117

Jive

- In the dopesheet, keys are "ghosted" on group rows which do not represent
  a key which exists on all channels in the row.

7.0.115

COPs

The Border, ChannelCopy and UnPin COPs are now maskable.

COPs

All the 2-input composite operations now have an optional mask input. This
includes: Add, Atop, Average, Diff, Inside, Max, Min, Multiply, Outside,
Over, Screen, Subtract, Under, XOR and Composite.

ch

Channel groups and scope channel list can now keep channel memberships
even if a channel does not yet exist.  In other words, we can add parms
to channel groups and scoped channels.

Added the -n option to the main apps (Houdini, Hselect, Hhalo, Hescape)
which sets the cook mode to Never, regardless of the cook settings of any
of the loaded files or scripts. Useful for fixing 'busted' hip files.

7.0.114

COPs

All of the COP filters now have their mask and scope parameters in a new
Mask tab, for consistency.

'Resize Mask to Fit Image' has also been added as a mask parameter. If on,
the mask will be scaled to fit the output image resolution (if it differs).

Note that this scaling adds to the cook time, and is quite significant for
simple COPs like 'Bright' or 'Contrast'. If the node is changing more often
then the mask, it is more optimal to insert a scale COP before the mask to
avoid the extra scaling overhead on each cook of the masked COP.

Render outputs

Lights which have a non-zero dimmer value but with a colour of (0, 0, 0)
are now also used when generating shadow maps.

Custom panels

Fixed crash that could occur if the callback script on a custom panel
attempted to delete a custom panel gadget via curm.

POPs

Changed intersectVertexWithDeformingGeometry to compute hits in time
instead of dist units to allow for hits with unmoving particles.

User interface

All text editors in Houdini can now accept keys from the numerical keypad.

User interface

Fixed a bug that could cause Houdini to crash when an active window
is suddenly destroyed.

Digital assets

Significantly reduced the amount of events generated when a node with
many parameters is dragged onto the "Operator Type Properties"
parameter page.

Objects

A new parameter has been added to the Rivet object. The parameter
name is "Point Weights" and it defines the weights applied to the
three points from which the rivet origin is calculated. This allows
a finer control where the origin is placed on the plane defined by
the three points, for example (0,5, 0.5, 0) positions the origin
half way between the first two points.

POPs

Fixed a bug where the collision pop would always clamp negative cook
times for the collision geometry to zero.  This was breaking collisions
during negative frames.

7.0.113

Custom panels

When deleting custom panels, we now also do two things first:
- Disallow deletion if the custom panel file on disk is read-only.
- Prompt the user to ensure that they really want to delete the panel.

ch

The node headers in the parameter box now use the whole row instead of
just the name column.

COPs

Fixed a bounds computation problem with the Transform COP when the pixel
aspect was not square. This caused odd streaking problems when rotations
were performed.

Objects

Fixed crash in Morph State when switching layers in a network the user
has manually modified.

HDK

Turning RTTI on when Houdini is compiled compiled with gcc 2.96.
(It was already on when using gcc 3.x.)  Also fixing hcustom
to no longer use -fno-rtti and -fno-exceptions when it should
not have used those options.

ch

Moved the hotkeys for the channel list gadgets into their own context.

7.0.112

User interface

Initial commit of the parameter box functionality.  It can be accessed
from the channel list pane or channel editor.  This is still very much
a work in progress.

Scripting

A new hscript command, "objcache", is now available for the object
cache management. Please, see the help for details.

Objects

A new object parameter is now available on the Misc tab that allows
caching the object transforms. Caching may improve animation playback
time by remembering the transforms for several frames for a given object.
During the playback these transforms are retrieved from cache rather than
being computed on the fly. Caching bones and sticky objects yields best
performance gain. To enable transform caching for a given object,
turn on the "Cache data" parameter on the Misc tab of the object
parameters dialog.

Note that there is  a limitation to how many transform can be cached. If
this limit is reached the least recently used object's transform will
be replaced by a new one. On long playbacks of many objects, there
may not be any performance gain unles the allowed cache memory is
large enough to accommodate all cached objects. The "objcache"
hscript command allows the management of the object cache size.

SOPs

The scatter SOP now correctly handles the case where an attribute
with negative values is used as a probability distribution
function.  Negative probabilities are assumed to be 0.

SOPs

Improved format for saving stencil mappings in the Capture Layer Paint
SOP.  This prevents the problem of root paths changing unexpectly when
creating an instance of an OTL.  Old Capture Layer Paint nodes will be
automatically converted to the new format on their first cook.  An error
will occur if the proper skeleton root cannot be found.

The izg program has had several bugs fixed with it.  As well, a
new option was added to determine the bit-depth of the output
image.  The options are the same as the -b option for mantra.
Images created will now be single channel luminance images (where
the format supports single channel images).

SOPs

You can no longer create attributes with spaces or other invalid
characters with the Measure SOP.

SOPs

The Group SOP will no longer evaluate the creation name when
creating the pop-ups in the combine tab.  This means a creation
name of "foo$F" will show up as "foo$F" rather than "foo1".  This
was done to prevent infinte recooks in cases where the creation
name was a point expression to animated geometry.

7.0.110

Audio

The Audio Panel in Houdini now supports loading Audio files, in addition
to sourcing audio from CHOPs. Additional options have been added to the
audiopanel command to support these new parameters.

User interface

Updated the playbar look, so that it now shows tick marks, the current
audio, and scoped keyframes. All of these display items can be turned off
through the playbar Ctrl+RMB menu (Show Ticks, Show Audio, Show Keys).

7.0.109

Jive

Made using the mouse in the animation editor more responsive especially
with lots of channels.

VEX

There's a subtle difference between 3 floats as an attribute and a
vector of 3 floats.  Internally, the geometry can store an
additional type qualifier to indicate that the attribute needs to
be handled by transforms differently.  At the current time,
there's a mis-named "vector" attribute which treats vectors as
normals for transforms.  The "N" attribute is an example of such
an attribute.

Previously, in VEX, there was no way to specify that attributes
created during the running of VEX code should be anything other
than an array of floats.  The addattribute() VEX function has been
modified to scan for type qualifiers.

Please see the VEX documentation for further details.

Scripting

Added metaweight() expression function.

User interface

A new environment variable HOUDINI_COLOR_PICKER_GAMMA was introduced
for gamma correcting color chooser and color parameter displays. When
this parameter is set to value other than 1.0, then the color gadgets
adjust their color based on the curve defined by the gamma exponent.
To set this variable either before Houdini starts or at the hscript
command line type "setenv HOUDINI_COLOR_PICKER_GAMMA = 2.2"

User interface

A bundle in the bundle list pane now accepts drag and drop of subnets
regardless of whether the filter allows them or not. This is intended
for subnets containing lights because for such subnets the contained
lights are added to the bundle on the drag and drop.

Custom panels

Fixed crash when clicking on a custom panel button when currently editing
the panel.

Operators

Fixed crash when using opparm -c command on a parameter which then caused
the node to be deleted.

mantra

There should be no cracks or holes due to missed samples in mantra
renders anymore.

7.0.108

Render outputs

When the render button is in on an output driver (or the render
command is run), the current working directory of the .hip file is
temporarily changed to the output driver being rendered (i.e.
opcf).  The directory is restored at the conclusion of the render.

VOPs

The order of the parameters in the texture VOP has been altered to
match the order of the input.

VOPs

The clamp VOP now handles vector4 properly.

User interface

Fixed bug where hold down space bar in network pane and clicking
(without dragging) brings up toolbar and network pane becomes stuck in view
state.

Custom panels

Fixed bug where when loading custom panel files from a hip file that
already existed on disk, the custom panel gadget values would be set into
the wrong panel.

VEX

The VEX pow() function now correctly works on vector4 types (as
stated in the documentation).

7.0.107

HDK

When writing VEX plug-ins, it's now possible to force the plug-in
function to have a return code, even if it modifies multiple
arguments.

Due to this change, all VEX plug-ins will have to be re-created,
regardless of whether they use the HDK libraries or not.

Render outputs

RIB generation has been generalized in Houdini.  There is now a
file ($HH/ROPfeatures) which specifies the list of renderers
supported by Houdini.  Each renderer has a list of features which
it supports.

The file not only allows new renderers to be added to Houdini, but
also allows for customization of RIB feature sets.  For example,
it has been noted that by just specifying the "trace" attributes
for prman11, the geometry is persistent and impacts the memory
footprint of the render.  We include prman11.0-rt which turns off
ray-tracing in prman11, but still supports all the other prman11
feature set.

There is further documentation in the ROPfeatures file.

Objects

Fixed problem with causing objects to recook whenever the contents of
operator groups were modified.

Jive

- Changing frame does not require the animation editor to redraw, so it is
  much faster
- Made default level of detail high instead of maximum
- Hitting q to create a time group creates a time group at the
  current time if no keys are selected
- Made the pivot for the scale handle much bigger and bolder

POPs

Fixed bug to allow negative turn speeds.

mplay

Eliminated interface flickering when rendering to mplay.

7.0.106

User interface

Changed look of range slider. Dopesheet now has a view mode to allow for
panning, zooming, and unrestricted scrubbing (accessed by holding down
spacebar). Selection labels are now selectable and hover at ends of
dopesheets when selection is out of view. New global animation option
allows for restriction of playback range to animation range start and end.

Rendering

Fixed problem with sho and the Houdini display driver for prman. It is now
compiled using prman 11.5.3.

fui

Sort channels for drag and drop so that the huds appear in the right order

7.0.105

mplay

Added fullscreen blackout mode to mplay (everything disappears but the
image). This can be activated by the hotkey Ctrl+f, from the
Settings->Fullscreen option, and the -F command line option.

Ctrl+f will exit fullscreen mode, as well as Esc (for people who
accidently get into that mode and try the common exit procedure).

New viewers can be spawned and dialogs opened on top of the fullscreen
mplay, if desired.

User interface

The NVidia Half float extension (16bit float) is now supported for
displaying rasters. It is auto-detected; any video cards that do not
support this extension will promote their 16bit float rasters  to 32bit
float.

OpenEXR now reads into COPs/mplay in its native 16bit mode.

HDK

The 16 bit float data type is now supported by the Image library.

Objects

Fixed bug where renaming an operator that was listed in the Visible
Children subnet object parameter would not update.

It is now possible to use the op: syntax to specify paths to
geometry objects in VEX.  This is only supported in the OP
contexts at this time (not supported from within shaders).
For example:
Cd = metaweight("op:/obj/model/merge1", P);

VOPs

A case where a malformed texture call could trigger a crash with
non-rat textures is fixed.

Operators

Fix a bug with undoing the deletion of nodes in the middle of
chains which was introduced in 7.0.92.  Unfortunately, this
reintroduces bug 15078.

SOPs

The AttribCreate SOP now produces a warning when attributes with
spaces in them are created.  The attributes will be changed to
conform to the required standard.

7.0.102

SOPs

Fixed bug that could cause invalid stencil mappings in the Capture Layer
Paint SOP.

Scripting

Fixed missing space in output of opbls -l hscript command.

COPs

Added "16 bit floating point" to the list of supported Compositor data
formats.

mantra

Rendering sub-division surfaces in mantra should be more memory
efficient and also faster in most cases.

7.0.101

COPs

Removed the 'Defaults' tab from the Compositing preferences in the
Settings->Main Preferences dialog. Saving these defaults can now be
done through the Composite Project settings, using the 'Save As Default'
button.

The defaults are saved to $HOME/houdini7.0/compproject.pref.

7.0.100

COPs

Added the Mask COP, which masks out an area of the input using a plane
from the mask input.

Custom panels

When calling callback scripts from custom panels, we now explicitly set CUP
and CUG to reflect the current gadget and panel.

SOPs

Fixed bug that could cause PolyExtrude to compute edge locations in a
backwards incompatible way from prior versions of Houdini.

Operators

Added the chgpopulate command.  Also added menu options from the
Operator pane menu and the node RMB menu to create nested channel groups
corresponding to node parameter folders.

Licensing

Houdini 7 now requires a version 7 or higher license.

7.0.99

Render outputs

Fixed bug where the RenderMan ROP's "Max Specular Depth" parameter was
being overrided by the Object's "Reflect Bounce" parameter even if it was
disabled.

SOPs

Fixed bug in Capture Layer Paint that could cause loss of stencil
mappings when the rootpath changes unexpectedly.

7.0.98

Jive

- build handles for all channels (not just displayed channels) so that
  changing the number of graphs doesn't result in handle-less channels

COPs

All generators now have Effect Amount sliders, and their own separate
Mask tab in the dialog for the mask parameters.

Scripting

Fixed bug with not terminating loops when entering hscript interactively.

7.0.95

SOPs

Added "Preserve Groups" options to the Copy and Duplicate SOPs.  When
set, the copy groups are not deleted before the each copied geometry is
added to the group.

User interface

- Fixed bug when deleting the current node, the resulting tree has no
  current node even when one is required
- Deselecting everyting resets the current node to the "root" (actually
  first-row-node), which is where you want it -- good for adding lots of
  groups
- Made redraw request into deferred redraw requests in treeviews, leading to
  fewer UI events hopefully

Operators

Fixed crash when opparm is run with insufficient number of arguments with
the -v option.

CHOPs

Fixed crash when using a chop expression function in the From parameter
of the Rename CHOP that referenced an invalid track name.

VOPs

It is now possible to "Create New SHOP Type" from an RSL VOP Network.
The SHOP operator type definition is placed in an OTL file, and the
shader files (.sl and .slo files) are put in a directory of your choice.

Operators

Fixed a bug where changes to the inputs of a subnet would not cause
recooking of nodes inside another subnet that was connected to the
indirect input of the top level subnet.

User interface

It is now possible to open the hotkey manager dialog by holding
Ctrl+Shift+Alt when selecting a menu item in the right mouse menu of
nodes or in tree controls.

Scripting

The opchangetype command has been changed to be more robust when the
nodes inside the node being changed run creation or deletion scripts
which affect the number of nodes at the subnet level.  This also
affects the "Create Type From..." operation.

SOPs

Fixed bug in Subdivide SOP which caused a crash when using
"No Edge Division" on a group.

SOPs

Fixed a bug in CaptureLayerPaint that prevented painting when a point group
was selected.

mantra

Mantra renders motion blur faster.

7.0.94

Scripting

The $OS local variable will now cause its operator to recook if its name
has changed.

COPs

Added the snap options back into the COP viewer UI. It mysteriously
vanished long ago. It is now located in the upper left corner.

User interface

Added 'Bypass Selected Nodes' to the worksheet menu (Ctrl+RMB) and assigned
it the hotkey Ctrl+b.

User interface

Bypassed nodes now have their icons dimmed slighly, with a small X drawn
over them. The icon is also converted to greyscale if it has any color.

This keeps the node type icon recognizable, while indicating that the node
is bypassed.

Objects

Depth Map filenames are now always stripped of leading and trailing white
space.

Scripting

On Linux, the memory command now outputs the virtual memory size as well.

Operators

Fixed bug where running opchange could modify non-writable operators.

User interface

Fixed network editor refresh problem when in list mode with expose flags
displayed. Previously, changing the expose flag from the textport via
opset would not properly update when changing the flag from on to off.

Render outputs

Fixed bug where after appending a ROP Output Driver after a SOP, renaming
the SOP would not update the SOP Path parameter to reflect the change.

7.0.93

Scripting

Fixed bug in hscript on Windows that would force the user to hit enter
twice before a command is executed.

COPs

Added some primitive shapes to the RotoShape state. Instead of freehand
drawing a curve, the following shapes can be generated and positioned:

  - Regular N-sided polygon
  - N-pointed star
  - Circle (or ellipse; a ring can be created with a hollow circle)

Fixed the Undo's for this state. They are now complete, and no longer
crash.

Corrected the shapes/curves for the image aspect ratio, so that
rotating the shape doesn't distort it.

NURBS support has also been temporarily removed from the state until it
works correctly.

User interface

Fixed audio scrubbing using the mouse on the playbar to not sustain when
turned off.

Jive

- Added an isolate function in the channel editor (from pane menu and hotkey)
- Channel lister gradients channels with selected handles
- Copy and paste work with channels in order
- Switching pane type removes jive pane menu entries

Scripting

The opscript command with recursion turned on no longer recurses into
locked subnet nodes.  Unlocked subnet nodes are created with the new
-u option to opadd, which causes the node to be created in an unlocked
state.

7.0.92

User interface

Fixed crash that could occur when trying to copy parameters that contained
extremely big expressions.

ogl

We now maintain the image aspect ratio of manually placed background
images by increasing the appropriate scale rather than always affecting
the height.

User interface

When the hscript java command is run with the -w option, it is no
longer possible to click buttons on the Houdini interface until java
exits.

Operators

Fixed bug which would cause bad input connections to nodes with variable
numbers of inputs (like the Merge SOP) when undoing the deletion of a
node connected to any but the last input.

7.0.91

SOPs

The group parameter of Capture Layer Paint now shows point groups in the
popup menu.

ch

Fixed a problem with disabling not working on the last frame of a
disabled channel segment that caused animation popping.

Objects

The objpretransform command now allows reading of pretransforms on objects
which are non-writable.

Scripting

Added a new option, -u, to the opadd command.  This option causes the
new node to not load its contents if it is a custom subnet operator
with locked contents.  The new node will be created empty and unlocked.

Scripting

Fixed the output of the pane command so that it is now in the correct
format for executing this command directly in hscript.

We don't need to evaluate on channels when putting keys

The pending time is in local time and was not being updated when
the channel was scrolled

Operators

Prevented some unnecessary evaluation of string parameters when building
parameter dependency information.  This should prevent some unnecessary
cooks when using expressions in string parameters.

spy

There was a bug in spy that prevented more than 8192 files in a
single directory to be displayed.

Audio

Fixed problem with audio playback when sustain was turned off.

Audio

Fixed crash that could occur when turning on Time Slice mode in the Houdini
audio panel.

SOPs

Doing a vertex smooth operation with the UVPaint Brush on a hull
whose rows and columns are different sizes will no longer crash.

7.0.90

Operators

Fixed bug in opselect and opflag expressions that could cause Houdini
to crash in certain cases.

7.0.89

User interface

Fixed problem when turning on audio that constantly replayed the first
audio chunk.

CHOPs

Fixed bug that would occasionally crash the CHOP Channel Exporter dialog.

7.0.88

SOPs

The GEOio table will now properly handle entries which have only a
write command.

7.0.87

User interface

The View->Flipbook dialog now has an entry for Background Images. A
background image sequence can be specified, which will appear behind
the rendered elements of the viewport in the flipbook.

Operators

Fixed bug with opchangetype on nodes that were contained in bundles or
groups.

Operators

Fixed bug with undo when nodes contained in bundles were deleted.

SOPs

SOP_CaptureLayerPaint will no longer cause crashes when Unload is
set to Always.

7.0.86

Scripting

Fixing a bug where, if a Houdini command returned a large amount of
data, all of the data would not be sent through an open port.

mplay

Fixed 'Save Preview' in mplay, which was not saving anything but
black images.

Jive

Fixed bug that caused the scale handle to not always appear

COPs

Added a 'Fast Interactive Cooking' toggle button to the COP2 viewer,
in the top right corner of the interface.

This makes toggling this option on or off much quicker. There is also
a default hotkey ('f') bound to this button.

Fast Interactive Cooking reduces the resolution of the image while a
handle or parm slider is being dragged, and returns to normal resolution
when the handle or parm slider is released. The default interactive
resolution is 1/4 of the normal resolution.

mplay

All the histogram modes that map data vs. U or V now have the option to
graph a single scanline, specified by a slider.

User interface

Added the Audio Frame and Time Offset parms to the View->Flipbook
dialog.

User interface

Removing the old pdf documents from the Help menu.

7.0.85

mplay

MPlay now has an Audio bar, just above the Playbar. By default, it is
hidden in most profiles. It can be displayed by selecting
Settings->Audio Bar (or modifying the profile).

The bar contains:
  - Frame/time offsets for synching audio
  - A waveform display of the audio over the playbar
  - Volume slider
  - Mute toggle
  - Button to launch the 'Load Audio' dialog.

In addition, modifying most of the audio parms doesn't cause the audio to
reload.

COPs

Most of the COP generators now have an optional mask input. The generated
data is restricted to the area defined by the mask (or outside the mask).
The outside area will be black. The mask paramerers (Mask Plane menu
and Invert Mask) are located on the Image tab of the generator. The
generators affected are: Color, CornerRamp, Font, Geometry, Noise, Ramp,
RotoShape, RotoSpline, Shape and VEX Generate.

User interface

Changed option to change shading mode when modifying view such that there
is only one threshold for object render time in milliseconds. The new
shading mode when modifying view has its own cache.

7.0.84

Added a radio button for "Only Include Constant Channels", this can be
used to remove these channels

Characters

Fixed bug in Dynamic Parenting tool with a frame offset of 0 and the
child object is not writable.

Objects

Fixed bug that turned on secure selection after selecting a new point
in the Morph Tool.

User interface

Renaming a bundle properly propagates to the parameters. That is
the bundle name in a parameter is changed from the old bundle name
to the new one.

User interface

Selecting operators of a bundle via a bundle ui (yellow button),
now also selects a current node among the selected operators.

POPs

Fixed potential core dump when loading a hip file which uses RBD.

CHOPs

Fixed a problem that would cause some chop expression functions (such
as chopn, chopl) to not recook when the CHOP the referred to changed.

Licensing

Fixing a problem where, if the Houdini services were defined in
/etc/services, Houdini would try to use an invalid port number.
This problem showed up on SUSE machines.

SOPs

The Object Network node inside SOPs will now show up the proper
size.

7.0.83

SOPs

Making the delete sop an order of magnitude faster when deleting all
but a few points.

7.0.81

cmd

Fixed crash that could occur when executing scripts that contained errors.

COPs

Added the RotoShape COP, the successor to RotoSpline (which it will
eventually replace). The RotoShape has better viewport interaction,
supports the drawing of multiple splines and compositing operations
between the splines. It also fixes some of the deficiencies in Rotospline,
such as better selection handling, point insertion and NURBS curve support.

Operators

Fixed another bug where loading hip files from the File menu could cause
light masks to be improperly evaluated.

Objects

The Paint Capture Layer state now has a "Erase Single Bone Changes" mode.

Scripting

The opparm command with options -p/-c is now forcing or inhibiting
key insertion (thus overriding the Animation preferences setup). This is
the desired behaviour.

7.0.80

mplay

Added block editing to mplay when flipbooking 3D viewports.
In the View->Flipbook dialog, enable 'Enable Block Editing' when
'Scoped Channel Key Frames Only' is on (with scoped channels). In mplay,
the playbar will change to a dopesheet view, with the scoped key frames
shown. The key frames' can then be moved. Select 'Tools->Export Channel
Blocking' in mplay to export the changes back to the scoped channels.

User interface

When Houdini tries to access an OTL definition file that not
accessible, a warning is going to be displayed.

Scripting

The message command has been extended to include user defined
buttons in addition to the message displayed. Now the command
returns a zero-based index to the button that has been clicked
to dismiss the message dialog. See help for details.

User interface

The bundle filter labels from "Only allow SOPs" format to
"SOPs alowed only" format. This ensures that in narrow ui collumns
information about filter type (e.g., "SOPs") is not truncated. Otherwise
"Only allow" would show in narrow columns.

User interface

fixed minor bugs with trees

Digital assets

Fixed bug where refreshing operator definitions could lose changes to
toggle parameters.

User interface

Added new option to render geometry in different shading modes while
modifying view. Shading mode is determined by user defined (lower bound)
thresholds on the number of points contained in given geometry. (Found
under "Thresholds" tab in display options). Removed "Move Wireframe option.
Added new shaded bounding box shading mode.

SOPs

Fixed a bug in the Edit operation that would cause Houdini to crash if the
user tried to flatten the selection to the construction plane.

7.0.79

Scripting

setting a visibility on a subnetwork resets the visible children
parameter to "*" so that the all the children are visible.

Objects

Changed viewport comment parameter in camera, light, and switcher objects
from under "View"/"Viewing" tabs to under "Misc" tabs.

7.0.78

Fixed crash when copying empty channels from parameter to parameter

POPs

Fixed a bug when using the BSpline smoothing kernel in the AttribTransfer
POP.

Operators

Fixed bug with adding recursive channel references using !!ch(...)!!
notation on non-animatible parameters. Previously, renaming such nodes
would cause Houdini to hang.

7.0.76

POPs

The Wind POP will now only accelerate particles up to the local
wind speed.  This matches the description in the help.  For the
old, velocity independent, behaviour, toggle the Ignore Velocity
parameter.

7.0.74

Fixed a crash in gdxf if the file contained no group names.

7.0.73

Scripting

- chkeymv now moves all of the keys simultaneously instead of one by one
- chkeymv -r: does ranges (which support stretching and reversing)
- chkeymv -c: copies instead of moving

SOPs

Fixed a bug in the copy sop copying of the template point attributes
when one of them was internalN.

User interface

Added option to render geometry as wireframe bounding box.

7.0.72

houdini

Bugs with loading bundles in .hip files (or copy/paste) have been
addressed.

Digital assets

Fixed a bug with moving folders in the OTL tree, where children of
the folder moved were not having their indices updated

mplay

Audio no longer fades out when the sustained option is turned on.  Chunks
of audio always play forward when scrubbing.  Advancing one frame at a
time will only play one chunk of audio.

Fixed opgrm to properly remove multiple groups at the same time.

Added autoscroll to tree view

VOPs

Fixed a bug that could cause Houdini to crash when creating a VOP
network which generated code with the string "_name" in it.

COPs

The COP viewer now supports three viewing modes:

 - Follow Display
     Same behaviour as before. The images of COPs with their display flags
     set are shown in the viewports, along with the handles and states
     corresponding to those nodes.
 - Follow Display / Current
     The images of COPs with their display flags set are shown. However,
     instead of showing the display nodes' handles and states, the
     current node's handles and state are shown over the displayed images
     (if the current node is upstream, or an eventual input node, of the
     display node). This mode is useful for editing earlier nodes while
     viewing later output.
 - Follow Current
     The image, handles and state of the current node are always shown.
     The display flags have no effect.

The mode can be switched on the fly using the 3-button strip in the top
right corner of the COP viewer (icons with blue, green/blue, green
square(s)). It can also be  set in the Display Options, Handle page, by
setting the option 'Handles/Output Follow' (and saved as the default mode
if Save As Default is clicked).

Digital assets

OTLs now support RGBA Mask parameters (mostly seen in COPs). Previously,
they would appear as integer parameters.

SOPs

There's a new SOP (scatter) which generates random points over
surfaces (with a fairly uniform distribution).

SOPs

The measure SOP can now measure curvature

7.0.71

VOPs

Fixing a couple of problems with the automatic rewiring of VOP subnet
inputs and outputs based on changes to the parent node wiring.

User interface

the visibility of a camera linked to the viewer now can be quickly toggled
from the menu located to the left of the camera menu that specifies
which camera is linked to the viewer. This new menu contains an option
to toggle camera visibility on and off. (A shortcut key can be assigned
to this menu item using the standard way of SHIFT+CTRL+ALT click
on the menu item, which will take effect next time Houdini starts).

User interface

in the network pane, when the operators are viewed as a lilst, the
inputs menu does not show any descendents of any subnet anymore. Only
nodes shown in the menu are the nodes at the same level as the operator
whose input is represented by the menu

User interface

the camera menu in the view pane will not include any descendents
of a hidden subnet (i.e., subnet whose expose flag is truned off).

User interface

opening files with a lot of nodes does not overflow the event queue
anymore

User interface

merging hip files does not delete existing groups anymore

User interface

When a winroll parameter of a camera/light is non-zero, using the
camera/light handles does not cause the camera/light to twist unexpectidly

7.0.70

Objects

Added crop handles. They are rendered only when you are in camera state and
viewport is in corresponding camera view. Crop handles have draggable side
bars and corner dots.(Shift applys change also to the opposite end). The
lines on the crop box translate it. (Ctrl restricts translate to
horizontal or vertical translation). A semi-transparent mask (either dark
or light depending on viewport background) is rendered on the rest of
viewport not within the crop area. New toggle in camera handle menu to turn
crop handle display on and off.

User interface

Now, by default, the tree node selection in the bundle
pane tree is now linked to the pick flag of the operators. There is
a button in the tree toolbar that turns this option on and off.
When the selection is unlinked (button off), the selection of the
tree nodes is independent of the operator selection.

When the selection is linked, only nodes at current network level
shown in the pane toolbar are shown in the tree. Also any operator
that is visible in the viewer is shown in the tree. Since the
tree highlights the nodes that are added or removed to/form bundles,
linking the selection to the pick flag enables selection of operators
in the network or the viewer pane and then adding these to the bundles.

User interface

A bundle can be duplicated and several bundles can be merged together.
To perform any of these operations, select the bundles, then
CTRL+Right mouse button on the bundle list, and choose it from the pop
up menu. Duplication of a bundle is also available from the drop
down menu for each bundle row.

User interface

Changes in the snapToSelection display option no longer causes the display
lists to be rebuilt which was causing the observed rendering slowness.

SOPs

Fixed problem in ObjectMerge SOP where it did not correctly recook on a
time change if there were errors in the merged SOPs at the previous time.

Scripting

Fixed the opbrm hscript command to use glob patterns for removing bundles.

Scripting

Added -p option to the opbls command. Ths option will cause the command
to list only the picked (selected) bundles

7.0.67

Jive

- Fixed off-by-one dopesheet error
- When you switch mode: dopesheet->graph, we ensure minimum 1 frame width,
- When you switch mode: graph->dopesheet, we ensure integer frames

SOPs

Added computePointPositionTransforms() method to Edit SOP.  This allows HDK
users to determine the local coordinate frames used by the Edit SOP.

User interface

Fixing a bug with following channel references when autoscoping
based on the object selection.

7.0.66

Jive

- fixed a bug with collapsed channel groups being lost on channel
  modification

Fixing a problem with the irix installer.

Licensing

$HOME/sesi_licenses.pref has been renamed to $HOME/.sesi_licenses.pref.
Houdini will no longer look in $HFS for this file.

7.0.65

Jive

- Audio panel uses UT_Notifier, for simplicity
- Major re-work of vertical adapt mechanism to make it more like horizontal
  adapt code -- it now works better and is easier to read
- "key current" command only keys channels that are graphed
- Current time is no longer handled with different member time
  UI_Values (in dopesheet, table and graph) and member functions (for
  SI_CurrentTime) but rather through one commone time
  value and accessor method in JIVE_Local
- Templated channels appear in all graphs, rather than having a graph just
  for the templated channel (which is completely useless).  in other words,
  templates are usefull in multi-graph mode now
- Copy and paste do not write to templated channels anymore
- The dopesheet row supports the "key current" command
- MIN_VRANGE / MIN_HRANGE renamed with JIVE_ prefix, and MIN_VRANGE is set
  to MIN_RANGE (which comes from UI)- EPSILON replaced with
  MIN_VRANGE (duplicate constant)
- The horizontal axis always renders (does not dissappear when you
  show audio)
- fixed bug with time group moving even after the keys have
  collided (the old "relative move"

14015

Channel pointer arrays were being resized to 64 during instantiation even
though their size were usually no more than 3. They are now resized
correctly. The flag indicating whether or not a parm channel is being
actively changed by a handle has been changed from a UT_BitArray to an
unsigned int. The channel aliases are now only created on demand. Moved
the multi-parm instance index array, myInstanceIndex from PRM_Instance to
PRM_Multi. Removed PRM_ParmList::localVariables. The obsolete parm list
is now created and deleted on demand. The channel reference string array
for ordinal parms (PRM_Ordinal::myStringValues) is now created on demand.
PRM_ParmList::myChannelAliasesTable is now created on demand.
CH_Collection::myChannelAliasesTable is now created on demand.
PRM_Parm::myTemplatePtr which was stored in both PRM_Parm and
PRM_Instance is no longer stored in PRM_Parm. Added a static list of
parameter hash tables and channel hash tables to PRM_ParmList. Now, only
one set of hash tables is created per non-scripted operator type and,
thus, one set is shared among all instances of those operator types.
However, if an operator contains multi parms then a set of hash tables is
created per instance as before.

OpenEXR 1.2 is now supported. It has support for luminance-chroma images,
a new slightly lossy 32 bit float compression (from Pixar) and a revamped
Tile format. Please see www.openexr.com for more details.

Note that the Tile format is incompatible with version 1.1 - so any tiled
v1.1 EXR images will no longer load (though v1.1 scanline images will).

Operators

Saving Network Boxes to .hip files

mplay

There is now an option in the mplay display options (and COPs image viewer)
to have the display gamma affect the background color. It is located in
the Correction tab in the Display Options dialog ("d") with the gamma
settings.

The background color picker has been moved from the Viewport tab to the
Background tab in the Display Options.

VOPs

VOP networks now report recursion errors, rather than just generating
bad code.

User interface

The "New Desktop" item in the File Menu now works properly.

SOPs

Fixed bug in BlendShapes SOP where the Morph Setup parameter would always
be set to off upon loading.

7.0.64

SOPs

Fixed crashes with certain multiple input SOPs. This occured when
cooking a higher numbered input SOP chain caused lower numbered input SOP
chains to become invalidated.

VEX

Fixed bug in our pre-processor which would not always resolve relative
paths correctly.

Objects

Fixed bogus infinite recursion errors when an object subnet had set its
output transform node to be one of its contained nodes.

Operators

Fixed bug that prevented channel aliases from updating properly when a
multiparm instance was deleted.

ogl

Fixed an alignment bug which could cause striping artifacts in texture
maps with an odd number of components.

7.0.63

Operators

The list of valid operator types is no longer displayed when an error
occurs in 'opadd'.  This list is still available if you run 'opadd' with
no arguments.

User interface

Added x and y rotation lock when tumbling, accessed by pressing alt+LMB in
viewport. Lock about x or y axis determined by initial mouse position
change.

User interface

Force the variables dialog to use a float XCF slider.

7.0.64

mplay

Fixed problems with Background images in mplay. BG images:
    - couldn't be changed to other files once set
    - were not being thrown out of the cache properly
    - didn't support a sequence of images.

7.0.63

User interface

Fixed bug where doing a File|New or File|Open operation would not remove
detached persistent handles.

Jive

Fixed crashes when moving keys in the DopeSheet that contained expressions
which referenced other operators (such as ch() expressions).

SOPs

Added "Flatten Layer" button to Capture Layer Paint SOP.

Operators

Further fix to chsop expression to stop it from modifying the value of
the referenced parameter.

Scripting

Adding arrow key, history, and tab completion to hscript on Linux.
It can be disabled by setting the HSCRIPT_NO_HISTORY environment variable
to 1.

Scripting

Fixed a bug that caused hscript commands to be run in an incorrect order
when creating an OP with a CreateScript.

Scripting

The opset -V hscript command will now handle SOPs as well.

User interface

Fixed bug where deleting channels on selected nodes, would reset the
values of all nodes to the same value.  We now leave the values alone
on the selected nodes when deleting channels.

User interface

Fixed crash when trying to copy/paste channels onto the originating
parameter.

Scripting

The hscript command opbls has the following changes:
- When outputting via the -l option, we now always print out the lock
      status
- Added new -c option which only prints out the bundle name and its
      operator contents

User interface

Fixed problem that prevented operators with embedded help text from
displaying their help text.

COPs

Fixing a memory leak in the rotospline COP when feathering is enabled.

7.0.62

SOPs

Fixed bug that could crash Capture Layer Paint during a Smooth Operation.

Operators

Fixed bug with file history manager such that it now handles file and
directory names containing spaces.

SOPs

Added optimisation to Capture Layer Paint SOP for avoiding unnecessary
work updating capture weights when the stencil contains a zero value.

7.0.61

COPs

Fixed some more bugs in rotospline feathering when handling aspect
ratio.

The image library now supports PNG files (.png).

VEX

The ingroup() function now returns values which are exactly 0 or
1.  Previously, the function returned 0 if the point wasn't in the
group, but if the point was in the group, the return value would
have been some arbitrary value other than 0 (possibly a large
negative or positive number).

7.0.60

Jive

Fixed bug in dopesheet where copy/pasting keys would be wrong if
immediately preceded by a shift keys action.

CHOPs

Fixed bug where setting the blend value to 0 on the InverseKin CHOP would
cause the bone chain to not cook when interactively rotating.

COPs

Fixed some bugs in rotospline feathering when handling aspect ratio.

7.0.57

User interface

Made several changes to the bundle UI:
1) not all buttons are now displayed for bundles that filter through
   operators for which these button do not apply. For example,
   a bundle that accepts only objects will not display a bypass button
2) middle mouse button on the display button will pop up a menu from
   which an operator can be chosen, whose display flag should be turned on.
   This is a convenience tool designed for bundles that contain SOPs
   from the same network. Clicking the display button on, will result in
   only one operator in the bundle be displayed, since one and only one SOP
   can have a display flag turned on. To make the displayed SOP less random,
   the menu is provided to select the operator for which the flag should
   be turned on.
3) The replace (=) button now clears flags of the all the siblings of the
   operators contained in the bundle. Siblings meaning nodes that
   reside a the same level in the tree. Now the bundle UI behaves more
   like the group UI.
   Shift + click on a button will ihibit clearing of the sibling
   flags (when (=) button is used)
   Ctrl + click on a button will force clearing of the sibling flags
   (when (+) button is used)

POPs

Added turn pop which changes the direction of the velocity of particles
given an axis and turn speed.

Digital assets

Fixed a bug that caused incorrect wiring after an OTL resynchronisation.

Operators

When a spare channel name gets changed, we now update all the references
to that spare channel.

houdini

Improvements were made to the way Houdini computes the amount of memory
it is using on the Windows platforms.

Scripting

Fixed bug that caused invalid expression evaluation when an "`" quoted
string appeared on a line with multiple commands.

7.0.56

Operators

Adding a new expression function, opfullpathfrom.  This function
returns the full path to a node that is specified relative to a
second node path.

Operators

Fixed bug that prevented opparm's -l option from working properly.

7.0.55

SOPs

sopcreateedit now wires the new SOP to 'sop1'

POPs

Added more options to the "Constraints" page in the Collision POP to
allow using a previous hit normal to try and detect and prevent leaks.

SOPs

The Iso SOP will now properly lock its input.

SOPs

The PolyExtrude SOP now computes local spaces for edges in a more robust
manner.  The local space calculations for faces (and edges) was also made
more robust for certain cases.

SOPs

Fixed bug that prevented capture weights from being normalised in
SOP Deform if their sum was already close to 1.

7.0.54

SOPs

Fixed bug in Capture Layer Paint that prevented the pCaptAlpha attribute
from being created.

Operators

Fixing several  problems with the chsop expression function when it is
used to reference a parameter that contains a list of nodes.

7.0.53

SOPs

PolyExtrude now has an option in Local mode to "Keep Shared Points Together"
which keeps the points originating from the same point together in the
extruded faces.

Digital assets

Fixed bug where trying to unload an OTL definition that was preferred
could cause crashes because the defintion did not get updated.

Operators

Made HOUDINI_COOK_MODE_THRESHOLD check more efficient on Linux.

SOPs

For the Lattice SOP & Point Deformations, added support for point-specific
radii, and support for the $PT variable. Also added a parameter in the
parameter pane which will display guide spheres for the radii for each
point in the rest geometry.

7.0.51

Licensing

Fixed the hserver and sesinetd usage messages on the Windows platform.

7.0.50

SOPs

Added new ObjectGroupMerge SOP to proto_install

User interface

adding subnets that contain lights to a bundle that accepts only lights
(via its filter), will result in the contained lights being added
to the bundle (even though the subnet itself is not a light)

User interface

Fixed replacing the bundle contents with operators not compatible
with current filter. Fixed the undo/redo of replacing the bundle contents.

POPs

Added a "Constraints" page to the Collision POP with some parameters
that users can specify to try to prevent bouncing particles from leaking
through static surfaces.

7.0.49

SOPs

Added '-d' option to sopcreateedit.  If this option is specified, a new
Edit SOP will be created that can be inserted before the Deform SOP and
still achieve the same final point positions.

User interface

Houdini no longer locks up on Linux when windows are minimized or shaded.

mplay

It is now possible to set the audio scrubbing rate from within MPlay.
This can be accomplished using either the -W command-line parameter or the
"Load Audio" window.

In addition, MPlay's audio scrubbing rate can be modified when
performing a flipbook with an audio file set; in this case, MPlay's
scrubbing rate will be set to Houdini's current scrubbing rate.

POPs

Fixing a bug where bypassing a POP on frame 1 would not recook properly.

Licensing

Removing the licensing checks from spy.

7.0.48

CHOPs

Optimized the InverseKin CHOP's performance when given a blend value of 0.

SOPs

The From and To parameters of the CaptureMirror SOP as well as the Includes
parameter of the Inline VOP now support embedded newlines.

User interface

Fixed parameter dialog bug which failed to load the parameters of a custom
operator if its cached dialog file on disk was zero length.

User interface

A new pane is implemented that allows an interactive editing of bundles.
To access the bundle pane, choose "Bundle List" from the "Pane" menu.
There are several columns in the view; to see the help for these columns,
press "?" button at the right side of the pane icon bar. The following
functionality is available in the pane:

= creation of a bundle
   - click "New Bundle" button
   - or, CTRL+Right Click in the pane, and select "Add bundle"
   - or, drag operators (either from the tree view, or from other panes)
     onto the empty space in the lower portion bundle list pane (if there
     is any).

= deletion of a bundle:
   - select bundles to delete, CTRL+Right Click, and select "Delete Bundle"

= adding/removing/replacing operators to/from/in a bundle:
   - select operators in the tree view, select bundles in the view,
     and click +/-/= button in the icon bar
   - drag operators from the tree view, or other pane onto a bundle
     and select an option from a pop-up menu that appears upon release
     of the mouse
   - in the scene viewer select objects and choose "Add Selected
     Operators to Selected Bundles" or "Remove Selected Operators
     from Selected Bundles" in the "Operator" menu in the viewer pane
     menu bar.

= renaming bundle
   - select a bundle, click on the name. It should turn into an edit field.
     Then type new name and hit Enter.

= lock/unlock a bundle. Locked bundles maintain an unchanged contents.
  Unlock bundles will automatically add to themselves any newly created
  operator that matches the bundle filter.
   - click the padlock button to the right of the bundle name

= set bundle filter (see explanation above).
  Also note that a filter can be automatically guessed when new set of
  operators is added to an empty bundle. To turn this option on/off
  click the toggle button in the icon toolbar.
   - choose any filter from the drop-down menu in the list

= clear a bundle (remove all operators from it)
   - click the button in the icon toolbar
   - CTRL+Right click, and select "Remove All Operators form Bundle"

There are also some operations that can be done on the operators
in the bundle

= hide/expose the nodes in the network view
   - click the expose +/- button in the first column

= select/unselect the nodes
   - click the yellow button in the second column

= synchronize/unsynchronize OTL definitions of the operators contained
  in a bundle
   - select the item form a drop-down menu in the third column

= make operators visible or not visible (if possible and applicable)
   - select blue button in the display column

= make operators templated (if possible and applicable)
   - select the magenta button int the template column

= bypass operators (if applicable)
   - select the bypass button

= set the operator path for all panes linked to bundle list pane
   - choose an operator from a drop-down menu in the last column


For convenience there is also a tree view which displays the operator
hierarchy. Hide it or show it by CTRL+Right click and selecting the toggle
"show operator tree". Features of the tree view

= the operators of the currently selected bundles are highlighted

= to see the operator union of currently selected (several) bundles
  turn the UNION filter on, by clicking the union button.

= to see the operator intersection of currently selected (several)
  bundles, turn the INTERSECTION filter on, by clicking the intersection
  button

= to see operators that are accepted by the filters of the currently
  selected bundles turn on the bundle filter toggle button.

VOPs

It is now possible to undo the "Create New SHOP From Vop Network"
operation from the right mouse menu on VOP nodes.

Scripting

opset command now takes -V option that sets the visibility of an object.
It is a bit smarter than setting the display flag on/off, because
it will also try to set the parent's visible children (visible objects)
parameter to make an operator visible.

SOPs

Adhoc groups are deleted after unlocking, preventing crashes with
the Mirror SOP when unloading was set to Always.

7.0.46

CHOPs

The Fetch CHOP now supports bundles, operator groups, and channel groups
again.

Scripting

Removed 1023 limitation from arg() and argc() expression functions.

COPs

The Layer & Composite (+individual composite nodes) now have the ability to
fade the background & foreground(s) with the "Background Weight" and
"Foreground Weight" parms. For layer, each foreground layer has its own
weight parm.

CHOPs

Added chopls hscript command which lists all the track data of the given
chop.

Jive

Scope Channels..Dialog
option to find animated channels (with optimization to only consider channels that change as animated, no matter how many keys)
option to find channels with non-integer keyframes (so that they can be fixed)
fixed bug with create group not working

Channel Editor Performance
scoping and descoping is almost instantaneous (even for many channels)
reduced memory overhead by a few megabytes, and of undos by a factor of five (depending on the undo)
display updates properly, things that look selected are selected and vice-versa
only handles in the horizontal range of the window are drawn (if you zoom in, things will get faster)

Channel Editor Usability
bezier (acceleration) handles move in two dimensions
keys move in two dimensions (by pressing CTRL)
keys are allowed to move past other keys
you can turn off display of key/value indicators
by turning off "Show All Handles", only the channels with selected handles will show their handles -- this is like XSI's method of picking handles This might work better when you have a lot of channels.
you can click on a channel to show the channels under the cursor (ALT-MMB)
you can key only the channel under the cursor (ALT-SHIFT-LMB instead of ALT-LMB -- key all channels)

Moved From the Graph Editor to the other modes -- Spreadsheet and Dopesheet
Copying and Pasting Samples (C and P buttons at the top of the animation editor)
Template pattern (to Dopesheet only for now)
key the current time in the Spreadsheet and Dopesheet with SHIFT-K
Hold pending values (to Dopesheet only for now) (use MMB on the on the time slider thumb)

Integer Keyframe Snapping
keys snap to nearest frame as you move them
time bar snaps as you move it
time groups snap as you move them

Non-Integer Keyframes
show up as neon green in the dopesheet
there is an option to make them show up as bright white in the graph editor (Bold Non-Integer Keys in the new view menu on the side)

Scale Handle
is much easier to see, especially the pivot
allows you to move the pivot outside the box

UI Value Fields (at the bottom of the channel editor)
continually update as you move handles so that you get constant feedback
accelerations are updated as slopes change since beziers can change those

Channel Editor Fixes
auto-homing problems are fixed
frame selection problems are fixed
channels are sorted properly in the dopesheet
bugs fixed with stretch keys in the dopesheet
bugs fixed with moving keys in the dopesheet
selection is preserved throughout undos again

Channel Group Tree
numerous bugs fixed

Objects

Added '-x' option to "opparm" command.  The '-x' option will generate
hscript commands that can be used to re-create the channel.

CHOPs

Fixed bug where overriding locked parameters did not work.

SOPs

Remove false assertion when carving a bezier curve with 0,0.

User interface

Added ability for user to apply images to custom panel buttons

7.0.43

SOPs

Fixed Bulge SOP cooking problem when updating to newer operator type
definitions.

Objects

Removed geometry selector from Paint Capture Layer State.  Also added the
ability to add and remove layers.

mplay

Fixed a crash while saving a regular image (non-pic) from mplay with
the Color selector set to '(none)'.

COPs

Added the Emboss COP, which can do simple bump-mapping lighting.

VEX

Added the ninput() VEX function to the COP context. It returns a 3x3
matrix of the specified pixel and its 8 neighbors.

VEX

Added documentation for the VEX inputlabel pragma for setting the label
of a VEX operator input.

Digital assets

Fixed a bug where the Type Properties dialog would allow the creation
of parameters with names that started with a number.  Now parameters
with this sort of name are prefixed with an underscore.

7.0.42

COPs

Added the Corner Ramp COP. Initially setup as a 4 corner ramp, this node
is also capable of interpolating any number of user-defined ramp points.

SOPs

Fixed bug where a lattice SOP would leave points that are no longer in its
area of effect deformed

Scripting

Fixing a bug that prevented hscript from reading more than
1023 characters on a command line.

Digital assets

There was a bug with Match Current Definition on a custom subnet which
contained another custom subnet.  If both subnets were unlocked, and the
inner subnet contained nodes with modified parameter values, those values
would not be changed to match the definition.  This problem is now fixed.

7.0.41

Scripting

Fixed a bug where loading a hip file with a viewport in ortho mode would
not properly update the ortho/perspective button.

7.0.40

COPs

Fixed a bug with the H,S,V global variables in VEX which caused them to
return garbage if R,G or B weren't read.

COPs

Added the Degrain COP, which attempts to remove grain without affecting
features.

Objects

Added a mode to Paint Capture Layer from smoothing the capture weights
for a single bone.

7.0.39

Jive

you can move keys past other keys on the same channel

POPs

Particle networks now have a "Random Seed" parameter to allow reuse
of the same network to get differing behaviors.

Operators

Fixed crash when updating custom operator definitions on existing nodes
which had differing parameter lists.

7.0.35

mantra

A bug with specifying light scopes inside VEX statements was
fixed.

Licensing

The behaviour of hserver in bad conditions has been improved
significantly.  As well, applications now have a default grace
period to run before they terminate due to license failure.  This
grace period is only allowed if there was successful license
checkout at some point in the past.

hserver will still block on occassion.  This is a limitation of
the fact that each Houdini application (including hscript, mantra
etc.) will connect to hserver at some point in time for license
information.  If hserver is unable to contact sesinetd on the
remote machine, each of these applications will block an hserver
thread.

The default number of threads was bumped up from 3 to 6.  This
allows 5 concurrent applications to block up threads and still be
able to run "hserver -l" to query the status of hserver.

7.0.34

COPs

Split out the Composite COP into specific compositing COPs:
Over, Under, Atop, Inside, Outside, Add, Subtract, Multiply, Screen,
Diff, Average and Xor.

COPs

Fixed a problem with box filtered transforms when the wrap mode is
repeat.

Digital assets

Fixed bug that prevented some OP changes during re-synchronisation.

mplay

mplay will no longer crash when attempting to play audio files whose
rate is greater than 44100 Hz when it has been spawned from a Houdini
flipbook.

Scripting

For the hscript opparm -d command, added support for looking up channel
aliases and tokens individually.

7.0.33

User interface

Fixed crash when trying to open up the Load/Save Presets dialog if there
were exactly 5 presets directories found in the HOUDINI_PATH.

Operators

Automatically switch cook mode to "Never" when the memory limit set by
HOUDINI_COOK_MODE_THRESHOLD is reached.

7.0.31

Objects

Fixed bug where setting the camera or light window size to 0 and viewing
through it would cause the viewport to behave erratically.

Digital assets

Fixed bug where deleting a parm from an OTL could cause Houdini to crash.

7.0.29

Digital assets

Fixed bug where copy and pasted locked OTLs contained unlocked OPs.

Objects

CTRL-LMB now switches to the previous bone in the Paint Capture Layer
state.

Scripting

Added -l option to the hscript opparm command to list out the parameters
for a given OP. This is similar to the -d option but does not display the
values of the parameters.

User interface

Fixing a bug where adding event generators to Houdini's event loop
could cause crashes.  These crashes could by triggered by running
java commands from hbrowser.

SOPs

Fixed a crash in the uvtransform SOP.

User interface

Fixed some intermittent problems with the embedded help browser on
Windows platforms.

Scripting

Updated the opisquitting expression function to also return 1 when
doing a File->New or File->Open operation.

7.0.28

SOPs

Fixed bug where copy/stamping string attributes from points to primitives
would lose the last entry.

Operators

Fixed bug that left an object on the undo stack preventing some redos from
working.

COPs

Made several enhancements to the Ramp COP:
 - The limit of 40 points has been removed. The Ramp point UI now adapts
   to the number of points added.
 - Hold interpolation added, which hold the point's color until the next
   point. It is the opposite of Step interpolation.
 - Adding new points to the ramp now preserves the ramp's color at that
   point.

Scripting

Added opisquitting expression function which returns 1 if Houdini is
in the process of shutting down, 0 otherwise.  Also made it possible
to have multi-line delete scripts attached to nodes.

SOPs

Fixed bug that would prevent the Group SOP from showing errors that might
have occurred.

Operators

Fixed bug where redoing the deletion of multiple nodes that were connected
to inputs of the same node would recreate the connections incorrectly.

User interface

Fixed a bug where nodes would not be properly connected when operator
toolbars were not being used.  Also added some useful popup help to the
"Use Toolbars in Insert/Append Menus" preference toggle.

Digital assets

Fixed a problem with writing new definitions to the Embedded OTL which
would cause Houdini to use the wrong OTL as the source for these newly
saved definitions.

Digital assets

Deleting all the operator definitions from the Embedded OTL without
uninstalling the Embedded OTL would prevent new operator definitions
from being written to it.  This problem is now fixed.

User interface

Fixed problem where operator tree browser would sometimes draw into
the network editor which contained it.

7.0.27

SOPs

Fixed a bug where a captureregion SOP with channels in the obsolete
parameters could crash Houdini.

SOPs

The Primitive SOP's colour swatch now behaves similarly to the
Point SOP's.  Both go white with the default $CR, $CG, $CB.

SOPs

Fixed a bug where calling the UVProject Initialize callback from an
opparm command would not add to the correct undo block.

COPs

The Layer COP can now accept any number of inputs. The per-layer UI is
dynamically allocated.

Also, the layer PI has been split into 1 PI per layer, rather than 1 PI
for all layers. Several items have been added to the handle menus:
  - Reset Transform
  - Composite Operation menu
  - Image Wrap menu

SOPs

The Cache SOP correctly maintains its old values when it's
instanced geometry changes.

The Cache SOP responds to unload events by dumping its cache.

Scripting

The opgetinput command now supports querying subnet indirect inputs
with the -o option.  This fixes a bug where you couldn't insert nodes
between the indirect inputs and other nodes.

Objects

The Edit Geometry and Model Geometry options from RMB on viewport
objects will now work.

SOPs

Fixed a bug that could cause SOPs not to cook correctly for the first time.

Objects

The pulldown Model Current Object menu works again.

SOPs

Changing the group field of a lattice SOP will properly recook.

SOPs

Fixed a bug that could cause the PolyPatch SOP to crash Houdini.

SOPs

Fixed a bug where templated or footprinted SOPs were not properly cooking
on frame changes.

7.0.26

channel

Fixed incorrect behaviour when using chadd on an existing channel that
had more than 2 keys.

CHOPs

Added a "Reference" parameter to the Jiggle CHOP which specifies the parent
object space that the result should be placed in. The Multiplier parameter
takes place in the reference space.

SOPs

Replaced Edit SOP with SuperEdit SOP.

Objects

The Window Roll parameter now has a full 0-360 slider.

POPs

It is now possible to undo a POP node creation from within the viewport.

SOPs

Fixed a bug that caused incorrect normals to be calculated for
GEO_Face-based primitives.

7.0.25

VOPs

Fixing the generation of VOP dialog scripts which used Vector 4
inputs or outputs.

SOPs

You can no longer use the Geometry Spreadsheet to edit points in
instanced SOPs.  This is an improvement from being able to make
such edits, and thence crashing Houdini.

SOPs

The Skin SOP no longer crashes with certain invalid input
geometry, it now aborts with an error.

7.0.24

gplay

Added a playbar to GPlay.

7.0.22

SOPs

Fixed bug in SOP_CaptureLayerPaint's calculation of pCaptAlpha.

SOPs

Fixed an AttribStringEdit bug which required hardening a string.

SOPs

Fixed a bug that could caused a crash CaptureLayerPaint's
"Reset All Changes" operation.

Objects

Fixed crash on exiting CaptureLayerPaint state.

Objects

Renamed EditPoints state to Morph.

7.0.21

Scripting

Removing the hconnect proto install.  Since openport/hcommand now
uses sockets and can work with telnet, hconnect is no longer needed.

Scripting

The openport command and hcommand now use sockets instead of message
queues to communicate.  This way, if Houdini is killed, message queues
are not left lying around.  Also, the system limit for sockets is much
higher than for message queues, so it's possible to have more ports
open at once.  The help browser and the java, tcl and tk commands now
also use sockets to run commands in Houdini.

As a consequence, it is now possible to use openport across machines.
By default, the openport command only allows connections from the local
machine, but other hosts can be allowed to connect by specifying an
IP mask when the port is opened.  Also, it is now possible to telnet
to an open port to run Houdini commands.  Note that ports numbers less
than 10000 use a socket port that is 10000 greater than the Houdini
port number.

Objects

The PaintCaptureLayer state can now switch between any CaptureLayerPaint SOP
feeding into the displayed SOP.  The state can also visualize the final
capture weights used in a deform.

SOPs

Fixed crash in the AttribStringEdit SOP caused by inappropriate use of
strcpy.

mplay

Improved mplay's audio scrubbing, which should now be equivalent to
Houdini's. Audio now plays throughout frames instead of just at the
beginning of each frame.

14475

Fixed a bug that could cause giges to crash on malformed IGES files.

SOPs

Fixed a bug with the Refine SOP that could cause it to crash Houdini if
refining geometry with attributes.

7.0.20

14017

Fixed slowness bug where objects with their display flags turned off were
slowing down the rendering of displayable objects. This was fixed by adding
a display flag check.

Operators

Fixed problem with printing out warnings upon quitting Houdini/hscript
when running delete scripts that try to destroy operators within
synchronized custom operators.

CHOPs

When an Export CHOP is disabled via its second input, the parameter it's
exporting to no longer stays orange and doesnt display "overridden by..."

Operators

Fixed crash when bringing up the bundle chooser after collapsing or
extracting from subnets.

Objects

Fixed a crashing bug in Rivet state when a reselect
button was pressed before any object has been selected. After
right-click crash would occur.

7.0.19

SOPs

Fixed bug where upon if the SuperEdit SOP received two non-matching
inputs, it would cause undesirable cook update behaviour.

7.0.18

SOPs

Hitting reset changes on a Brush SOP that has not yet cooked will
not crash.

SOPs

The UVFuse SOP will no longer unlock more inputs than it locks.

7.0.16

Rendering

Fixing the "Initialize Simulation SOPs" parameter on most Output Drivers
so that it actually causes all simulation-type SOPs (POP SOP, Spring
SOP, Particle SOP, etc.) to be initialized before performing a render.

7.0.15

VOPs

Fixed crash when deleting VOP Networks.  Problem introduced in 7.0.12.

COPs

Certain COPs now have their connections labeled, such as 'Layer' and
'Composite', which indicates the operation being performed at a glance.
Masked operations also show which plane is being used as the mask.
These labels are visible on the worksheet, and disappear at lower levels
of detail (when the network is zoomed out, to avoid clutter).

SOPs

Doing a polyreduce with a percentage of 100% should no longer
cause a polygon to be lost.

User interface

Added a File OP dialog for node creation, accessed via 'Ctrl+Tab'. You
can pop it up and select multiple files or file sequences. The dialog
will create 1 OP for each file or file sequence (foo$F.ext) selected.
The current OP network type determines the types of files shown.

This is supported for networks with File OPs:

- Objects (geo files)   : Creates an object containing a File SOP for each
                          geo file or geo file sequence.
- SOPs (geo files)      : Creates a File SOP for each geo or geo sequence.
- CHOPs (channel files) : Creates a File CHOP for each channel file.
- COPs (image files)    : Creates a File COP for each image or image
              sequence.

SOPs

Fixed recently introduced bug with saving geometry through the GEOio
table.  The same problem fixes mantra renders failing, particularly
when rendering simple scenes.

Digital assets

Fixed crash when hitting Apply or Accept in the Type Properties dialog
when the "Save To Library" field is empty.

Objects

A new object called Rivet is implemented. This object attaches
to geometry points of another object and follows it as the geometry
moves and deforms. For the rivet to be attached properly three
points need to be specified to construct a surface frame. Rivet object
is placed at the origin of that frame and is oriented according to
the frame axes. If only one point is selected on the geometry,
the rivet object will position itslef at that point, but it is going
to remain aligned with the world axes.

7.0.14

SOPs

Fixed crash that could happen when the Merge SOP had more than two inputs
containing capture weight attributes. It would only happen after the
first cook of the particular Merge SOP.

java

Fixed problem with leaked file handles when executing hscript commands
from java.

Rendering

Fixed bug that would cause Houdini to freeze while performing a render
on Windows XP, even if Render in Background was turned on.

COPs

Fixed threading problems with multiple Render COPs. These problems could
result in failed renders or licensing problems. Now all Render COPs are
processed sequentially, instead of in parallel.

COPs

Fixed a crash that could occur with cooktime errors (most COP errors
are detected before cooking begins, so this is somewhat rare).

Scripting

Fixed problem that would cause unnecessary output when executing the
mread command from within a script file.

Scripting

Fixed a bug where some view commands were not being saved properly for
non-existent viewers in both Houdini and hscript.

7.0.13

COPs

Fixed an occasional crash in the compositor when the 'Reduce Cache size
when Inactive' caching option was on (which it is by default in Houdini,
but not Halo).

SOPs

Removed the following SOPs from the user interface:

- Arm
- Blend
- Boolean
- CaptureEdit
- CapturePaint
- Joint
- Limb
- Model
- Skeleton

Objects

A 'Reduce' mode has been added to the Capture Layer Paint state.

SOPs

The LSystem SOP now properly provides normal geometry info.

SOPs

Fix a crash with initializing skeleton SOPs.

SOPs

The a command in the LSystem rules will now properly make
attributes of size other than 3.

SOPs

The $(x,y,z) command in lsystem rules will no longer fail if a $
command had preceded it.

Digital assets

The Type Properties dialog will not allow an operator type to be saved
if Safeguard Operator Definitions is turned on, or the Type Properties
dialog was opened from the RMB menu of a locked subnet. Also, the Save
Operator Type menu item no longer appears if Safeguard is turned on.

7.0.12

SOPs

Fixed problem when refreshing custom operator definitions that contained
DynamicBlend and Deform SOPs with the "Assume Only Coordinate Changes"
option turned on. We now do fresh recook with cleared caches when doing so.

Fixed crash that occurred during the loading of a corrupted JPEG.

Digital assets

Added otinuse command, which outputs information about which OTLs
and operator types are in use in a Hip file or portion of a Hip file.

Objects

Object subnetworks can now be contained inside other network
types.

Digital assets

Added a new option to otls which tells it to list all installed OTL
files which contain a definition for a specified operator type.

Digital assets

Added a new option to the Operator Type Manager, "Leave Values When
Defaults Change".  If turned on, this option tells Houdini that any
existing nodes should keep their parameter values even if they are at
the defaults when a new definition for the operator type is loaded.

VOPs

Fixing Parameter VOP Parameter Type menu entry from "Toggle (float)" to
"Toggle (int)".

gplay

Fixed a bug in gplay where the texture viewport would home incorrectly
when the uv attribute type changed from points to vertices or
vice-versa between geometries.

Objects

Added abitlity to undo deletion of edits in an experimental edit state.
This state has not been enabled yet.

Objects

The Assume UV Constant toggle in the Sticky Object now properly
preserves the cache.

COPs

Fixed some intermitant crashes when user-interrupted in blur,
composite/layer and the colapsable pixel operation COPs (bright,
gamma, HSV, etc).

SOPs

Fixing the creep SOP to avoid triggering an assert when "Set Point
Attributes From Path" was toggled on.

Digital assets

Changed the default value of the "Give Preference to Definitions Saved
in Hip File" option in the Operator Type Manager.  The default is now
false.

7.0.11

SOPs

Fix crash with initializing Creep SOP.

POPs

Angular Velocity POP now supports negative velocities as well.

Scripting

Added the "-s" option to the opfind command.  This option specifies that
the opfind command should not recurse into operator networks.  The
output with this option lists only the node name, not the full path.

Scripting

Added an option ("-b") to the oporder command which specifies that all
listed nodes whould be moved to the beginning of the operator list.

Scripting

The oppresetls and oppresetrm commands can now be run by specifying
an operator type rather than a node path.  This is possible because
these commands don't need to refer to an existing node to work.

Digital assets

Added a new RMB menu item, "Save Operator Type", for custom subnet nodes.
This menu item causes the selected node to be immediately saved as the
definition for the custom operator type.  This is faster than opening
the Type Properties dialog and hitting Apply or Accept.

Scripting

Added a new environment variable, HOUDINI_SCRIPT_PATH, which specifies
the paths Houdini should search when looking for a .tcl, .tk, .cmd,
or .java script file when running the tcl, tk, source, or java commands.

Digital assets

Added an option to the otls command which lets you specify what information
to output and in what order when a specific operator type is specified.
This should make it easier to parse the generated output.

User interface

Fixed bug which was causing the message:
"Warning: There is no hotkey for h.pane.wsheet.opmenu.vn_save_palette"
to be output to the shell.

VOPs

Fixed a bug with the Global Variables VOP.  When undoing a change to
the "Output Single Variable" parameter, the output connections of the
VOP would not restore themselves properly.

VOPs

Fixed bug which would cause bad code to be output from VOPs if more than
one Shading Layer VOP existed pointing to the same shading layer.

7.0.8

CHOPs

Fixed crash with InverseKin CHOP's Follow Curve solver when using invalid
geometry.

CHOPs

Fixed crash when executing chopexportmap on a chop that does not cook
successfully.

SOPs

Fixed a bug that caused a crash after updating normals in the brush SOPs.

Scripting

Added viewhome hscript command which homes the named viewports.

User interface

The help browser now connects to Houdini to run commands using
sockets instead of message queues.

ch

Fixed a bug that could cause custom expressions in Houdini to crash.

Operators

Fixed potential crash when loading operators which contain a dynamic number
of parameters.

7.0.7

SOPs

Fixed a crash when redoing GDT operations.

SOPs

Fixed a bug that could cause PolyBevel SOP to crash.

POPs

Fixed a bug in the rotation POP which could cause $ROTA to evaluate
in the wrong quadrant.

SOPs

Fixed bug in Dissolve SOP that could lead to a crash.

7.0.6

User interface

In the UV Brush state (and some other paint tools), an option was added
to constrain the movemento of the brush. When painting, the CTRL key
will align the brush movement to x-axis, y-axis or a diagonal axis
of the construction plane. If the construction plane is not enabled,
the screenspace x, y, and diagonal axes are used.

Operators

Reverted opLayout back to laying out single tiles as a single cluster of
staggered tiles in a rectangular array instead of treating each tile as
an independent tree.

Objects

Secure Selection is now off by default.

User interface

In the Performance Monitor, we now output i.e. Sop/null rather than just
null to avoid ambiguity (same thing applies to all Sops, Cops, etc...)

Scripting

Removed unimplemented operations (hide, remove, name) from the desk
command.  Also changed an undocumented operation to swap panes to be
invoked with the swap operation to the desk command.

VOPs

The antialiased noise VOP now properly defaults to 0 rather than
1.

CHOPs

Fixed a bug which caused Houdini to crash when creating a type from a
CHOP which wouldn't cook.

7.0.5

Scripting

Fixed a bug where ophide and opunhide were not working for certain operator
types.

Objects

Fixed a crash in the capture edit state.

Objects

Added an experimental feature to snap only to a specified path. If enabled,
it is possible to specify a wildcard path in the Snap Options dialog;
only objects whose path match this wildcard pattern will be snapped to.

7.0.4

Rendering

The RIB output driver now has additional frame device options in
the specific tab to interface with the mplay display driver.  The
output driver has control over sequences and frame number matching.

User interface

Fixed crash that could happen when deleting a node that had its parameters
dialog opened. This would only occur on the third time on identically named
operators.

SOPs

Fix a crash with Initialize Extrude in the Extrude SOP.

Scripting

The sopcache command when used with -L and -v will sort by memory
usage and output the amount of memory used by each SOP.

Scripting

The sopcache command will now include locked sops in its memory
estimate.

User interface

The flag list in List View now shows the Unload Flag.

User interface

Fixed a bug that could cause tiles that are inserted through the RMB to
disappear if the user accidentally clicks over the connector.

Scripting

When using both the -q and -a options to the openport command, only the
number of the port opened will be printed.  This is for convenience
when writing scripts.

Version 6.6

6.6.2

SOPs

Fixed a bug where PolyExtruding edges would not add the newly created
faces to the side group (if the option is selected).
Also, PolyExtrude will no longer error out if the groups chosen already
existed, instead it will append to the groups.

SOPs

Subdividing with override crease turned will no longer crash if
degenerate polygons are present.

image3d

Added rudimentary integrity checking of .i3d files to i3dinfo. Please
type "i3dinfo -" to see the options.

Operators

Operator Bundles are now created locked by default. Previous hip files
with unlocked bundles will now load as locked.

User interface

Renamed "Guide Edge" and "Guide Point" entries in the snapping dialog to
"Primitive Guide Edge" and "Primitive Guide Point" to reflect the fact that
they are intended to work on primitive guides (the brown axes).

ogl

Fixed a bug where it was possible for Houdini to crash when the
sop network contained visibility sops and the user toggled between
a 3D and a UV viewport.

User interface

Allow users to assign and use keyboard shortcuts on parameter fields,
labels, etc...

Characters

After selecting both geometry and bones to capture, a tab
is added to the parameter dialog ('p' is the hotkey)
that exposes the group selection. By specifying the group,
only a subset of the geometry is captured.

6.6.1

VOPs

The VEX VOPs now have their original colors for input/output back.

Rendering

The Render State now supports renderers other than mantra.
Currently, there is only support for prman, though the interface
is open for other renderers.  For prman to be available in the
render state, the houdini display driver needs to be installed
(via proto_install).

Digital assets

Creating a Toggle menu on a Float or Integer parameter in the Type
Properties dialog would create a menu, but the menu would not do
anything.  Now it behaves the same as a Replace style menu (since
Toggle menu behavior for non-string parameter doesn't make sense).

Digital assets

When dragging and dropping and angle parameter with only one component
into the Type Properties dialog, Houdini would create a Float parameter
instead of an Angle parameter.  This problem is now fixed.

User interface

Opening the hotkey manager dialog from within the toolbar manager or
desktop manager dialogs now works properly.

Version 6.5

6.5.4

ogl

Fixed a bug where textured sprites would sometimes go black because
the material would turn lighting back on.  We now support this by
setting an appropriate normal.

SOPs

Fix crash when a Paint SOP was applied to a geometry with many
vertex uv coordinates.

Scripting

The hscript pane command now accepts the -A and -a options, much
like the desktop pane command does.

6.5.3

CHOPs

Fixed a crashing bug with CHOP_Geometry where it used a point
group.

Objects

When snapping, it is now possible to snap orientation as well as
position.  When using the "Snap orientation" option, the snapped item
will be rotated so that one of its major axes (x, y, z) matches the normal
of the item to which it has been snapped.  Only the axis closest to the
normal in question is rotated when snapping; this permits greater freedom
to choose how an item is oriented.
Note that while orientation snapping will respect any explicit normals
placed on an object, they are not required: implicit normals will be
substituted when needed.
The "Orient on snap" option can be activated from within the
"Snap Options" dialog (Ctrl-k).

VEX

Reversed the arguments in the quaternion(int, vector3) function to
be quaternion(vector3, int) because it was getting confused with the
quaternion(float, vector3) version in the Quaternion VOP.  Also fixed
a bug where the angles in the "Euler To Quaternion" VOP were being
interpreted in radians rather than degrees.

User interface

In the network view, it is now possible to disconnect inputs for
all selected tiles (nodes) by disconnecting an input for one
of the picked (selected) tiles. Thus, when an input for selected tile
is disconnected, corresponding inputs for all selected tiles are
also disconnected.

Objects

Fixed crashing when copy/pasting bone objects which have been captured.

VOPs

The fastshadow VOP now outputs a floating point number instead of
an integer.  Since there may be anti-aliasing samples performed,
the VOP returns the fractional coverage rather than an absolute 0
or 1.

6.5.2

User interface

The flipbook  dialog has an option (checkbox) to allow appending
new frame to the existing flipbook. With this option turned on,
no frames are overwritten. This option can be used to see
how one sequence flows into another.

Objects

Fixed a bug that sometimes caused the Light and Camera handle pivots to
loose synchronization with the orientation vector handle.

SOPs

Fixed a bug with ObjectMerge SOP where the instancing could
instance an empty geometry rather than cooking its input.

Objects

The light handles no longer show the focus orientation handles when working
on a point light.

Operators

Fixed crash when undoing an opgadd hscript command.

SOPs

The Unload flag is now much more aggressive.  If a node which has
the unload flag loses its display flags, or an object displaying
it stops displaying, it unloads immediately.

When the Unload flag is set on a SOP, the SOP will immediately
unload.

User interface

Fixing a bug where Houdini might crash when copy-stamping geometry
where the number of attributes in the stamp changed depending on the
copy number.

Digital assets

In the Operator Type Manager, trying to merge an OTL into the Embedded
OTL (when no Embedded OTL currently exists) no longer causes Houdini to
crash.

6.5.1

CHOPs

The Fetch CHOP now ensures that the order of its created tracks will be
in the same order of the parameters within the fetched operator
regardless if it is animated. This is then follow by any fetched CHOP
data tracks.

Previously, the Fetch CHOP created the ordering by channels, chop data
tracks, and then parameters. This behaviour can be obtained by enabling
the environment variable HOUDINI6_COMPATIBILITY.

User interface

Houdini now uses pipes (instead of message queues on Linux or
shared memory on Windows) to control the help browser.  When
the help browser runs a Houdini command, though, it still
uses message queues.  Soon, it will instead use local sockets.