Members

58

1,521

Members

33

2,508

Members

31

51

Members

30

471

## Popular Content

Showing most liked content since 03/04/2020 in all areas

1. 6 points

## Erode / Rock tool I'm building

Hey guys, here's an update for the first Rock Pack that I'm building. I ran into a little bit of technical difficulties and I was fine tuning the look to get something coherent and realistic. Here's the result so far :
2. 6 points

## ATAT destruction

Almost done with the compositing This evening I'll post some flipbooks
3. 5 points

## 10 expert tips for better Houdini FLIP fluid simulations

http://www.cgchannel.com/2020/03/10-expert-tips-for-better-houdini-flip-fluid-simulations/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+cgchannel%2FnHpU+(CG+Channel+-+Entertainment+Production+Art)
4. 5 points

5. 5 points

## STAY HOME AND KEEP LEARNING HOUDINI!

would you throw in a coupla these if ppl order within the next 19 minutes ?
6. 5 points

## On Growth and Form

make stones-make patterns have fun (H 16.5) stijene.hipnc
7. 5 points

## Erode / Rock tool I'm building

I made a edge detection setup so here's a test render with the edges, might need some tweaking for variation, and take occlusion into account, but, yes, I like
8. 4 points

## Procedural Robots

Hey guys, Wanted to share a setup I made generate procedural robots, here are some renders: Will post some more tomorrow, drops automatic geo from one shape and obj model as silohuette Cheers!
9. 4 points

## Procedural Neighbourhood Generation

Hello everyone, I created a digital asset that outputs a neighbourhood with buildings and vegetation, based only on a masterplan drawing. It is divided in three modules, one to create the masterplan geometry, one to create the buildings and one for the vegetation scattering. It allows for alot of controls on the vegetation and on the buildings to create different variations. Here is also a test of the asset inside Unreal, using the Houdini Engine: Cheers!
10. 4 points

## Houdini Tutorial Procedural Japanese Castle in Unreal Engine 4

CREATING PROCEDURAL JAPANESE CASTLE Hi, In this tutorial you will learn how to create a procedural Japanese castle generation tool in Houdini 18. How to automatically generate interior and exterior using point instance. The method allows to add portions that can interact with the player (e.g., opening the doors). Provides the ability to speed up the creation of content for games. The tool can be reused in different projects with different types of stylization, because we will use prefabricated props. *Free Demo version: https://gumroad.com/rart#YcpjX *Full version Gumroad: https://gumroad.com/rart#iPTrw *ArtStation Marketplace: https://www.artstation.com/raducius/store Video Presentation WHAT'S INSIDE? 27 Video Chapters (12 hours of tutorial) Houdini 18 Project File Unreal Engine 4.24 Project File + all assets PDF Documentation (54 pages). HDA Asset INTRODUCTION Chapter_1_[1]Project_Setup - 2 min. Chapter_1_[2]Creating_Custom_Nodes - 9 min. Chapter_1_[3]Size_Controls - 15 min. Chapter_2_[1]Creating_Wall&Corners - 40 min. Chapter_2_[2]Creating_ExteriorCeiling&Floor - 44 min. Chapter_2_[3]Creating_Stairs&Ceiling - 38 min. Chapter_2_[4]Creating_InteriorWalls&Doors - 47 min. Chapter_2_[5]Procedural_Tatami_Layout_Generation - 42 min. Chapter_2_[6]Unreal_Engine_Test - 12 min. Chapter_3_[1]Creating_Exterior_Wals&Corners - 31 min. Chapter_3_[2]Creating_Stairs&Ceiling - 25 min. Chapter_3_[3]Creating_Interior_Walls&Doors - 28 min. Chapter_3_[4]Creating_Tatami_Layout - 25 min. Chapter_3_[5]Unreal_Engine_Test - 7 min. Chapter_4_[1]Creating_Interior_Walls - 21 min. Chapter_4_[2]Creating_Exterior_Walls - 24 min. Chapter_4_[3]Unreal_Engine_Test - 5 min. Chapter_5_[1]Creating_Interior_Bridge - 42 min. Chapter_5_[2]Creating_Stairs&Floor - 19 min. Chapter_5_[3]Creating_Exterior_Walls - 27 min. Chapter_5_[4]Creating_Balcony_Structure - 45 min. Chapter_5_[5]Unreal_Engine_Test - 10 min. Chapter_6_[1]Creating_Sides_Floor - 16 min. Chapter_6_[2]Creating_Stairs_Zone - 38 min. Chapter_6_[3]Creating_Ceiling - 22 min. Chapter_6_[4]Creating_Corners - 14 min. Chapter_6_[5]Completion_HDA_Asset - 80 min. TOOLS Houdini 18 Unreal Engine 4.24 MINIMUM REQUIREMENTS Beginner-Intermediate Houdini Knowledge *Free Demo version: https://gumroad.com/rart#YcpjX *Full version Gumroad: https://gumroad.com/rart#iPTrw *ArtStation Marketplace: https://www.artstation.com/raducius/store Thank you!
11. 4 points

