Jump to content

konstantin magnus

  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by konstantin magnus

  1. Growing geometry

    Hi Robert, it seems he animated a Voronoi diagram: int pts[] = nearpoints(1, v@P, 1.0, 2); vector pos_0 = point(1, 'P', pts[0]); vector pos_1 = point(1, 'P', pts[1]); float d_0 = distance(pos_0, v@P); float d_1 = distance(pos_1, v@P); float d = d_1 - d_0; d_0 is the distance for driving the growing circles and d is the distance to the cell boundaries. https://procegen.konstantinmagnus.de/voronoi-diagram-reveal voronoi_reveal.hipnc
  2. Pointgroup for Clip Sop Edge

    Is there any way to make the clip SOP not fuse both parts? Or do we have to deal with splitting up its above- and below-groups each time?
  3. Dividing cube into smaller ones

    Sorry Matt, I accidently set it to 'draft'. It should be available now. It's just a for loop iterating over the vdb resample-node.
  4. Hi @bentraje, you could map the surface curvature to the height field. The erosion of the landscape can then be transferred back for displacement. https://procegen.konstantinmagnus.de/height-field-erosion-on-meshes
  5. Dividing cube into smaller ones

    Iteratively resampling a voxel field and visualizing the VDB tree as cubes might also be an option: https://procegen.konstantinmagnus.de/cubify-meshes
  6. Hi Vincent, it seems to work on my side. Did you fill the image paths?
  7. Hi Burton, I've attached a more intuitive non-VEX solution. It's basically the same thing. Let us know if you have any questions. laser_cutting_SOPs.hipnc
  8. You could create a curveu attribute and add the primitive number to it. This does not consider varying curve lengths though. ap_km_etch_font_into_grid_u.hipnc
  9. Hi Burton, you could also use the clip node driven by the distance towards the curve along with a time mask for cutting: https://procegen.konstantinmagnus.de/plasma-cutting-along-curve
  10. How do you apply xform attribute info from oriented bounding box?

    Hi Mark, attribute copy + transform by attribute should get you there.
  11. Best way to modelise Microscopic Hair

    Hi Naim, you could displace grids and stick them to a sweeped curve: hair_microscopic.hip
  12. Mesh outlines

    A simple way to render outlines right in SOPs. outlines.hiplc
  13. Mesh outlines

    I've just posted a written article explaining the same technique: https://procegen.konstantinmagnus.de/render-cartoon-outlines-in-sops
  14. UV cubic map procedurally

    I have just published the same article on my procedural generation page: https://procegen.konstantinmagnus.de/cubic-uv-projection-in-vex
  15. make circle out of polygons procedurally

  16. Clean CAD Data for Rendering

    The connectivity node can split meshes based upon UV seams which should make removing inside surfaces easier. remove_inside.hipnc
  17. Get an array of closests primitives from a point

    .. perhaps like so: array_near_prims.hipnc
  18. Clean CAD Data for Rendering

    The triangulate2D node can redraw the outline of the plate. And match-size is good for replacing parts. simplify.hipnc
  19. Clean CAD Data for Rendering

    Hi Tobias, would you be allowed to upload an example of the imported data?
  20. Place a point on center of surface

  21. What should we start with the pinart work?

    Usually with a point grid and the Ray SOP. pin_art.hip
  22. Create a fillet

    Hi alxtop, beveling a quad patch after removing some polygons: Beveling a quad patch after cutting some polygons: gun.hipnc
  23. Divide a surface into whole fractions individual for two axis.

    Match size another grid to it if it's a rectangle. match_size_grid.hiplc
  24. Texture UV Repeat

    UVcoords - UVxform - Shader
  25. Hi Rival, here are some ways to connect copied points by their ID. Use the enumerate SOP to give each point an individual ID before copying. Non-VEX: Add SOP: Polygons > By group > By attribute: id H-Script + VEX: Grid set to rows: // HScript expressions for grid resolution nuniquevals('../copy1', D_POINT, 'id') nuniquevals('../copy1', D_PRIMITIVE, 'copynum') // point wrangle for connecting int index = vertexprimindex(0, i@vtxnum); int pt_crv = findattribval(1, 'point', 'id', i@primnum, index); v@P = point(1, 'P', pt_crv); VEX: // detail wrangle int num = nuniqueval(0, 'point', 'id'); for(int i = 0; i < num; i++){ int pts[] = {}; int count = findattribvalcount(0, 'point', 'id', i); for(int k = 0; k < count; k++){ int pt = findattribval(0, 'point', 'id', i, k); append(pts, pt); } int prim_crv = addprim(0, 'polyline', pts); setprimgroup(0, 'connect', prim_crv, 1, 'set'); } nuniqueval() returns how many IDs exist in total findattribvalcount() returns the number of points that share the same ID findattribval() returns the point number of each member with the same ID connect_ids.hiplc