Members

36

603

Members

33

2,281

Members

24

3,038

Members

16

12

## Popular Content

Showing most liked content since 08/21/2019 in all areas

1. 16 points

## 25th Anniversary of Jeff (Old School) Wagner joining SideFX!

Hello Houdini Users, Today we celebrates the 25th Anniversary of Jeff (Old School) Wagner joining SideFX! Over the past 25 years Jeff has helped so many of our customers learn Houdini through his detailed Tech Support replies. His insightful online tutorials. And his enthusiastic live presentations. Jeff has never run out of exciting new things to show us in Houdini, (and Prisms in the early days). If you would like share your experiences of watching Jeff's classes please do so. And take a moment to wish him a Happy Anniversary! All the best, Jenny Blacklock. Technical Support Manager SideFX
2. 7 points

## Complex growth or destruction effect in recent movies

Not that recent, but excellent execution:
3. 6 points

## biological modelling methods

Great stuff, Nicolas. This is starting to look Giger-like already! You don't necessarily need to create UVs in SOPs, though. To project textures on those VDB meshes it's arguably more efficient to do in a shader: 1) Transform position to world space. 2) Curve IDs shown as random colors. 3) U value from curves in HSV colors. 4) Direction to nearest curve position. 5) Tangents from curves set to absolute. 6) Direction to curve oriented along tangents. 7) V coordinate enclosing each wire. 8) UV coordinates in red and green. 9) UV mapping an image texture. 10) Texture based displacement along curves or at least what happens when mandrills do the job ; ) The material snippet: string geo = 'op:/obj/curves/OUT'; P = ptransform('space:current', 'space:world', P); int prim = -1; vector uvw = vector(0.0); float dist = xyzdist(geo, P, prim, uvw); vector pos = primuv(geo, 'P', prim, uvw); float u = primuv(geo, 'u', prim, uvw); vector tangent = primuv(geo, 'tangentu', prim, uvw); matrix3 rot = dihedral(tangent, {0,1,0}); vector dir = normalize(P - pos); vector dir_mod = dir * rot; float v = fit( atan2(dir_mod.z, dir_mod.x), -M_PI, M_PI, 0.0, 1.0 ); P = set(u, v, 0.0); curly_curves_shader.hipnc
4. 5 points

## Procedurally reverse objects

if each of your pieces is mostly enclosed then you can measure volume per piece, if it's negative, it's inverted ts_reverse_inverted_pieces.hip
5. 4 points

## The Book of Shaders in Houdini Vex

Hi People! this has a lot of potentials I think sources ---- https://github.com/JosephFiola/BookofShadersHoudiniVex https://thebookofshaders.com Joseph "While Houdini does support GLSL code to render shaders into the viewport, I have not implemented this yet. For now these examples are only visible in the render view using the Ray Tracing render engine." We have examples for 2 and 5 chapters .....if you plug inline-code in CD on Point Vop, you can see everything..and its easy to manipulate.. I am interested to know some process ( Just what to change ) and appreciate help with this. converting rest of some chapters like patterns for example to inline code https://thebookofshaders.com/09/ https://thebookofshaders.com/08/ Thanx
6. 4 points

1. Regarding the pinch: You can get rid of it by either setting the 'destination min' of fit2 to something greater than 0. Or by simply unplugging it from the next node called smooth2. 2. Regarding a more casual solution on arbitrary curves: There is no shame in using standard SOP nodes. The resample node can create a U attribute running along each curve from 0.0 to 1.0. The color node maps float attributes such as U. The attribute transfer node blends those colors to the grid by taking some nearby samples. .. which can then be smoothed even further by an attribute blur node. In a VOP measure the distance with xyzdist, tune the result with a curve ramp and mix your gradients against a solid background color. colorcurve.hipnc
7. 3 points

## Fuel Based Rocket Launch

I put together a fuel based version of the basic density based starter rocket launch scene. This scene includes a couple of additions, that I have seen posted, here on OdForum, including Fencer's smoke drag, based upon distance from origin, and hand drawn velocity curves to encourage the smoke to travel along the curve shape. The support nodes for the hand drawn velocity are shaded purple, in the DOP network. Play around with the fit values on the gas wrangle to alter damping. Increase popnet particle count to send more fuel into the system. Increase popnet life to make fuel linger, longer. ap_rocket_lift_off_fuel_based_090919.hiplc
8. 3 points