## Erode / Rock tool I'm building

Two test renders, black rocks with edges
12. 3 points

## trying a subway tunnel

Hi, this should probably work aswell: create a straight tunnel (along x-Axis for example) use a path derformer on the straight tunnel (to deform onto a curve) tunnel.hipnc
13. 3 points

## Hair simulation grass helicopter landing

here you are: - if you're not into crop circles...then simply disable plasticity in vellumhair - dive inside vellum solver, I've added the popaxisforce which gives you torus shape, I haven't played with it too much, it's there for you to experiment with just enable it, prolly wise to disable the popfan. (chuck my HDA into C:\Program Files\Side Effects Software\Houdini 18.0.xxx\houdini\otls) vu_HeloWind.hiplc
14. 3 points

## Fuel Based Rocket Launch

I made an attempt at "upresing" this fuel based rocket launch. Treating the original file as the a low resolution simulation does allow me to enable OpenCL. The uprezed version is on the right. A 500,000 voxel low res source drives a 4,000,000 voxel upres. ap_upres_smoke_pyro_setup_032520.hiplc
15. 3 points

## Erode / Rock tool I'm building

Haha, adopt them as your pet rock !
16. 3 points

## On Growth and Form

More fun 13.lesson. projectione.h /*! \fn vector2 one_sphere(vector2 z; float r) \brief Project \f$z \in C\f$ to \f$S^1\f$. Project \f$z \in C\f$ to \f$S^1\f$ with radius \f$r\f$. \param z the direction in \f$C\f$ to project to \f$S^1\f$ \param r the radius of \f$S^1\f$ \return the point \f$z \frac{r}{\mid z \mid}\f$ */ vector2 one_sphere(vector2 z; float r) { return z / length(z) * r; } /*! \fn vector two_sphere(vector z; float r) \brief Project \f$z \in R^3\f$ to \f$S^2\f$. Project \f$z \in R^3\f$ to \f$S^2\f$ with radius \f$r\f$. \param z the direction in \f$R^3\f$ to project to \f$S^2\f$ \param r the radius of \f$S^2\f$ \return the point \f$z \frac{r}{\mid z \mid}\f$ */ vector two_sphere(vector z; float r) { return z / length(z) * r; } /*! \fn vector2 stereo2(vector c) \brief Stereographic projection from \f$S^2\f$. Stereographic projection from \f$S^2\f$ into \f$C\f$. \param c the vector in \f$S^2\f$ to project into \f$C\f$, , must not be \f$(0, 0, 1)\top\f$ \return the stereographic projection to \f$C\f$ */ vector2 stereo2(vector c) { float x = c.x; float y = c.y; float z = c.z; return set(x, y) / (1-z); } /*! \fn vector stereo3(vector4 c) \brief Stereographic projection from \f$S^3\f$. Stereographic projection from \f$S^3\f$ into \f$R^3\f$. \param c the vector in \f$S^3\f$ to project into \f$R^3\f$, must not be \f$(0, 0, 0, 1)\top\f$ \return the stereographic projection to \f$R^3\f$ */ vector stereo3(vector4 c) { float x = c.x; float y = c.y; float z = c.z; float w = c.w; return set(x, y, z) / (1-w); } /*! \fn vector4 stereo3_inv(vector c) \brief Inverse of the stereographic projection from \f$S^3\f$. Inverse from \f$R^3\f$ into \f$S^3\f$ of the stereographic projection. \param c the vector in \f$R^3\f$ to reproject into \f$S^3\f$. \return the projection into \f$S^3\f$ */ vector4 stereo3_inv(vector c) { float x = c.x; float y = c.y; float z = c.z; return set(2*x, 2*y, 2*z, length2(c)-1) / (length2(c)+1); } vector stereo3_e4(vector4 c) { return set(c.x, c.y, c.z) / (1.-c.w); } vector stereo3_e4_inv(vector c) { return set(2*c.x, 2*c.y, 2*c.z, length2(c)-1) / (length2(c)+1.); } /*! \fn vector sphere_inversion(vector z; vector center; float scale) \brief Sphere inversion Perform a Möbius tranformation to project every point inside the the unit sphere in \f$R^3\f$ to outside and vice versa. \param z the original vector in \f$R^3\f$ \param center the center of the sphere \param scale the radius of the sphere \return the inverted vector */ vector sphere_inversion(vector z; vector center; float scale) { // Compute translation, then transform in the origin and retranslate vector translation = set(center.x, center.y, center.z); vector transformed = z - translation; return transformed / length2(transformed) * pow(scale, 2) + translation; } complex.h *! \fn vector2 cmul(vector2 z; vector2 w) \brief Multiply two complex numbers Multiply two arbitrary complex numbers. \param z first factor \param w second factor \return \f$z \cdot w\f$ */ vector2 cmul(vector2 z; vector2 w) { float x = z.x; float y = z.y; float u = w.u; float v = w.v; float real = x*u - y*v; float imaginary = x*v + y*u; return set(real, imaginary); } /*! \fn vector2 cdiv(vector2 w; vector2 z) \brief Divide one complex number by another complex number Divide one arbitrary complex number by another non-zero complex number. \param w divident \param z divison \return \f$\frac{w}{z}\f$ */ vector2 cdiv(vector2 w; vector2 z) { float x = z.x; float y = z.y; float u = w.u; float v = w.v; float divisor = pow(x, 2) + pow(y, 2); float real = (u*x + v*y) / divisor; float imaginary = (v*x - u*y) / divisor; return set(real, imaginary); } /*! \fn vector2 cpow(vector2 z; int n) \brief Compute the \f$n\f$-th power of a complex number Compute the \f$n\f$-th power of a complex number, for \f$n \in N\f$. \param z the complex number \param n the exponent \return \f$z^n\f$ */ vector2 cpow(vector2 z; int n) { float x = z.x; float y = z.y; float r = length(z); float phi = atan2(y, x); return pow(r, n) * set(cos(n*phi), sin(n*phi)); } /*! \fn float real(vector2 z) \brief Give the real part of a complex number Give the real part of a complex number represented by the first component of a two element vector. \param z the complex number \return the real part \f$a\f$ of \f$z = a + ib\f$ */ float real(vector2 z) { return z.x; } /*! \fn float img(vector2 z) \brief Give the imaginary part of a complex number Give the imaginary part of a complex number represented by the second component of a two element vector. \param z the complex number \return the imaginary part \f$b\f$ of \f$z = a + ib\f$ */ float img(vector2 z) { return z.y; } /*! \fn vector2 e_to_the_is(float s) \brief Give a point on the one-sphere. Give a point on the one-sphere parameterized by \f$s\f$ in the parametric form. \param s the real parameter \return the point \f$(\cos s, \sin s) \subset C\f$ */ vector2 e_to_the_is(float s) { return set(cos(s), sin(s)); } vector4 f; p@f; float n = chi("n"); float k = chi("k"); int j = @ptnum; float cosine = cos(($PI*j) / (2.*n)); float sine = sin(($PI*j) / (2.*n)); vector2 cosine_exp = cosine * e_to_the_is($PI -$PI/(k+1)); vector2 exp_neg = e_to_the_is(- $PI/4); vector2 exp_pos = e_to_the_is($PI/4); vector2 sine_exp_neg = sine * exp_neg; vector2 sine_exp_pos = sine * exp_pos; float j_mod_4n = j % (4*n); if( j_mod_4n < n ) { f.x = cosine; f.y = 0; f.z = real(sine_exp_neg); f.w = img(sine_exp_neg); } else { if( j_mod_4n < 2 * n ) { f.x = real(cosine_exp); f.y = img(cosine_exp); f.z = real(sine_exp_neg); f.w = img(sine_exp_neg); } else { if( j_mod_4n < 3 * n ) { f.x = real(cosine_exp); f.y = img(cosine_exp); f.z = real(sine_exp_pos); f.w = img(sine_exp_pos); } else { if( j_mod_4n < 4 * n ) { f.x = real(cosine); f.y = 0; f.z = real(sine_exp_pos); f.w = img(sine_exp_pos); } else { f.x = cosine; f.y = 0; f.z = real(sine_exp_pos); f.w = img(sine_exp_pos); } } } } p@f = f;
17. 3 points

## Is it possible to up-res the new sparse pyro solver??

Here is my tutorial, done super fast so don't be too harsh I hope this is helpful Sparse Pyro Upres, the easy way - part1
18. 3 points

19. 3 points

## Make Curve In VEX

please take a look at the attached file. it´s an example how you could create bezier curves with arbitrary degree and another one relying on beziers in hermite form since you wrote about blending curves... petz curves_vex.hipnc
20. 2 points

## Boat explosion

Hey guys, Here's a new project I'm working on as I have some free time. The boat is a free model from cadnav. The main rbd sim with instanced debris is there : https://streamable.com/pcayf I used the new rbd deform pieces for the mesh (which is pretty useful) and I'm looking to add some noise and more details to the edges later. I've made the explosions (but infortunately I have only 119 frames because it crashed, I may resimulate the explosions 1 by 1 instead of the 4 in a row) : https://streamable.com/sjcje I've also made a quick low res render to see how the ocean and the explosions behaved all together with a lil bit of comp (to match my background) : https://streamable.com/1sduw Now I need to add sparks, smoke trails, and flip white water, and maybe additionnal splashes, refine the ocean.. Cheers and happy confinement !
21. 2 points

## copy to points - variant issue

if you want to be safer and also to avoid increasing seed by increments of 1 just offseting the same random number to the next point you can use 2 dimensional rand(float, float) i@variant=int(fit01(rand(@ptnum,chf("seed")),0,3));
22. 2 points

## Mainroad post lookdev classes

Mainroad Post started posting some classes online. For now there are only 3, it's in russian but it's easily followable and very very very interesting; it deals mainly with vops and maths, and how you can construct patterns using maths functions such as sins, noise, etc.... Very intructive.. https://www.youtube.com/watch?v=rzjXRvgo7YA 1/7 https://www.youtube.com/watch?v=2SSCN3WBne4&t=4591s 2/7 https://www.youtube.com/watch?v=LF4ZUchXU6Q 3/7 And i assume the following will be released soon as they started posting a week ago. Cheers,
23. 2 points

## Make Curve In VEX

Hi @tagosaku, you can shift points by sampling positions from their respective curves with a channel ramp: float u = vertexprimindex(0, i@vtxnum) / float(primvertexcount(0, i@primnum) - 1); v@P = primuv(0, 'P', i@primnum, chramp('shift', u)); curve_density.hipnc
24. 2 points

## FLIP: Viscous fluid sticky to mesh. HELP

Can you try this scene, You collsin geo was setup incorect, no velocity, or vdb for collision. flip_Sticktest_v002.hip
25. 2 points

## Erode / Rock tool I'm building

Some tweaking of placement and light
26. 2 points

## Vines reacting to collider / force

sigh....here and on SESI...there must be a cult that just wants to oooooooooooooooooovercomplicate their scenes to the point that it breaks. whatever happened to keeping thing simple ? vu_vines.hiplc
27. 2 points

## Volume Brain

could not resist a simple softbody drop.
28. 2 points

## [Solved] Flatten a sphere to a grid

excuse me while i channel Stephen Hawking for a sec: The Singularity at the bottom will make your proposal an impossibility. Therefore, you must create your own event horizon by clipping the singularity to facilitate the opening of a wormhole Allow me to demonstrate, please scrub timeline and you'll see my theory in action The remaining task now is to simply merge with a grid. Which for an intellectual giant like me considers a task for the plebs. Good day, Cheerio. vu_SphereUnfolds.hipnc
29. 2 points

## Corona Fever

I can't wait until people don't have masks on their face; some people I couldn't understood before the mask, now it's worse.
30. 2 points

## Automatically remove interior from double-sided geometry

Hehe .... try this.... description is in scene ..... sensitivity is keyed for every input geometry because they are very distinctive but it works properly on all geos you provided. keep_outer_side_examples_djiki.hipnc cheers
31. 2 points

## Storing and reevaluating point positions

Freeze frame and use point wrangle with first input actual points second - freeze one. int pt = findattribval(1, 'point', 'id', @id); vector pos = point(1,'P',pt); if(@P!=pos) do what you need your points should have id attribute
32. 2 points

## Rotate clumps?

Hi José, you can twist curves around other curves by rotating lots of copied cone lines using noise on a rotate VOP. Then transfer those twisted curves to the position and orientation along other curves based on transformation matrices from the orient along curves-node. float u = 1.0 - vector(relbbox(0, v@P)).z; int copy = prim(0, 'copynum', i@primnum); matrix trans = primuv(1, 'transform', copy, u); v@P.z = 0.0; v@P *= trans; twist_around_curves.hipnc
33. 2 points

## use alcohol as disinfection against COVID-19

after work just relax
34. 2 points

## use alcohol as disinfection against COVID-19

I know as a fact, that soap is better in dealing with viruses, but obviously doeas't deal well with quarantine.
35. 2 points

## flip reseeding dont interpolate but set to value

here is a simple solution without any solver tweaks: - create a random int attribute per point and convert it to float: f@r=int(rand(@ptnum)*1000); eg: r = 153.0 - on the FLIP solver/reseeding/interpolate attributes, add the attribute r - as a post sim process, you can compare the original attributes and interpolated ones, they will have a decimal value >0 eg: r = 154.462 if(f@r-int(f@r)>0)@Cd={1,0,0}; in practice, this isn't 100% perfect so you can use a vector attribute instead, have a look at the attached HIP separate_reseeded_bunker_001.hipnc
36. 2 points

## On Growth and Form

Make GrotesKt St Arch ..Have fun ArchiFunGRoty.hipnc
37. 2 points

## How can I apply patterns, to the volumes using volume VOP?

It's working and it's easy. What do you dislike, using uvs or using noises ? or another reason ? Volume_Pattern_01 F.hip
38. 2 points

## Houndini - Create a simple macro environment

Some new tutorial
39. 2 points

## ATAT destruction

Created a simple dynamic rig using bullet and vellum: 1) I've generated a spline at the center of each branch/trunk 2) I've generated one unique proxy geometry for each tree (branches + trunk ) 3) Using the spline mentioned before, I fragmented each proxy tree and simulated it using bullet (hard constraint and soft constraints) 4) Once I have the simulated trunks I created a proxy geometry for the leaves (very rough using VDB from points and the usual processes) 5) Simulated the proxy leaves using vellum and made them follow the trunk animation 6) Point deformed the original leaves to the proxy ones 7) done
40. 2 points

