Jump to content

konstantin magnus

Members
  • Posts

    1,170
  • Joined

  • Last visited

  • Days Won

    197

konstantin magnus last won the day on August 17

konstantin magnus had the most liked content!

Contact Methods

  • Website URL
    www.konstantinmagnus.de/

Personal Information

  • Name
    Konstantin Magnus
  • Location
    Germany

Recent Profile Visitors

22,765 profile views

konstantin magnus's Achievements

Collaborator

Collaborator (7/14)

  • Well Followed Rare
  • Conversation Starter Rare
  • First Post Rare
  • Posting Machine Rare
  • Collaborator Rare

Recent Badges

1.3k

Reputation

  1. Hi @lacer8, you may want to look into @animatrix' setup here: https://www.sidefx.com/forum/topic/84345/#post-364636
  2. @millsy Check this to take it further: https://procegen.konstantinmagnus.de/wicker-basket
  3. Hi @millsy, maybe start with sweeps as they provide output attributes like primcol to later create patterns. straw_weave.hip
  4. Did you model these procedurally? If so, there are probably ways of assigning UVs while modeling and not after.
  5. It's usually best to create UVs on the fly and not just at the end. For this, you can use the sweep node for pretty much any building part and enable its UV outputs. Additionally other output attributes such as primrow and ptcol can be useful for selecting patterns next, ie. i@primcol%3==1
  6. Hi @GlennimusPrime, you could measure and over time remap the surface distance from the mask. attribute_spread_KM.hiplc
  7. This could be due to the internal order of the point group. try shuffling starting points by randomly picking a point number out of the array: int seed = chi('seed'); int pts[] = expandpointgroup(0, 'start'); int iter = detail(1, 'iteration', 0); int pick = pts[int(rand(iter, seed) * len(pts))]; i@group_boundary = i@ptnum == pick; infection_multiple_01.hip
  8. Put the relevant parts of the code inside a loop to offset the time and increment the mask number with each iteration. float speed = chf('speed'); int num = chi('infections'); float t = @Time * speed; int n = npointsgroup(0, 'start'); float mask_collect = 0.0; for(int k = 0; k < num; k++){ t += 1.0 / float(num); int i = floor(t); float u = frac(t); string att = 'dist_' + itoa(i+k%n); float dist = point(0, att, i@ptnum); float mask = chramp('shape', dist - u + 1.0); float fade = 1.0 - smooth(0.5, 1.0, u); mask_collect = max(mask_collect, mask * fade); } f@mask = mask_collect; infection_multiple.hip
  9. Hi @EdwinFumano, you could calculate a bunch of eikonal distances using attribute fill inside a for loop and remap them as animation: float speed = chf('speed'); float t = @Time * speed; int i = floor(t); float u = frac(t); int n = npointsgroup(0, 'start'); string att = 'dist_' + itoa(i%n); float dist = point(0, att, i@ptnum); float mask = chramp('shape', dist - u + 1.0); float fade = 1.0 - smooth(0.5, 1.0, u); f@mask = mask * fade; setdetailattrib(0, 'active_dist', att, 'set'); infection.hip
  10. Hi Jim, you could integrate text from Copernicus which is also a 2D voxel field. heightfield_text.hip
  11. The volume VOP has its own worley noise: https://www.sidefx.com/docs/houdini/nodes/vop/worleynoise.html
  12. The point relax-node tries to achieve this. https://www.sidefx.com/docs/houdini/nodes/sop/relax.html
  13. Hi Hunter, you would probably use the "orient along curve"-node instead, it also happens to offer rotations. However, if you want to do it in VEX you could try: float freq = chf('frequency'); float sc = chf('scale'); float u = vertexcurveparam(0, i@vtxnum); float amount = u * (1.0 / freq); matrix m = ident(); rotate(m, amount, v@N); scale(m, sc); v@P += v@up * m; od_spiral.hip
  14. .. or use the maximum height from two ray nodes. combining_two_patterns_KM.hipnc
  15. @Yors_Void Here is a version that copies a cylinder to a grid of triangles. hexagon_pyramid.hip
×
×
  • Create New...