Skip to content

Releases: probiner/DASH

FOR ARRAYS BY ARRAYS

01 Sep 18:52
da41bdd
Compare
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.

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
Compare
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 BACK 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
Compare
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
Compare
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.

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 BACK 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
Compare
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
Compare
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