## The little things about houdini

I've been using Houdini for over 20 years. You? What I mean is, have you spent long enough working in Houdini to get used to it? These are just my opinions. 01. If it can be easily changed with a line of code in the 123.py then it doesn't need to be hard coded in the gui. 02. You say project a few times. That's not the terminology. It's a hip file, or document. The project is part of the hierarchy that contains a directory for hip files along with other directories. But yes, a "*" next to the file name saying it hasn't been saved after the latest change would be great. You should submit an RFE for that. I bet other people have. 03. Preview of what? A view of the network? Which network? The last render? Which render? Where would the preview go? 04. Nah. Why? Cross platform drag and drop is sketchy. If you can do it with a script then you already have it. Importing with a file SOP is reliable. 05. It's not annoying to open another Houdini. I do it all the time. These aren't web browser tabs. If you want to work across a bunch of hips consider putting them in the same hip file or building digital assets. 06. The curve SOP? The draw curve shelf tool? What's missing? You can absolutely select multiple points. 07. Yes, the Font SOP kind sucks, but it's bare bones and works. Houdini is not a text editor or a vector design tool. If you need something fancier then do it in Photoshop, Gimp, illustrator, or Inkscape then import it as an eps or ai or exr or png or whatever. 08. Yea, the gui customization could use a tool for tweaking it, but I'd put that way on the bottom of the list. Houdini Dark/Light/Pro is kinda lame. But it works well enough for me and keeps too many people from sliding down the endless rabbit hole of pointless gui customization. And sure, the gradients are a little funky, but whatever.
9. 3 points

When decorating three-dimensional meshes I usually rotate() the directions from N to up so they are horizontal for atan() to work properly. float radius = chf('radius'); float tol = chf('tolerance'); int pt_near = nearpoint(1, v@P); vector pos_near = point(1, 'P', pt_near); vector nml_near = point(1, 'N', pt_near); float dist_near = distance(v@P, pos_near); vector dir = normalize(v@P - pos_near); vector up = set(0,1,0); matrix3 m = dihedral(nml_near, up); dir *= m; float angle = fit( atan(dir.z, dir.x), -M_PI, M_PI, 0.0, 1.0); vector color = hsvtorgb(set(angle, 1.0, 1.0)); float width = abs(dist_near - radius) < tol; v@Cd = color * width; color_wheels_3D.hipnc
10. 3 points

You can create lots of color wheels around points on a grid: float radius = chf('radius'); float tol = chf('tolerance'); int pt_near = nearpoint(1, v@P); vector pos_near = point(1, 'P', pt_near); float dist_near = distance(v@P, pos_near); vector dir = normalize(v@P - pos_near); float angle = fit( atan(dir.z, dir.x), -M_PI, M_PI, 0.0, 1.0); vector color = hsvtorgb(set(angle, 1.0, 1.0)); float width = abs(dist_near - radius) < tol; v@Cd = color * width; color_wheels.hipnc
11. 3 points

## biological modelling methods

I posted some results of first tries of adapting your workflow on my behance, Konstantin, i hope it's not a problem for you. https://www.behance.net/gallery/85035827/Dogs-of-Tindalos
12. 3 points

## Genetic Algorithms in Houdini

Here is the second part - still with music and higher screen resolution though. If I end up doing another one of these, I will increase the UI size in Houdini. The application was to find simulation parameters for a tree simulation. The parameters subtly depend on each other which makes genetic algorithms reasonably suitable. The real challenge is expressing the target function. In my case, I just used the volume of the convex hull but the total length of all wires may be another interesting one to consider.
13. 3 points

## Custom AOV with V-Ray ?

Haha, well, marketing guys promised they'll try to think of something. As to the custom AOVs - it's now supported. You can even isolate the AOV to specific primitives inside an instance hierarchy(e.g. agents) using attributes. We kind of forgot about it, and nobody asked during the Beta. All the best!
14. 3 points

Hi Tim, you can create a wheel by color-mapping the arctangent of your point positions. The smooth function's rolloff parameter can then be used to control the bleeding amount around the circle. colorwheel.hipnc
15. 3 points

## Wireframe and UV Distortion with mantra

