Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: probiner/DASH

Geometry Array Operations

18 Jul 18:30

Choose a tag to compare

DASH::package v6.1.0 is a comprehensive release focusing on geometry VOPs. Continues the effort to support array operations (avoiding loops), comfy quick menus, and exploring alternative implementations.

As usual, check the example scenes, available at the bottom of nodes help documentation.

Three operators got renamed, not removed:
Build Attribute Values Array → Get Attribute Allot Array
Array Values Occurrence → Array Occurrence
Vectors Direction Case → Directions Case

Release video

ADDED

VOPs

  • Add Line Segment. Create one or more line segments.
  • Add Platonic. Create one or more Tetrahedra or Hexahedra.
  • Add Point. Add a point or multiple by position or by cloning existing ones.
  • Add Polygon. Create a polygon with a specific point order.
  • Add Transform Primitive. Add primitives that require a single point to be attached and can be posed by a 3x3 matrix.
  • Axis-Aligned Bounding Box. Source multiple aspects of a geometry's bounding box.
  • Closest Location. Proximity to geometry query.
  • Get Geometry Attribute Allot Array. Build an array from multiple elements' attribute values.
  • Iterability Force. HDA building utility to return either a stable single or array output from input data.
  • Ray Location. Ray cast intersection with geometry query.
  • Remove Element. Remove points, primitives or vertices from a geometry.
  • Sample Attribute by Intrinsic UV. Sample a geometry attribute by primitive and its intrinsic uvs.
  • Sample Attribute by UV Map. Sample a geometry attribute by UV location.
  • Set Geometry Attribute. Set the attribute value of one or more elements or attributes.
  • Set Geometry Group. Set Group membership for an element or elements.

ADJUSTED

VOPs

  • Lines/Planes Intersections 2D and 3D. Add the output “bounded” and an image in the help about it.
  • Exponential. Folder Parameters removed; Labels above the generic parameters added instead, to avoid triggering errors about missing parameters.
  • Angle Formats. Invert toggle for 360 Unit.
  • Discrete. Invert toggle for Unit.
  • Array Filter IDs/Values/VEX. “mask” output renamed to “bitmask”
  • Vertex/Edge Formats. Default change to “Pair to Single”.

SOPs

  • Edges to Lines. When Display Flag is ON, the polylines or line segments are colored in a way that is easy to grasp the start and end point of the line.

Not Backwards Compatible

VOPs

  • Array Resize. Fixed “Side” parameter had inverse logic being applied when sizing arrays down.
  • Angle Formats. Fixed wrong calculations when converting circle unit to other formats.
  • Build Values Array. Renamed to “Get Attribute Allot Array”.
  • Connected Elements. Single Elements ids only now. Use “Vertex Edge Format” to convert if needed.
  • Expand Group. Single Elements ids only now. Use Vertex Edge Format to convert if needed. Count output now acts like nprims() or npoints(), etc would. Group menu improved to reset when class changes.
  • In Group Array. Single Elements ids only now. Use “Vertex Edge Format” to convert if needed. Renamed outputs to match the Filter VOPs; “kept”/”removed”. “bitmask” output added. Group menu improved to reset when class changes.
  • Vectors Directions Case. Renamed to shorter “Directions Case”.
  • Array Values Occurrence. Renamed to shorter “Array Occurrences”.
  • Transform 1D. Fixed wrong parameter references.

Linear Algebra Reloaded

26 Mar 09:24
07619a7

Choose a tag to compare

After a hiatus, DASH::package returns. Version 5.1 is an extensive rollout of fixes and new nodes that demonstrate composed applications of Dot and Cross Product operations: Linear Algebra, geometric relationships, rotation matrices, etc.

Beyond the fact that many of these operators support matrices some of these nodes seek to provided a small building block to common request: "How do I find the angle between vectors?", "How do I keep an up vectors stable on a roller-coaster?", "How to I make create a gradient?", "How do I intersect this line with that line?", etc.

Release video

ADDED

VOP Nodes

  • Align 2D. Returns the rotation angle difference between two 2D vectors or two 2x2 matrices' orientations.
  • Align 3D. Returns the rotation axis and angle difference between two 3D vectors, two quaternions, or two 3x3 matrices' orientations.
  • Angle Arc Sectors. Sectors and Arc Path selector for angles (assuming a positive axis).
  • Lines/Planes Intersections 2D. Returns the intersection position between a combination of 2D lines and/or 2D planes.
  • Lines/Planes Intersections 3D. Returns the intersection position between a combination of 3D lines and/or 3D planes.
  • Look At Rotation (aim+pole). Define a orthonormal 3x3 matrix based on two directions, matching one of them.
  • Up Transport. Single-step solve of a Parallel Transport Frame operation.
  • Up Transport Chain. Parallel Transport Frame operation done in sequence.
  • Vector Project. Return multiple aspects about decomposing a vector according to another vector.
  • Vector Spherical LERP (slerp). Blend two vectors direction and length.
  • Vectors Direction Case. Multiple assessments concerning two vectors' directions.

