Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

5 Neutral

About ColecloughGeorge

  • Rank
  • Birthday 06/08/1999

Contact Methods

  • Website URL

Personal Information

  • Name
    George Coleclough
  • Location

Recent Profile Visitors

184 profile views
  1. Animated Noise

    Hi The first thing that springs to mind is to use uv's that are unwrapped using the seam marked in blue. Layout the uv's so the long strip is vertical and then source your noise function from the uv attribute. While doing this step the x component of your uv attribute up or down according to time. this wouldn't tile however unless your uv strip went flush against the edges of the tile and you used periodic noise. If you could find another way to create a looping attribute around your torus, you could then use that to source your noise. You could check the angle of the vector from the center of the torus, creating a 1d value between 0 and 1, then remap that value so instead of going 0, 0.5, 1 it goes 0, 0.5, 0. If you then used that value to souce your noise it would tile and work alright. Both these approaches are similar, just with different wrappers. Best of luck.
  2. Setting the current pane/paneTab

    Hi there, in an everlasting effort to vimify my pc, I find myself wanting to cycle through the panes in the current desktop using shift+j or k, like you would see in a tiling window manager. For this to happen, I need to be able to set the currently "active" pane. In the python paneTab object, I see no method to do such a thing and I was wondering if I was missing something. Thank You My backup plan is to include this https://pyautogui.readthedocs.io/en/latest/mouse.html#the-screen-and-mouse-position and manually set the cursor position and emulate a click, but the thought of that makes me want to throw up in my mouth a little. As always, thank you for any help
  3. Pointers and struct children in vex

    Hi there, I am trying to define the shape of lightning using vex in a wrangle sop A lightning path has forks that split from any given path, creating other paths with almost identical properties to the main path. To that end I created a path struct but I can't figure out how to get it to store its 'forks'. The same issue would arise if I instead stored the parents instead of the children. I am defining a path of lightning as so: struct lPath { lPoint source; lPoint sink; float energy; lPath forks[]; void setSource(lPoint newSource) { source=newSource; } void setSink(lPoint newSink) { sink=newSink; } void setEnergy(float newEnergy) { energy=newEnergy; } void create() { addprim(0,"polyline",source.num,sink.num); } } my issue is that I can't include a reference to itself due to infinite recursion, which is why in c++ I would use a reference lPath * forks[]; Is there any way to solve this using vex? Kind Regards George
  4. Solver in Cops

    hiya, I've since achieved my goal :D. Make a point grid and treat your points like pixels, then do dynamics operations on those. Then read it back into cops using the point expression in a snippet within a vopcopgen
  5. The correct way to handle collisions?

    Ahh ok thanks, I'll look into force calculations, but on the topic of vellum, I've had a look in the solver, and it uses position updates for external collisions too. They do: float C = dot(v@P - v@hitpos, v@hitnml); if (C < 0) v@P+= -C * v@hitnml; I'm just off to try that out, dunno why they use the letter C. Yeah it is for learning. Just got a bit sick of using these solvers as a black box. Thanks for the help and interest,
  6. The correct way to handle collisions?

    So currently, in the simplified scene, I'm grabbing the forces off of the force nodes, then I'm calculating the acceleration, velocity and position from those forces using: acceleration= (1 / f@mass) * force * Δt velocity= velocity0 + acceleration position= position0 + (Δt * velocity) after that I'm using the logic in the above diagram to handle the external collisions
  7. The correct way to handle collisions?

    This is occurring after the dynamics, I figured it was best to handle collisions last to ensure nothing intersects the next timestep. I've just found that it may be the case that the gas collision detect dop detects other particles in the same geometry, so I'm currently doing some testing on that
  8. xyzdist function check

    Yeah unfortunately you have to pass a geometry to xyzdist and to edit a geometry that isnt input 0 in a wrangle, you have to use sops. I think you can use python to edit two input geometries at once and it has a similar function geometry.nearestPrim() However I am unsure how to do this.
  9. xyzdist function check

    I initially tried to do this using the a group expression in the xyzdist, maybe you could still do that But this works. xyzdist.hipnc
  10. The correct way to handle collisions?

    Hi there while building the hip file, I implemented this solution This works somewhat, but particles fly everywhere, leak through colliders. When a surface collider is used, they just stick. The reason I am altering positions instead of velocities is because I am trying to emulate the position based approach here: https://vimeo.com/142534638#t=750s, but for external collisions. If this is a bad approach then I'll look into altering the velocity instead. Thanks pbdCollision.hipnc
  11. Houdini 18 Wishlist

    adaptive resolution flip solver https://www.youtube.com/watch?v=dH1s49-lrBk&t=0s style transfer upresing for smoke and possibly other effects I love cops but it often crashes, especially when viewing a live texture so some stability improvements would be great. For cops I would love to be able to write a kernel directly in houdini as opposed to the external function it seems to call currently. As an above post says, you may as well go full substance with cops Hom is great Cheers
  12. The correct way to handle collisions?

    Hi there. I am currently building a cloth solver and have just got onto external collision handling. For internal collision I am using the same pbd approach they show off in the grains masterclass. I thought I would go about external collisions a similar way, using a gas collision detect I get the incidence vector and reflect it. Then add the resulting reflected vector to the position. if (i@hitnum) { vector incidence= v@hitpos-v@P; float mag=length(incidence); vector reflection= reflect(normalize(incidence), normalize(v@hitnml)); v@P+=reflection*mag; } The cloth still blows up, even at a high substep Annoyingly a simple if (i@hitnum) v@P=v@hitpos; seems to work worlds better albeit the colliding points get stuck in place (which is something I aimed to fix by setting the new position to the reflected vector). The reason I'm not using the gas integrator to handle this for me is because I was looking to learn how this system is implemented. What is the correct way to go about this? As always any help is greatly appreciated Thanks
  13. Separate a building in two parts with a curve

    so it looks like you're comparing every point on the building to a point on the curve with a corrosponding point number. This won't work unless you put some work into somehow co-ordinating the point numbers beforehand. What I would do is look for the closest position on the curve geometry using: int prim=0; vector primuv={0,0,0}; xyzdist(1,v@P,prim,primuv); this will give you the closest prim and the position on that prim. then use: vector nearPos= primuv(1,"P",prim,primuv); to interpolate the point positions on the prim to that primuv location. then compare the current position with the nearestPosition: if(@P.x> nearPos[0]){ setpointgroup(0, "right_side", @ptnum, 1, "set"); } else{ setpointgroup(0, "left_side", @ptnum, 1, "set"); } This setup will only work in one plane, currently the x axis. To expand it and to prevent against looping curves you could look into using a cuttting plane and then analyzing the dot product of the nearest faces normal.
  14. Installing latest Nvidia drivers on Ubuntu

    I know it's different as I'm running debian but they are fairly similar. I get the drivers from the official repositories, in your case the ubuntu ones. For me there is just a package called nvidia-driver in synaptic which I download. That installs all the dependencies automatically, I then needed to get nvidia-opencl-common for opencl Also did you uninstall the open source nouveau drivers before installing the ppa? What does houdini log to the console as it crashed too? Good luck
  15. Quads instead of triangles

    It's not a simple issue, especially if you want quads for the sake of deformation or a subd workflow. Your best option is to use retopology tools. I'm used to quad draw in Maya but I believe houdini's tool is called topobuild, so I'd watch a few tutorials on that.