Welcome to POPs Alpha 5! It’s a significant update from POPs Alpha 4 which came out in October.
Here are the release notes as a Notion page (formats better and always the latest). Click here:
Here is the full package - the installers for Windows and both macOS (not notarized yet), and all the examples:
POPs Alpha 5 Package zip - December 21, 2024 - updated with macOS-arm fix
Alternately, the Alpha 5 release notes are inline here:
POPs Alpha 5 has numerous new features and workflow improvements, improves consistency, has numerous bug fixes, and introduces more new concepts that we want to try out on you.
Examples for several of the new concepts/tools are mostly in Examples/Overview.toe in red comments at the bottom. But it is good to review all parts of Overview.toe and all files in the Examples folder as minor improvements have been made everywhere.
Thanks again to our contributors of examples. The examples of Roy and Tim Gerritsen have been edited using some new features and workflows. The Solid_Geometry examples of Peter Sistrom have been heavily updated with much simpler workflows and commentary, written as he worked on it. The example of polyhop is revised, as are those from Derivative staff Vincent Houze, Guillaume Lussier, Markus Heckmann, Jarrett Smith and myself, Greg Hermanovic.
( If you haven’t read Release Notes Alpha 4 - here is it. )
Release Notes 2023.31974 (31975 on macOS intel) (Dec 17, 2024)
-
new Math Mix POP - The previous Math Mix POP was renamed to the Math Combine POP so all its previous functionality is there. When you start up your files, popups will tell you the names of your existing Math Mix POPs that are being switched.
-
There is a new Math Mix POP and it is simpler: It has auto-naming of the multi-inputs’ attributes (like
in1_P
andin2_Tex
(the second input’s P, and the third input’s Tex)) and you can just select those names from the attributes menu. (they are read-only - you can’t change or output them directly). -
The new Math Mix POP has the Uniforms and Combine pages as before, but it does not have the New, Pre and Post pages. And it doesn’t have all the attribute combining of the multi-POP inputs that was in Math Mix. It is easier to work with but a bit more limited.
-
Use the new Math Mix unless you need the functionality of Math Combine.
-
-
pseudocode - Math Mix and Math Combine POPs now show pseudocode in their popup info to help you understand at a glance what they are doing vs inspecting their pars on their Combine and Uniforms pages.
-
This is a reminder about the new sub-menu of built-in attributes on the bottom > of the attribute menus on POPs like Math * and others.
-
Proximity POP
- you can take a second input to compare the first input’s points to the second input’s points.
- output points with attributes to the target (distance, direction…) for instancing, instead of only outputting 2 segment lines
-
Neighbor POP
- you can take a second input to compare the first input’s points to the second input’s points.
- you can output an attribute that is the simple average of the neighbors, or a weighted average of the neighbors it finds using a rolloff function - closest neighbors with highest weight (a smoothstep() function).
- you can use edge-connectivity to find adjacent points in triangles, quads. (not yet line strips or lines), in addition to the distance to neighbor points.
-
new Point POP is similar to Create POP but it creates points only and has no inputs. Suitable for creating single-point POPs that can act like Uniforms in a Math Mix POP or Math Combine POP when combining with other attributes. (Math Mix and Combine now let you combine single-point POPs with multi-point POPs.)
-
significant change - Connectivity = None on generator POPs: Previously the generators POPs had a Connectivity choice called None which created a Point Primitive for each point. Now when Connectivity is None, it creates points but no point primitives, as the name would suggest. Instead, the Connectivity choice Point Prims will generate a point primitive per point. This is the default for point cloud POPs like Point Generator POP and Point File In POP. What’s the difference? to render points directly the need to have a point primitive. When there are none, you see the point in the POP node viewer, but not in the Render TOP.
- Create POP lets you strip or create point primitives.
- Sphere POP: added None connectivity and fusing.
-
Convert POP - there are more conversion options between points, triangles, quads, linestrips.
- You can open/close linestrips with a Convert POP, and with CHOP to POP.
- CHOP to POP also has a Closed toggle to make closed line strips.
-
deleted the Math Series POP and moved all its functionality to the Blend POP which is similar. So if you have 10 inputs, Blend can average/add/max/etc any attribute(s) across all inputs.
-
Floor, Round and Ceiling was added in the Quantize menu of Math POP and Math Mix POP. (It’s already in the big Operation menu of Math and Math Mix).
-
new Quantize POP has features taken from the Limit POP pus more, and Limit POP has its quantize features isolated on a second page. Use Quantize if that’s all you are doing.
-
Point Thinning parameters on new Thin page on Delete, Group, similar to POP to DAT and POP to CHOP. It thins primitives and vertices too. Point thinning is also on Point File In POP.
-
Box POP now has option for rounded corners.
-
Tube POP now has a simple Endcaps option.
-
Delete Input Attributes: For working with single attributes at a time: The Delete Input Attributes feature introduced in TDAlphaPOPs4 on the Lookup POPs is now implemented on the Common page on all nodes where it makes sense. It removes all attributes that are not being modified by a POP, making it easier to work with a single attribute. (there is no memory benefit though, attributes going through a POP take no memory if they are not being modified.) It makes it easier to split off one attribute in a branch. When this flag is on for a POP, you will see a “<” after the attribute name in the POP node viewer: Color < means that the node only outputs the Color attribute.
-
new concept - Parameter Values Per-Point - was extended to the Noise POP (was in the Transform POP in Alpha 4: each parameter can have a separate value for each point. In a parameter’s expression, like Translate X, you write
me.inputs[0].pointItr(’Random’)
. If the attribute Random contains random numbers, each point will be translated in X a random amount. The syntax for this will likely change in upcoming builds. -
popViewer (component in palette) improvements
- You can drop a POP onto popViewer with Viewer Active off to switch to a new POP - it works as if Viewer Active is on.
- improvements to rollover display of numeric values and low-high ranges (top-left)
- option to project bounding box onto planes/axes
-
POP node viewers (viewer on each node) rclick menu show the “d” shortcut to turn on dot highlights on points. (more visualization improvements coming in alpha 6 - sorry!)
-
Particle POP - doc page here - Particles POP. Examples in Examples/Overview.toe /ParticlesPOP. More examples are in Examples/Particles/ folder.
- recent changes of Particle POP:
- renamed the reserved particle attributes to have “Part” prefix
- added optional PartMass, PartDeath and PartDrag Attributes
- added optional initial drag attribute parameter
- hitting Start will re-initialize the system if it was just running. hitting Init recreates particle buffers.
- added the option to not output point primitives.
- Fixes
- fixed initial error with target node having zero particles initially.
- fixed missing point primitives when a feedback loop is enabled.
- fixed a problem with life variance not working well when the max num particles is increased.
- recent changes of Particle POP:
-
Copy POP has a Template page where the possible transforms driven by the template attributes has been expanded. Copy POP also has more control over the Dimensions generated.
-
Analyze POP - you can specify * in the input Attribute(s) parameter to analyze all the attributes at once. (or multiple attribute names).
-
Noise POP improvements
- defaults to Add (3 noise values) versus translating along a vector (which is 1 noise value along the normal vector)
- Vector Size separately controls the X Y and Z noise.
- The new Output page has Derivative and Curl noise attribute it can output (experimental, may change)
-
Dealing with integer (int or uint) attributes: All the Math* POPs, Limit, Re-Range and Normalize POPs convert the attributes they use to floats if they are ints, then they do their math operations. Finally, on some POPs, the user has a “Cast to” menu to choose to output them as ints or floats.
- more places in POPs deal properly with integers.
-
Render Pick DAT and Render Pick POP - now you can specify * to get the values of all attributes - wild-card the attribute names and get them all out (within some hardware limitations of # of attributes). Useful for picking points of POPs in a Render TOP where you don’t know the attributes it may have.
-
TD will give you a warning when Derivative has renamed OP types - like Math Series POP changing to a Blend POP.
-
POP to TOP and TOP to POP had a major upgrade: When converting POPs, where their points are arranged in rows and columns (and optionally slices - two or three Dimensions) into TOPs - the TOP resolution/depth can be the same as the 2 or 3 dimensions of the POPs.
And then TOPs as 2D rows / columns (and optionally 3D textures) of position+ data converted to POPs can be converted with an equivalent 2 or 3 dimensions. Send a Torus POP into POP to TOP (set Layout to POP dimension), then send back TOP to POP (set to Position and Active, or Position).
supports texture arrays (N 2D arrays), as well as 3D textures.
See Overview.toe /InterFamilyPOPs - POP to TOP to POP with Dimensions -
POP dimension of 1: fixed a case when there is a single point, it now is Dimension 1. We generally made a dimension containing 1 element be acceptable, like 7 1 5.
-
significant UI Change - vec3 to float3: how we call multi-component attributes:
- was float vec2 vec3 vec4. now float float2 float3 float4 (reason: future shading language talk this way. also similarity to simply “float”)
- i.e. float3 is an attribute vector type with 3 components.
- A float3 can also be a “direction vector”: Direction or Dir. If an attribute is shown as float3 (Dir) then it is tagged so that when you apply a (4x4) transform to it, only the rotation part of the transform is applied. Otherwise when a float3 that is an xyz position (a “position vector”) has a 4x4 transform applied to it, the whole matrix is used including the translation part.
- Double precision is now double double2 double3 double4.
- T tangent attribute is a float4: The 4th value signifies what the handedness of the coordinates are (it’ll either be 1 or -1). It’s used when generating the 3rd vector (bi-tangent) to create the full coordinate space in the shader.
-
Feedback POP now has the same Initialize Start controls as other parts of TouchDesigner, such as the Timer CHOP, Particles POP, Notch, Animation COMP, etc. It has Pre-Roll (run sim for N seconds before initialize is complete), Play/pause, Go to Done, plus in the Info CHOP, it shows its states.
-
Ray POP now can make a line strip created from bouncing rays off polygons (in the second input), gathering attributes as it goes. Control of max length per-ray, lift starting point of ray from its origin, max number of hits. Also a new
RayInside
attribute indicates if the starting point is inside or outside a closed 3D volume. -
DAT to POP - It is now possible to override the automatic creation of attributes and specify the created attributes as arrays.
-
Lookup Attribute POP now has re-ranging of the lookup attribute, default assumes 0-1.
-
the 3D COMPs that are in OP Create - we replaced SOPs with POPs in our default Light, Camera, Null, Bone, Ambient, Environment and other 3D COMPs.
-
The new GLSL Create POP gives access to the Index Buffer. It’s quite bare-bones, docs coming (ask us), and it will eventually be integrated into other GLSL POPs where it will be more functional.