Alex Martinelli Profile picture
Feb 7 34 tweets 19 min read
A collection of #geometrynodes tips and tricks (full node-tree + optional demo video)

Starting with a simple but very useful value-loop. Can tweak the RGB curve from the current linear behavior to your preferred setup.

#b3d
Can also add your tweening function in between.

Here using cx^2 + (1-c)x

(for more details about tweening see: )

#b3d #geometrynodes
Image
Displace geometry along normals. Another simple one, but needed as foundation for future examples.

Here the noise factor (single value per position) determines how much to offset each point along its normal. Multiply-node controls global noise strength

#b3d #geometrynodes
Examples with different texture configs ImageImageImageImage
Mirrored displacement. Handy if you need some noise randomness while maintaining symmetry. Not limited to noise only, the trick is simply to have centered geometry and take the absolute of the position before passing it to the next processing node

#b3d #geometrynodes
From this node setup, keep the absolute math-node only for the wanted mirrored axis (e.g. taking the absolute of position.x will give you mirrored symmetry on the x axis) Image
Array. I'm expecting to see this soon as an official node (together with the other most popular modifiers), but for now this simple setup does the trick, and is easy to expand upon.

#b3d #geometrynodes
Image
Circular Array. The trim-curve node doesn't work on curve-line (nor any other cyclic spline) so you'll have to hack in some other way if you want just partial circle segments.

#b3d #geometrynodes
Curve profile modelling. Profiling a circle-curve with a line manipulated via the float-curve node.

#b3d #geometrynodes
node-tree Image
Raycast + curves + noise. I'm sure the setup can be improved, but it's already a simple/good enough foundation for many effects like cables, electric bolts, plants, etc.

#b3d #geometrynodes
Image
Spiral. GN has already a "Curve Spiral Node", so most likely you can just use that, but I like this setup because it relies on the mathematical formulation, so I can easily get different types of spirals (see next tweet)

#b3d #geometrynodes
Archimedian, hyperbolic, fermat and logarithmic spirals. Tweaking the logarithmic can also give you the golden spiral ImageImageImageImage
Randomized distribution along curve. Given a curve, allows to distribute any given geometry along it, and randomize such distribution via the Selection socket.
Sample a defined max number of points and for each get a random value (between 0 and 1, based on the ID), if value is below 0.5 instance the geometry on the point Image
Displacement by geometry proximity. Here the icosphere (external object) geometry controls the strength of the wave displacement for the GN grid. The closer a point of the grid is to a face of the sphere, the least displacement will get.

#b3d #geometrynodes
All depends on how we want to map the proximity to the displacement. Here it tends to zero strength based on icosphere scale and faces, but could use the same info to build more rich logic. Image
Displacement by geometry proximity. Worth stressing that this setup can control not only displacement strength, but in fact any "field" property (any diamond shaped socket). Here wave texture properties are controlled at position level based on proximity val

#b3d #geometrynodes
Faces extrusion driven by video. Each face extruded along its normal, here using video texture intensity as multiplier factor. The input vector to the group is the UVMap, useful to properly map the video to the faces. Extrude node is available in Blender 3.1

#b3d #geometrynodes
Node-tree and UVmap parameter detail Image
Quick and dirty camera culling for distributing points. Assumes camera is track to the object of interest and ignores the actual view frustum. The "cosine threshold" value (-1,1) gives control on the "culling strength".

#b3d #geometrynodes
This relies on the fact that the dot product of two normalized vectors is equal to the cosine of the angle between them. By comparing the cosine value we can filter out faces based on how much they "look away" from the camera location Image
Loop texture. My setup for proper looping (e.g. noise), using W parameter of 4D node. I don't use the "position" param because often makes motion too visible.
Downside here is extra computation and "softening" during blend/mix of the two textures

#b3d #geometrynodes
The "noise texture" group is simply to have single texture setup, the only difference is the passed W value. With the map-range you can control when the two texture blend (e.g. spread across full run or on shorter span) Image
Dangling Splines. Simulates gravity for each spline assuming start and end points to be unmovable. "math power" + vector (strength) to control "looseness". The float curve can also be used to customize behavior.

#b3d #geometrynodes
You can then simply plug-in some noise to have the effect of wind or other kind of affectors motion.
3D point grid. Handy initial setup to work on full volumes instead of faces. I used this for many of my recent posts regarding point-cloud and scientific viz.

#b3d #geometrynodes
Allows for example to evaluate 3D texture for the full volume, like in this example with a Voronoi texture.
Filtering of points can then be added via the "delete geometry" node.
#b3d #geometrynodes
Mesh volume to points. More complex setup compared to the above one, but give full flexibility of using an existing mesh to create the point grid. Only points inside the mesh are considered. Setup isn't perfectly accurate, but is sufficient for basic cases.

#b3d #geometrynodes
First a 3D grid is created out of the geometry bounding box, then points outside the mesh are removed. We again leverage dot-product as selector for the "delete geometry" node Image
As show in the past you can then have textures computed at each point, and get effect like the Wave shown here on Suzanne

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Alex Martinelli

Alex Martinelli Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @5agado

Nov 3, 2021
#nodevember2021 day 3-4, 4-sided

3D recursive subdivision in geometry-nodes. A popular one, but was a good exercise for me to do it purely in GN after old work in AN

#nodevember #b3d #geometrynodes
#nodevember2021 day 3-4, 4-sided

Just more subdivisions. Interesting to see the approach from @FaustXins and @Bbbn192. Better randomness (and cleaner node-tree), but not sure how it would work in pure 3D subdiv.

#nodevember #b3d #geometrynodes
Read 12 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(