Jump to content


Popular Content

Showing most liked content since 07/12/2020 in all areas

  1. 7 points
    I have a Houdini GitHub repo where (in addition to the code section, which is the Houdini pipeline for my personal projects) I store all my R&D notes related to the pipeline developing and programming organized as one wiki. The valuable part of this wiki is VEX for Artists tutorial, where I record everything I was able to understand about VEX in form of tutorials, so it might be useful not only for me but for anybody else, who is going the same route of learning programming from scratch. It was built by a guy with an artistic background and no technical education and skills, so it might be suitable for the same type of peoples. Easy and clean, a lot of simplification, a lot of explanation of basics. This VEX tutorial was just updated with a new section: Solving problems with VEX. Here, using the basic blocks studied earlier we will create something meaningful for the production. The first example we look into is the creation of a hanging wire between 2 points. For those who tried or even afraid to begin to learn VEX but fail and stop because it was too hard. Enjoy!
  2. 5 points
    Hello magicians. I want to share with you the result of studying l-systems. Behold the Moss Incredible aka Sphagnum! Redshift shading. And yes, it is growing. Available on https://gum.co/fZROZ https://gum.co/qmDmg Thanks! akdbra_moss_grow.mp4 akdbra_moss_var.mp4
  3. 3 points
    Finished my first tutorial, hopefully you find it helpful learning Houdini!
  4. 3 points
    yes there is. (you refuse to upload your file, I refuse to upload my file)
  5. 2 points
    Hi all, I recently started uploading a large Houdini python course/playlist on Youtube. In case you might be interested, there will be a section in there where i'll actively answer odforce python questions The series is called the 'deep dive series' And this playlist contains a free course that will be aprox. 31 to 32 hours long in total. The first few videos about programming with Python were just uploaded. This course consists of 5 steps 1 - (Part 1) The Big Picture 2 - (part 2a) The Fundamentals (13 videos) 3 - (part 3) Full Projects (Multiple Projects from beginning to the end) 4 - (part 2b) Beyond the Fundamentals (More advanced tutorials to be used on a need-to-know basis) 5 - (part 3) Contextualization (Masterclasses regarding all kinds of decisions you can make as a programmer, and interviews with fellow Houdini Python coders) You can watch it here - https://bit.ly/2Pu8gbI (the complete series will be free) Netinho da Costa Linkedin - linkedin.com/in/netinho-r-p-da-costa-b5326985
  6. 2 points
    In case anyone else needs to do this, I made a free hda to do this. you can add noise, rotate, scale and transform randomly!! and it is done all in /mat. Make sure to lay out uv's before using. The hda is included here or you can get it from the link in the video on youtube. uv_randomize_b.hdalc example.hiplc
  7. 2 points
    http://www.cgchannel.com/2020/07/download-the-free-public-beta-of-cascadeur/ what is this sorcery...I'm not an animator but would an animator say this is a Maya killer ?
  8. 2 points
    Even shorter version: @P = lerp(@P, @opinput1_P, ch("mix"));
  9. 2 points
    vector pos = point(1, "P", @ptnum); float mix = ch("mix"); @P = lerp(@P, pos, mix);
  10. 2 points
    here is a simple example with Python, I attached an example: parm = hou.parm('/obj/geo1/sphere1/ty') # store all values in list values=[] for i in range(100): val = parm.evalAsFloatAtFrame(i) values.append(val) # remove parm expression parm.deleteAllKeyFrames() # set values from list to keyframes for i in range(100): myKey = hou.Keyframe() myKey.setFrame(i) myKey.setValue(values[i]) parm.setKeyframe(myKey) bake_keyframes.hipnc
  11. 2 points
    you CAN write the vex yourself every time if you want to, or if you feel lazy, just a Point SOP, preset Morph to 2nd input then you can have a controlled lerp amount.
  12. 2 points
    If you don't need any of the other functionality of the attribute transfer node, it would be faster to use a wrangle: @P = @opinput1_P; (line into input 0, edit into input 1)
  13. 2 points
    Crag Splits Face................crudely.
  14. 2 points
    This belongs to everyone in Houdini Community(for those that didn't Know) Have fun with colors (make absolutely everything (area(biology, particles, modeling, PLot, CNC.....etc) sorry for eventual errors ..I use Houdini 16.5. Tips-save channels Data- download Qlib HaveFunfinal2.hipnc
  15. 2 points
    Ok, so I have found a solution, which I think could be improved upon. This setup keeps a heartbeat runnig for 30 seconds and each second you can generate new work_items. You can obviously change number of heartbeats and wait time. So this allows you to fetch live data form a database or folder for example and act accordingly. There's no logic for tracking what was processed, you need to build that yourself. But it's at least a way to keep houdini polling. Now in the file, I have also 2 python generators which I think would be the proper solution, but can't get to work. I'd love to know if there's anything better of more robust perhaps. Hope it helps someone and if you have feedback please let me know! PDG_while_loop_tests.hiplc
  16. 2 points
    We use 3DEqualizer at work. Although it's doesn't have the best UI, it apparently is the best tracking software. I've done some 3D tracks using Blender and the 3D solves have been pretty good and the tracking is pretty darn quick!
  17. 2 points
    Here's a non-VEX approach, that doesn't even use any rotations. I'm applying a linear gradient across the top face, and then using a Soft Transform to move the points up based on that mask. You do need Labs for the Gradient SOP. columns01_soft_transform.hiplc
  18. 2 points
    not quite sure if that’s what you are after but please take a look at the attached file: rotate_prim.hiplc
  19. 2 points
    Hey all! I just updated Simple Tree Tools to version 1.5.2. There is a lot of goodies in here! Download ----> https://gum.co/nEGYe Oh, and don't forget to read the "read me" to see what's new! Cheers!
  20. 2 points
    I feel like Get Vector Component needs an update to be useful currently it's sort of useful if you want to give the option for statically change component as a promoted parameter, but in reality it has a few issues 1. there is no 4th component in the menu even though it allows vector4 signature 2. doesn't allow dynamic choice of the component since it doesn't have component index input, so better choice for that case is vector2float and switch however if updated it can be useful for those cases
  21. 2 points
    Hi, It's more of a workflow thing. I personally use vector to float myself. I think vector to float might be faster as it's modifying 3 parameters by reference vs calling vop_getcomp 3 times to get 3 values, if you need 3 values that is.
  22. 2 points
    To fill quadratic polygons with copies just take the square root of the intrinsic primitive area as point scale: int pt_add = addpoint(0, v@P); float area = primintrinsic(0, 'measuredarea', i@primnum); float scale = sqrt(area); setpointattrib(0, 'pscale', pt_add, scale, 'set'); removeprim(0, i@primnum, 1); KM_recursive_subd_001.hipnc
  23. 2 points
    Here is a basic setup. It uses a second loop to give each primitive a unique name. Inside the loop, the area for each primitive is stored as an attribute. After the loop, pscale is derived from the area. Use the ramp and the multiplier to dial in the sizes. ap_recursive_subd_001.hiplc
  24. 2 points
    Hi @lobao, Thanks for following up the progress. Regards a paid tutorial, I think a tutorial is not enough, it has to be a Masterclass or something more robust, this method is not a simple one to deal with, also the pipeline is made out of many different stages that has to be explained in a nice way without overwhelming too much the attendants, so I'm trying to find the best way to do this, maybe a Patreon or a a collection of hips on Gumroad. A Patreon is a good idea, I have many techniques and tools to show, so I think that method would be nice, or maybe people is searching for another way to learn. Who knows! Anyway thanks again to be interested! Alejandro
  25. 2 points
    @vinyvince progress between lessons checking more about modeling and Uv. learning from ( Len White and Node flow).
  26. 1 point
    Wow! Thanks Aizatulin. While trying to fix this problem I had some OK result with the Redshift RS Round Corners node. But this would have been just a compromise. Your solution is so much better and pretty much what I was looking for. Thanks for the effort! You made my day Have a nice weekend.
  27. 1 point
    Hi, boolean seems to work for me, you can also group->dissolve edges with small angle and fuse close points (optional). Polybevel_bool.hipnc
  28. 1 point
    +1 to Noobini for the Gauntlet throwback
  29. 1 point
    Hello! So i created a few tools for a recent project for creating trees. I thought Id share it with the community. This is my first ever toolset Ive created so If you like it consider donate a few bucks on gumroad. I currently have it as a "pay what you want" product. You are more than welcome to try it out and come with suggestions for future potential updates. Hope you like it! https://gum.co/nEGYe
  30. 1 point
    Ok so I've updated these tools to v1.5.4! Realtime wind simulation!!! If you havent grabbed them yet, heres a link: https://gum.co/nEGYe
  31. 1 point
    In the volume wrangle you need to specify that 'h' is a vector by using 'v@h' rather than just '@h'. VEX assumes everything is a float unless told otherwise, or if it is one of a few specific attributes like Cd. This page has some helpful info on attributes in VEX https://www.sidefx.com/docs/houdini/vex/snippets#attributes
  32. 1 point
    I really appreciate the time you spent on helping me, thank you a lot
  33. 1 point
  34. 1 point
    Hi @ElemKlimov if you do search on GitHub someone posted a Huge Work about Stones, Rock, etc.. absolutely everything about that.. almost 500 MB of resources ..just sorry that I cant use That.. huge amount of ram its needed( i HAve 8 .. Can't find now that link HM
  35. 1 point
    what about this then...you already can tell by the colors....it's correctly separated the attrib is manifoldnumber (actually the 2 mauve ones joined to the yellow one top left just got my interest!!!) (nah...doublechecked, it's worked perfectly, those 2 patches joined to the yellow ones are actually different, one has manifoldnumber 1 and the other one is 6)
  36. 1 point
    Requests for Enhancement: https://www.sidefx.com/bugs/submit/ I was able to download the file from google drive but my old K4000 can't display it in Houdini.
  37. 1 point
    Just sharing my 2020 Reel. Im available. https://vimeo.com/429294957 Thanks! Daniel Moreno http://www.danmoreno.com https://vimeo.com/danmoreno https://www.linkedin.com/in/danmoreno https://www.imdb.com/name/nm1625127/
  38. 1 point
    I heard oil paintings are a thing right now. Here is a initial setup (still lacking all micro details and sweep strokes): Original procedure developed by Will Macneill: http://www.willmacneil.com/portfolio/oil-painting-the-houdini-way painting_2.hipnc
  39. 1 point
    This‘s an breakdown of Pompeii we made. Hope you like it ~ Software: Houdini17.5 , Fusion Details : Memory: 64GB Processor: AMD Ryzen 1950X Graphics: GeForce GTX 1070Ti Simulation : 10H Space disk : 500G Render:Mantra Render time: 1920*1080 (40H) I recommend to use Linux for heavy simulation, because Linux has a better ram usage than windows.
  40. 1 point
    8 lesson. Now, this must move-Dance, have fun basically. Solver Dops Pio MIo L-system (build everything, mostly fun with Architecture). Just copy paste and use some shapes with some accurate normal DIR you can build funny stuff. I learned a lot from Yancy Lindquist. Solver Like solver solver (repeating) . For lazy people Ameba file. I use Houdini 16.5 Ameba.hipnc
  41. 1 point
    Already found my own way to do this above, that I was asking to. But Bubble Pins released a tutorial for it today, so here it is, if anyone else wants to update their knowledge:
  42. 1 point
    Ok, it's been a while, but let's try it one by one: 1. Scaling world coordinates to unit size vector bbox = relbbox(0, @P); vector size = getbbox_size(0); vector ratio = size / max(size); vector scale = bbox * ratio; relbbox() creates linear gradients along each axis of the object from 0.0 to 1.0. Those can be spread out in UV space later. getbbox_size() returns the absolute dimensions of the object. While we don't care about the actual size, we need to factor in how those dimensions relate to one another: size / max(size) Dividing all dimensions by the biggest one effectively scales them to unit size while keeping the proportions. This is the aspect ratio for X, Y and Z. bbox * ratio combines the gradients on all mesh points with the overall aspect ratio. All projections fit proportionally onto the UV grid now, we only need to split them up and lay them out. 2. Splitting up projection sides vector side = sign(v@N); vector nml = abs(v@N); if (nml.x == max(nml)) { ... } else if (nml.y == max(nml)) { ... } else { ... } sign(v@N) decides towards which side the normals point to. Its either left or right, top or bottom, front or back. Later this will compensate for.. abs(v@N) setting all normals to positive values. So we can easily compare which direction they are mainly facing, using: if (nml.x == max(nml)) for X, else if (nml.y == max(nml)) for Y and else for Z. By comparing each absolute component with the normals' maximum, we split the geometry into UV islands. 3. Laying out UV coordinates if (nml.x == max(nml)) { @uv = set(scale.y * side.x, scale.z, 0); } else if (nml.y == max(nml)) { @uv = set(scale.x * side.y, scale.z, 0); @uv.y += 1; } else { @uv = set(scale.x * side.z, scale.y, 0); @uv.y += 2; } @uv *= 0.3333; @uv.x += 0.5; set(scale.x * side.y, scale.z, 0); Depending on which side has won, the UV coordinates are composed of either top or side views (first component) and front or side views (second component). Setting the scale variables negative can be used to sort out direction issues. *side.x, *side.y and *side.z are simply flipping directions in case the normal directions have been negative. Thus getting their own islands on the left side. @uv.y += 1; and @uv.y += 2; are moving the UV islands upwards, so they are not landing on top of each other. @uv *= 0.3333; Currently UV coordinates span across six unit spaces, so we scale them down to fit into one. @uv.x += 0.5; Because of flipping the sides we also have to move all our coordinates to the right by half. Alright, I hope things got less confusing now.
  43. 1 point
    For old hardcore vfx user,these little things maybe are not a deal.But for motion designers or new users,that means a lot.I’m talking attract more regular people,not coding genius.
  44. 1 point
    Did some more searching and i found an older topic here that had what i needed - Setting the list to Multiple Selection Menu instead of Single i could make a list of the attributes i didnt want with the following vex-code: s[]@pointattribs = detailintrinsic(0,"pointattributes"); string attriblist = chs("../attribtrans"); //Multiple Selection Menu string alist[] = split(attriblist); foreach(string name; alist){ removevalue(@pointattribs,name); }
  45. 1 point
    I'm sure there's better ways, but here's my attempt. Will explain more if I get time later... recursive_subdivide.hip
  46. 1 point
    Here is a Redshift instancing ground cover setup. The meshes included come from cc0 sources. This mesh set contains grass and spring time plants but the system can scatter any mesh set across the target surface. (i.e. rocks, trees, plants etc...) This scene uses the image based volumetric spotlight to achieve colorization. ap_rs_instance_ground_cover_050517.hiplc
  47. 1 point
    Hi, seems like interesting topic. I found nice explanation in the docs. But I would be interested if any of you found fuzzy sets useful in other areas than crowd simulations.
  48. 1 point
    Edit > Aliases and Variables > Variables ....PI
  49. 1 point
    // Point wrangle. #define PI 3.1415926535897932384 float u = fit01(@u, -PI, PI) * ch("revolutions"); vector pos = set(sin(u), cos(u), 0) * ch("radius"); matrix3 t = set(v@tangentu, v@N, v@tangentv); @P += pos * t; Where tangents and normal was computed by PolyFrame SOP, and @u is 0..1 point's position on curve. spiralize.hipnc
  50. 1 point
    Choose a string parameter and go to the menu tab in the parameter description. Check use menu and in the drop down select Replace(Field + single selection...) Now you need to write a python snippet in the menu script field. result = [] geo = hou.pwd().geometry() for attr in geo.pointAttribs(): result.append(attr.name()) result.append(attr.name()) return result Dont forgett to set the Menu script Language to python...