## Trimmed Nurbs To Clean Polys via Skin or otherwise

Hi Archo, you can create CAD-like shapes by transferring NURBS surface positions to parameterized polygon meshes through curve ramps. vector uvw = vertex(0, 'uv', i@vtxnum); float deform_top = chramp('shape_top', uvw.x); float deform_btm = chramp('shape_bottom', uvw.x); uvw.y = fit01(uvw.y, deform_top, deform_btm); v@P = primuv(1, 'P', 0, uvw); shape_transfer.hipnc
41. 2 points

## Procedural texturing heavy meshes

hi, a bit late to the party, but here is my take on this. i do majority of my texturing directly in Mantra shader netwroks and it's great. in terms of procedural stuff, Mantra by far outperforms any other renderer. Redshift is great for many reasons, but it's not for it's texturing capabilities, and I doubt it ever will be - nobody seems to be adding texturing tools to their renderers, beyond the most basic stuff like perlin noise or a curvature shader. Redshift, Vray, Octance have very limited texture handling capabilities, Arnold also very limited but offers a few very handy nodes, Renderman is the only 3rd party renderer that offers sort of an advanced procedural toolkit - but even thou I think it's a way behind Mantra in this respect. So Mantra for me works basically like a texturing application that does all the heavy lifting, collects and manipulates all the data from other applications, assembling the final result and then, optionaly, bakes the stuff out to bitmaps for use with 3rd party renderers. Love it. I very much hope we'll be able to use the same (or updated) workflows in Karma soon. cheers, D.
42. 2 points

