Leaderboard
Popular Content
Showing most liked content on 04/04/2020 in all areas

3 pointsAnother confinement consequence inspired by Hai le tutorial and some hypnotics works of @Librarian. Put your headphones for an immersive transcendental experience The file if you want to play with FancyTimeWithHexagon_F H16.hipnc

3 points

2 points

1 point

1 point*********** Edit  I didn't realize that his instructions in the txt file specifically had you format the env file like this: HOUDINI_PATH = "$HOUDINI_PATH;&;$MODELER_PATH". Iif what I said is incorrect for this particular addon, my bad, I apologize. If so, just disregard and do as the instructions said. I have yet to even try this addon out since I bought it. I will test it on my end. If that is the case, in the file I added below, change it to this instead: { "env": [ { "MODELER": "C:/Users/PATH/TO/modeler/" }, { "HOUDINI_PATH" : { "value": "$MODELER/", "method": "append" } }, ] }  Remove the $HOUDINI_PATH from the HOUDINI_PATH and have the & at the end. HOUDINI_PATH=$MODELER_PATH;& PYTHONPATH is (I believe) the only one in which you want to have PTPATH = $PYPATH;$OTHERSTUFF; Even better yet, don't modify the houdini.env file at all. In your Documents\houdini18.0\ create a folder called "packages" if it does not exist, and in there add the modeler.json file I have attached. Then open it and change "C:/Users/PATH/TO/modeler/" to the actual path to your modeler folder. This allows you to put the modeler folder somewhere else, remove it from your houdini.env and saves a lot of trouble and confusion. Modeler.json

1 pointwell you are a pro to me! helped me a lot, thanks for that!

1 pointThe difference of a polyline and a polygon is the attribute 'intrinsic:closed'. You can get this with: prim(0, "intrinsic:closed", @primnum) or in group with: @intrinsic:closed==1

1 point

1 point

1 point

1 pointhere you go, i commented the code so it should be really straightforward. you can control the grouping based on their facing ratio with the threshold slider. group_collinear.hiplc

1 point@caskallol...clearly I'm the odd one out among the 'masters' (just a keen hobbyist I'm afraid, not a pro)

1 pointHi, this should probably work aswell: create a straight tunnel (along xAxis for example) use a path derformer on the straight tunnel (to deform onto a curve) tunnel.hipnc

1 pointHi Johannes, There doesn't seem to be an exact way (at least not that I can see). But there are a couple of parameters you can change to roughly achieve this: Minimum volume: Anything below this threshold wont fracture and you can calculate the fractured pieces volume in a wrangle. Points by area: By lowering this value you control the amount of fractures. Less fractures, the bigger the pieces. Maximum Fractures: Increase this number to keep fracturing the RBD object until all pieces have fractured to their smallest size. Hope this helps!

1 pointyou are wrong. update from DM1.0 and DM 1.5 to Modeler 1.0 costs $70. But now, during quarantine, it costs $30

1 pointHi @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

1 point

1 point

1 pointMore 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) / (1z); } /*! \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) / (1w); } /*! \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 nonzero 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 onesphere. Give a point on the onesphere 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;

1 pointit's easy, just reference the original geo. split_curve1.hipnc hth. petz

1 point

1 point

1 pointplease 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