ADJUSTED

VOP Nodes

  • Transform 1D. Array fill update. Parameters and operands layout changed.

  • Wipe Range. Fixed snippet errors. Functions re-written with void. Old array support for parameters remade.

NOT BACKWARD COMPATIBLE

VOP Nodes

  • Additive. result input port removed and iterative merge used instead. Corrected wrong references in help.

  • Aggregate xform parameter renamed slerp and now supports it for vector2 and vector3 as well.

  • Bend. Local and Forward axis switches removed from inputs and made into hscript toggle. Space out output with calculated space. Quaternion and matrix3 output rotation renamed. Bend direction changed.

  • Build Constant Array. Removed Dictionary signature, since Remove Array ID VOP doesn’t support it.

  • Build IDs Array. Fixed OnInputChanged to input 0. Fixed Multiple errors with signatures.

  • Build Shuffle Array. Fixed OnInputChanged to input 0. Fixed Multiple errors with signatures.

  • Cross Product. Inputs renamed “From” and “To”

  • Direction/Length. Inputs renamed. Fixed Multiple errors with signatures. Replacement Direction and Length inputs. Icon updated.

  • Dot Product. Fixed Error with signatures

  • Exponential result input port removed and iterative merge used instead. Fixed missing log VEX signatures, wrong input/output signatures and wrong parameter for result. Added Square root. Callback script changes folders name to the operand name matching the chosen operation.

  • Hyperbolic. Fixed missing signature implementations.

  • LERP. Fixed Multiple errors with signatures.

  • Limit Range. Functions re-written with void. Old array support for parameters remade. Invert renamed.

  • Multiplicative. result input port removed and iterative merge used instead. Fixed incorrect Divide code.

SOP Nodes

  • Visualize Vector. Major overhaul to provide the option to draw the vectors with the native Houdini visualizers for performance demanding situations. The default drawing method will still be generated geometry, given the clear visuals.

Extra

  • VEXpressions.txt. Added a preset to create edge groups Sweep SOP outoputs' rows and columns. Run on Primitive Wrangle.

  • DASH_all_nodes.hip. Fixed bad descriptions and signatures reset on nodes.

Extra notes

  • Click to Expand.
    1. Many VOPs have now aliases with dedicated operation presets or that are named like the native operators, but with array support.

    2. All nodes can now be quickly found by typing “DASH”, since — DASH was added to their labels as a suffix.

    3. DASH nodes are now found under the tab submenu DASH —

    4. Shelf renamed to DASH — Utils. Tools moved to "Utilities" HDA.

Cheers
prb

FOR ARRAYS BY ARRAYS

01 Sep 18:52
37b3c80

Choose a tag to compare

Back to features, the focus returns to Arrays. Filtering them, sorting them, inferring values from them, and using VEX Expressions to query them. Each of these making their handling more and more comfortable on a high-level.

Release video

ADDED

VOP Nodes

  • Array Aggregate. Operations that reduce an array to a single value.
  • Array Quicksort. Array sorting methods, including a custom quicksort controlled by a VEX expression.
  • Array Filter IDs. Split array into two arrays, based on matching ids.
  • Array Filter Values. Split array into two arrays, based on matching values.
  • Array Filter VEX. Split array into two arrays, based on custom matching by a VEX expression.
  • Array Values Occurrence. Assess duplicate values in an array, query them with a VEX expression or simply remove them.
  • Hash. Converts several data types to a random integer.

ADJUSTED

VOP Nodes

  • Build Shuffle Array. Seed randomized on creation. Button randomizes seed.

  • Build Random Array. Seed randomized on creation. Button randomizes seed.

    RandomButton

  • Exponential. Added signatures to support Base array and single Value cases.

Extra

  • VEXpressions.txt. Added presets for VOPs Array Filter VEX, Array Quicksort and Array Values Occurrence.

Extra notes

  • Click to Expand.
    1. Fixed Help for Didactic Assets that had bad characters due to grammar checking tool.

    2. Dot and Cross Product Didactic Assets now have a demo scene at the bottom of their help page, not for the asset itsel but further educational demonstrations about both products.

    3. Dot and Cross VOP HDAs got "Product" added to their label/description.

    4. Finally... With Array Aggregate one has access to min(), max(), avg(), product(), etc. 😅

    5. Array Aggregate Demo Setup was inspired and simplified from David Burpee's setup for localized normalization . https://github.com/davidburpeedesign/HoudiniLibrary/tree/main/LocalAttributeNormalization

    6. Vector Visualize SOP Vector Type will default to "Vector" now when when it's set to Auto and the typeinfo is none, instead of defaulting to Position.