43. 2 points

## Wild fire spread

Do you have any tips on how to adapt the point wind to the findshortestpath expansion from the tutorial? Basically push the white color of the points in the wind direction, not the actual points themselves? ap_find_shortest_path_wildfire_spread.hiplc
44. 2 points

## FLIP SIM- Collision and Sticking Problem

Thanks for the additional information. I can see the exterior band voxel bounding box change, when alter the value. I never really played around with that. Getting closer, though.
45. 2 points

## Houdini 19 Wishlist

Haven't seen 18 yet so don't know if the code editor was improved, but if not, this still is my ABSOLUTE NR. 1 wish. if(code_editor_improved != true) { Code editing in Houdini Wrangles is - well - crap. It's a total shame we don't even see command parameter lists when typing since even in value fields typing expressions does it and has autocomplete for paths etc. Even only bringing that ability to the VEX editor would be very helpful. Of course it would also make a lot of sense to have other settings and helpers in there, like auto-closing brackets, more clever cursor positioning, offering existing variables and attributes when typing etc. - the Houdini devs should know ALL about that, they probably spend their life in real code editors... The use of external editors could be improved a lot if a.) we wouldn't have to press ALT+E twice for the external editor and wouldn't have to get to the floating editor first each time and b.) if that connection would be "live" like for instance the Pinegrow Web Editor does it with a little plugin for Code and Atom, where you can type in either the internal or external editor and they update each other in realtime. The current system is too clumsy and the 3rd party implementations also aren't really there (no negativity towards the authors intended at all!). Make it native! Make it goooooooood! } else { All is well. Nothing to see here. :-) } Cheers, Tom
46. 2 points