For a wireframe shader with consistent line widths, first create a primitive attribute that contains all point positions. Then inside a shader choose point pairs for ptlined() to determine the shortest distance to your shading position to check against a custom wire width. // primitive attribute with point positions int pts_prim[] = primpoints(0, @primnum); v[]@pos = {}; foreach(int pt; pts_prim){ vector p = point(0, 'P', pt); append(@pos, p); } // shader snippet feeding point positions into ptlined() // determining shortest distance to check against wire width. int num = len(pos); float dist = 1e6; for(int i = 0; i < num; i++){ vector pos_0 = pos[i]; vector pos_1 = pos[(i + 1) % num]; float dist_curr = ptlined(pos_0, pos_1, P); if(dist_curr < dist){ dist = dist_curr; } } stroke = dist <= stroke; wireframe.hipnc
16. 3 points

## Smooth outline of 2D pointcloud

if connect adjacent points provides good enough outline for your pointcloud then you can as well just use Triangulate 2D + Divide SOP to get exact outline, which will even match outline points nr_foot_outline_alt.hiplc
17. 2 points

## How to have one line cut off a line and have it continue below it?

while easily possible without coding, I just did a quick wrangle vector startP = chv("startP"); float width = chf("width"); float spacing = chf("spacing"); float length = chf("length"); int nlines = ceil(length/width); for(int i=0; i<nlines; i++){ float linewidth = min(length - i*width, width); vector linestartP = startP + {0,-1,0}*spacing*i; int pt0 = addpoint(0, linestartP); int pt1 = addpoint(0, linestartP + {1,0,0}*linewidth); addprim(0, "polyline", pt0, pt1); } ts_paragraph_line.hip
18. 2 points

## Collaboration with hdbp.io

Hi everyone, especially the ODForce Team. I am the creator of www.hdbp.io, an In-browser houdini-viewer. The files uploaded in odforces threads are amazing, but currently very cumbersome to open, especially when you have multiple files in one thread. (You know the deal: Download the file, save it somewhere, open houdini, finding the file, opening it...) With hdbp.io I think we could change that. Users can still download files directly, so nothing gets lost, but being able to open them in the browser would obviously be a big help. Of course hdbp.io is completely free. Thoughts? Any feedback is welcomed.
19. 2 points

## EmberGen pyro real-time engine

Yeah control is a big thing that tends to slow things down. Here's another fun one: https://paveldogreat.github.io/WebGL-Fluid-Simulation/
20. 2 points

## How create a constraint network for simulating Car Suspensions?

It's been a while (!) but here's an interim development of the original double wishbone chassis concept. Now you can fully adjust chassis to match car - it's all done via names - so you can transform the model in any way you like (just don't change the point numbering as constraint naming is based on point numbers). Effectively bullet is used to make the constraints easy and the only real simulation is on the wishbone springs. Wheels are pre-animated along a path and then adjusted for roll, ackerman steering angle (inner and outer wheels at different angles). Still quite tricky to adjust the sim because mass, spring strength/damping, load transfer and conetwist maximum angles are all interrelated - change one and you need to change all the others! This test Porsche is overly springy to illustrate the basic concepts at work especially the load transfer forward to back. Needs more work on rest to action transition period, too! To change the car simply bring the new car and wheels into the chassis node and swap out, make sure to transform chassis geo to fit. Change path, collision ground as you see fit.... car_rig_bullet_julian.hip
21. 2 points

## Vector Field visualization Guide Smoke

change the gasmatchfield1 rank to "Vector" instead of "Scalar"
22. 2 points

## How can I change Template node's color?

There is actually an easy way to adjust this. You can just adjust the viewport settings for the template only. (not selectable template) You can take it off ghosted, etc.
23. 2 points

Hey @Aizatulin & @srletak Sorry for the delay in getting back... Thanks for these solutions - especially the latest side-by-side Aizatulin. I've been working on a setup on/off all week & I think I'm pretty much there now with the combination of what to do in vex/vops. It got a little more complex as I've decided to try and implement displacement which is based on the above techniques, however with some separate controls, so I'm just tweaking & learning as i go. I'll see how far i can get over the weekend & with a little luck post some updates sometime soon. Thanks again to everyone who has replied!!
24. 2 points

## Sierpiński triangle with VEX

Cool. I changed the code that you gave me and made this, it's almost the same. sierpinski.hip
25. 2 points

## How could I align several geometries (Vertically/Horizontally to Center/Top/Bottom/...)?