Cheers
prb

Educational HDAs for Lecturers and Students

14 Aug 20:26
35ac3bf

Choose a tag to compare

A break from features to provide Educational content that can visually and interactively demonstrate concepts of linear algebra, like vector, matrix, dot and cross product and inferring a matrix from two directions.
Looking forward to hear people's feedback on the effectiveness and usefulness.

If you're a lecturer looking for ideas on how to present with some of these check this video:
VIDEO

ADDED

SOP Nodes

  • Cross Product Didactic. Interactive demonstration of Cross Product and Double Cross Product.

  • Dihedral Align Didactic. Interactive demonstration of the Dihedral(VEX) / Align(VOP) operation.

  • LookAt Didactic. Interactive demonstration of the Look At operation.

  • Matrix Components. "Interactive demonstration of a 3x3 and 4x4 Transform Matrix, its values and how that drives transformations.

  • Vector Components. "Interactive demonstration of a 3x3 and 4x4 Transform Matrix, its values and how that drives transformations.

    SOPs

VOP Nodes

  • Hyperbolic. Collection of hyperbolic functions pertaining to a unit hyperbola position and area.

    VOPs

ADJUSTED

VOP Nodes

  • Direction/Length. Added Toggle to invert the inferred position.

Shelf Scripts

  • Color VEX Wrangle. Renamed to Color SOP Wrangle/VOP and now also auto colors Attribute VOPs.

    WrangleColorScript

NOT BACKWARD COMPATIBLE

SOP Nodes

  • Dot Product Didactic. Minor changes to comply with newly added Didactic assets

Extra notes

  • Click to Expand.
    1. Basic Math nodes now have an example scene.
    2. I really miss min(), max(), avg(), product() functions when conjuring examples for the Math nodes. Will have to take care of that in the next update.

Cheers
prb

ARRAY C = ARRAY A + ARRAY B. Simple!

08 Jul 06:37
0b5d3ca

Choose a tag to compare

With the basic Array Building done, it's time to have basic math operators that use said Arrays smoothly. Unfortunately, this also means creating many operators that overlap with native ones, so, in many cases, what was created instead was a composite of several operations into one. E.g. Discrete VOP.

Yet, from now on, many simple setups can take advantage of Array auto-looping operators and be expressed much faster. Feels good!

I'm still missing ways to infer values from arrays, e.g., avg() or min(). So I'll have to tackle that in the future.

ADDED

VOP Nodes

Array support is implied. Instead of a brief description for each, the corresponding VEX/VOP functionality will be enumerated. Plus extra functionality.

  • Additive. Add and Subtract operators.

  • Multiplicative. Multiply and Divide operators.

  • Discrete. Floor, Ceil, Round, Truncate, Modulo. Plus Oscillation and custom rounding.

  • Lerp. Linear Interpolate, with float or multidimensional value.

  • InvLerp. Inverse Lerp or Linear Step. Fitting a value between two values.

  • Sign Value. Sign. Plus defining what should be the output for each case.

  • Angle Formats. Radians. Degrees. Plus Circle Unit and Cosine of the Angle.

  • Trigonometric. Sine. Cosine. Tangent. Arc Sine. Arc Cosine. Arc Tangent. Plus 15 other trigonometry function.

  • Exponential. Power. Root. Logarithm.

  • Direction/Length. Length. Normalize. Distance.

  • Dot. Dot. Plus optional normalization.

  • Cross. Cross. Plus optional normalization.

    VOPs

Shelf Script

  • Helpwiki Starter. Select a node and press this to generate Houdini wiki markdown content based on the node's inputs, outputs, parameters, icon, etc.

    Shelf

Due to Summer activities scheduling, it was not possible to include at the time of this release, the usual example HDAs that demonstrate the nodes practical application and features. I'll have to address this in a future release. That said, all nodes are documented (? button).

Extra notes

  • Click to Expand.
    1. Node Labels: Dashing lines were added to make them stand out without being obnoxious with a repeating word. This was found necessary due similar names to native math operators. So, this helps with disambiguation.

    Menu

Cheers
prb

Dashing access to Attributes and Groups. More array support. v3.0.0

17 Jun 22:23
ad7e41d

Choose a tag to compare

This release focus on geometry attributes and group. An effort was made to also provide quick and easy menus that speed up the process of sourcing the desired attributes or groups. Some also continue the effort of providing hand array generation or handling.

Release video

ADDED

VOP Nodes

  • Build Attribute Array. Given an array of elements' ids, source the attribute value for each element into an array.

  • Expand Group. Returns an array of geometry elements' ids that are reached by a group syntax

  • Import Attribute. Import geometry attributes with ease.

  • In Group Array. Split the input geo elements' ids into two arrays based on their membership to a group.

    VOPs