## adding points on the corner of a polygon with subdivs inside

If you manage to isolate the corner points, you can use Falloff and PolyCut nodes to cut surrounding geometry and output several types of corner geometry, including the point needed. points_at_shape_vertices.hipnc
47. 2 points

## Orient noise pattern along vectors

Hi. How about computing local space per primitive instead, and then get noise position from point position in the local space? Some sort of edge based UV unwrap. // Primitive wrangle. int pts[] = primpoints(0, @primnum); // Compute averaged primitive normal from point normals computed from their neighbours. vector normals[]; foreach (int pt; pts) { vector normalized_edges[]; vector pt_pos = point(0, "P", pt); foreach (int nb; neighbours(0, pt)) { vector nb_pos = point(0, "P", nb); append(normalized_edges, normalize(pt_pos - nb_pos)); } append(normals, normalize(avg(normalized_edges))); } vector normal = normalize(avg(normals)); // Compute edge tangent. vector pt0 = point(0, "P", pts[0]); vector pt1 = point(0, "P", pts[1]); vector edge = normalize(pt0 - pt1); // Compute bitangent and orthonormalize matrix. vector perp = normalize(cross(normal, edge)); normal = normalize(cross(edge, perp)); 3@tangent_space = set(perp, normal, edge); Final deformation code: // Point wrangle. int prim; xyzdist(1, @P, prim, set(0)); matrix3 tangent_space = prim(1, "tangent_space", prim); vector pos = @P * invert(tangent_space); float deform = noise(pos * {10,1,100}) * 0.05; v@P += v@N * deform; Some image sampling could work too: tangent_space_noise.hipnc
48. 2 points

49. 2 points