It's the most versatile 3D package I know and I don't even use it for effects. I guess it's just Houdini's entirely different philosophy and scope that can be overwhelming (and sometimes disappointing) in the beginning. I see Houdini rather as a system for building procedures. But some users don't embrace this and keep requesting to turn it into another Cinema 4D with better simulation abilities.
26. 2 points

## Sierpiński triangle with VEX

Here is an approach using 3 for loops (the inner can be avoided). I do not really like this approach, because I'm pretty sure, that there much more elegant solutions out there (even without recursion). sierpinski_vex.hipnc
27. 2 points

## clifford torus effect

Hi @angelous4x you have an idea I have an idea, + + = maybe. transform before /\$PI *2 = x and y Confuse a cat play with this and your idea. complex math find http://wordpress.discretization.de/houdini/ //q=(1+i+j+k)/2 must be 1 Möbius strip float cos = v@P.z; float sin = v@P.x; float r = v@P.y; float c_sqr = pow(cos,1) -pow(sin, 1); float s2 = 1*sin*cos; vector C = set(c_sqr, 0, s2); vector B = {0, 1, 0}; vector N = cos * C + sin * B; v@P = C + r * N; //Sudanese surface. vector4 gamma(float t) { return set(cos(t), sin(t), 0, 0); } vector4 N(float tau; float t) { float tau_t = tau * t; return set(0, 0, cos(tau_t), sin(tau_t)); } vector4 f_tau(float tau; float x; float y) { return cos(y) * gamma(x) + sin(y) * N(tau, x); } vector sigma(vector4 v) { return set(v.x / (1 - v.w), v.y / (1 - v.w), v.z / (1 - v.w)); } float tau = chf("tau"); vector4 q = {1, 1, 1.5, 1}; q /= length(q); v@P = sigma(qmultiply(f_tau(tau, v@P.x, v@P.y), q)); or just use file from Matt Ebb a long time ago http://mattebb.com/blog/
28. 2 points

## Worms

Hi, I'm trying to recreate this very cool tyflow setup in Houdini. In the description he explain's how he is using dynamic PhysX rigidbodies and using attraction forces to move them, looks really cool. I've had a go with some success using the crowd system in Houdini with RBDs and a pop attract. Hip files here worms_03_GC.hip worms_05_GC.hip worms03.avi worms05.avi The idea works but I can't get a nice behaviour using the pop attract, has anyone got any ideas what might work better with the particle forces? Thanks worms_05_GC.hip
29. 2 points

## How can I control blending of two shapes, using an attribute?

I usually just build my own blendshape node with a simple VEX code using lerp() - just one line. https://hdbp.io/BjGNeLeB Easy to change to what you need: https://hdbp.io/e0iS3H5J I find it easier than Aizatulin approach, since you can control the attribute distribution completely by the nodes you want.
30. 2 points

## How can I control blending of two shapes, using an attribute?

Hi, you have two objects and want to use another object, to control the blend amount between both objects? Is this what you are looking for? blend_inside_controlGeo.hipnc
31. 2 points

## New project : UEFA Champions League

Finally, 2 years later... we are now allowed to talk about it. https://www.jordibares.com/post/2018-07-07/champions-league-rebrand/ The text is a bit lame but it is the only we are allowed to use... sorry guys.
32. 2 points

## Procedurally reverse objects

Shoot rays along the normals. If they all end up on the piece they are coming from you know it's inverted. inside_out.hipnc
33. 2 points

Probably the Attribute VOP is more intuitive but at the end of the day it will do exactly the same as the Attribute Wrangle. In my opinion it is much easier/faster to write code in the Wrangle, but this is just my personal (biased) preference. Here is another example, where I've rebuild a reduced version of my prevoius post. This is more to give you some inputs and a comparison between the Attribute VOP and the Attribute Wrangle, where I've used as input a curve, which has a color and radius attribute (for each point). The idea was to capture each point of the grid by xyzdist() to get the closest point on the curve. For this point you can read out the attribute (like radius / color or whatever you define). These attribute can be used gain more control over the color gradient, but you have to set the individually for the curve input. You are totally free how you set these attribute. color_attribute_example.hipnc
34. 2 points

## vex function find all attribute name