NOT BACKWARD COMPATIBLE

SOP Nodes

  • Visualize Matrix : Changed Scale base parameter to be based on primitives' bounds, not on edge lengths, to better support packed prims, since they have no edges. Visualize Vector doesn't require said adjustment for now.

Extra notes

  • Click to Expand.
    1. Format included in Expanded Group and In Group Array to avoid having to use so much Vertex/Edge Formats HDA. But still use it for finer control.

Video: https://youtube.com/shorts/6d6k79sbvsE

Cheers
prb

Before Auto Looping, one needs to Array. v2.0.0

29 May 03:35
10beb7f

Choose a tag to compare

Before providing more operators that support arrays signatures, there should be more ways of building arrays. This release provides some builders for abstract arrays, while the next release will provide ones based on geometry attributes/groups.

ADDED

VOP Nodes

  • Build Constant Array. Builds an array of a given size filled with a unique value.

  • Array Resize. Conditionally resize an array with desired a fill value.

  • Build Indices Array. Build array of indices with transform and limit options.

  • Build Shuffle Array. Build array of shuffled sequential indices.

  • Build Uniform Array. Outputs an array of uniformly distributed values.

  • Build Random Array. Build an array of different unsorted random values.

  • Ramp. Shape float data with either a float or vector ramp.

    VOPs

ADJUSTED

SOP Nodes

  • Dot Product Didactic. "Helper Geo" disk now has a proper cosine gradient, linear instead of radial.

NOT BACK COMPATIBLE

VOP Nodes

  • Limit Range. Renamed ports/parameters "begin"/"end" to "first"/"last" respectively.
  • Wipe Range. Renamed ports/parameters "begin"/"end" to "first"/"last" respectively. Removed ramped output since it's unit (0 to 1) and can be just ramped by the new Ramp VOP.
  • Connected Elements. Removed "Topological Order" port, it's just a parameter option . VEX compilation sped up.

Extra notes

  • Click to Expand.
    1. Rounding methods introduced for some integer signatures (converted from floats), where the core decider is a limit value that determines if the float will be rounded to the previous or the next integer. There are additional mirror and limit options. Same method will be seen in a Discrete VOP.

    2. Arrays Auto Resize can now use the first element as fill value. It won't provide the option to resize up the array at the start through, just the end.

    3. SLERP multidimensional method for Build Random Array and Build Uniform Array will indeed use slerp() for matrix, matrix2 and vector4 as quaternion. matrix2 is promoted to matrix3 and interpolated similarly, while both vector2 and vector are interpolated by their direction and length.

    4. Ramp uses a bunch of hacks to work properly. It's not animatable like the native but doesn't require going to the SOP level to edit it. I do wish its graph was visible in the node network too, not just in the parameters. A bit like blender: Ramp

    5. Build Constant Array can feel redundant with Array Resize but its simplicity with the added sequential indices arrays makes it worthwhile.

Cheers
prb

A Dashing First Release! v1.0.0

21 Apr 09:37

Choose a tag to compare

First release is humble and a revamp of assets I've first published on Orbolt and also representative of the type of nodes and principles that will be strived for in further releases.

ADDED

Scene files

  • DASH_all_nodes.hip. Scene with all DASH nodes instantiated.

SOP Nodes

  • Edges to Lines. Create polylines or line segments from edges with extra info.

  • Visualize Matrix. Quickly visualize matrix attributes and packed matrices in the viewport.

  • Visualize Vector. Quickly visualize vector attributes in the viewport according to their metadata.

  • Dot Product Didactic. Interactive demonstration of Dot Product.

    SOPs

VOP Nodes

  • Connected Elements. Returns an array of geometry elements connected to the input element.

  • Vertex/Edge Formats. Convert vertex or edge ids between single id and pair of ids formats.

  • Bend. Bend deformer with many range and posing.

  • Transform 1D. Create a 2×2 transform matrix and transform a float with it.

  • Limit Range. Limit, shape and repeat a range of values.

  • Wipe Range. Make a transition over a range.

  • Iterability Cast. Control if an HDA output is single or array driven by an input.

    VOPs

Settings

  • DASH_SingleMonitorBuild desktop. A Houdini UI layout with a vertical network view and a Geometry Spreadsheet by default.
  • Random color VEXpression. Color elements with a random Hue, rainbow effect. (Unlike Color SOP Random method).
  • DASH - - - Utils Shelf Tab with 2 scripts.
    • Color SOP Wrangles Automatically color SOP wrangles according to their class.

    • Delete Parm Channels Delete parameters animation and expressions on selected nodes.

      VOPs

Cheers
prb