Hi Julien, with addpoint() you can reference an existing point to get all its attributes and group memberships: https://www.sidefx.com/docs/houdini/vex/functions/addpoint.html Also, there is a detail intrinsic, which stores all the point attribute names: s[]@pointattributes = detailintrinsic(0,"pointattributes");
35. 2 points

The same workflow applies for meshes, too. colorcurve_meshes.hipnc
36. 2 points

@meldrew and check this
37. 2 points

## Keeping RBD pieces from falling off

Hi, try to play with gravity dop and popwrangle dops in the DopNetwork and with timeshift sop in DOP_Import also test.mov Scene01.04_01.hipnc Edited: I've did some correction and re-uploaded the scene.
38. 2 points

## Genetic Algorithms in Houdini

I am not sure if this is the appropriate forum. I recently wondered how hard it would be to implement genetic algorithms in SOPs. The particular example I was curious about was if I could turn a box into a sphere by optimizing for a target function that maintains volume but minimizes surface area. Overall, this was easier than I thought and did not involve all that much code. I ended up recording a video that explains this: The underlying motivation was to get this working in PDG but I figured I had to start with SOPs first. Let me know what you think.
39. 2 points

## Flip Fluids deforming collision objects

Here is the i@stopped attribute included inside the if statement. I dropped the viscosity threshold, quite a bit, so the fluid would come to a stop quicker. if (@viscosity>3600){ @viscosity = 3600; @v = set(0,0,0); i@stopped = 1; } ap_SimCon1.hiplc
40. 2 points

## Direct Modeling HDA

My quarrel has ended. We found a solution, and Alexey politely took back his harsher words. That was a surprising and nice turnaround in the end.
41. 2 points

42. 2 points

## Direct Modeling HDA

HEllo , i was very surprised when i discover today you change the deal we made Alexey ! We deal : DM 1.0 (with possibility of updating to 2.0) for an amount of money. No you have change the deal . It's not this way that work. You cannot change the deal by your own. you have to ask everyone wich have do this deal with you to find a new deal. You are not D.TRUMP, don't act like him. it's not business it's bullshit. If you respect your community, it will grow like you never expect. If not, you will loose it. You can ask in gumraod to people to give what they want by explaining that it was a lot of work more than expected and you need money. I'm sure people like me are ready to support someone wich work hard. you gain support and credibility this way.
43. 2 points

## Matrices - CG Forge - Quicktip

For more tutorials, check out cgforge.com In this quick tip, I talk about matrices. If you've ever wondered about what a matrix is, and how they can be useful, then you'll love this introduction to the topic. Thanks for watching!
44. 2 points

## Proper Branching Topology

Just stick the branches into the trunk and other branches. You most likely don't need it to be water tight single perfectly modeled object like it might come out of ZBrush. Don't fall into a science-experiment mentality, it's an endless rabbit hole. Just get the pixels out
45. 2 points

## Direct Modeling HDA

Hi Alexey, Last year you said the upgrade from DM1 to DM 2.0 was going to be free, how do current DM users get the new version? thanks
46. 2 points

## biological modelling methods

Hi Mirabela, you could trail curl noise and mesh it with varying thickness. Finer details could originate from a displacement shader utilizing to the same curves again. curly_curves.hipnc
47. 2 points

48. 2 points

## Why is my Color Transfer Offset?

here is an example, I created boxes based on the points, but you can create points from boxes too if you need it that way cut_by_boxes.hip
49. 2 points

## Attribute from map not applying as expected

I had a similar problem that I managed to fix by unlocking my "attribute from map" node and then going to the top right node called "promote_vertex_uvs_to_points". Inside that I changed the promotion method from "average" to "last match" (or "first match"). I'm guessing it has something to do with points along the edge of UV seams having more than one UV co-ordinate, and then something weird happens when it averages the value for all co-ords of that point, I'm guessing it averages over the entire UV area between the co-ords? First or last match probably just chooses the value at the first/last co-ordinate.
50. 2 points

## Smoke Solver | Tips and Tricks

Few tips and tricks to manipulate gas simulation. 1. Independent resolution grid. E.g. Overriding vel grid size independent to a density grid. 2. Creating additional utilities. E.g. gradient, speed, vorticity and etc which can be used to manipulate forces. 3. Forces via VEX and some example snippets. smokesolver_v1.hipnc P.S. Some of this technique are not Open CL friendly though.
×
• Donations