Jump to content

Lucy Coleclough

  • Posts

  • Joined

  • Last visited

  • Days Won


Lucy Coleclough last won the day on June 11 2020

Lucy Coleclough had the most liked content!

About Lucy Coleclough

  • Birthday 06/08/1999

Contact Methods

  • Website URL

Personal Information

  • Name
    Lucy Coleclough
  • Location

Recent Profile Visitors

892 profile views

Lucy Coleclough's Achievements


Newbie (1/14)



  1. You can add an id or group attribute to the faces of the simulation mesh If you are fine with rendering the simulation mesh then you can use this group to determine what material gets applied, i.e. in the group option of the material node If uv's are the problem as the topology's changed your best chance would be to use an attribute transfer node If you want to use the original mesh then you might get better results by point deforming each item of clothing individually if you aren't already doing that. To do that you could isolate each item on both the sim and render mesh using the groups, do a point deform per item and then merge them back together. You can either use a for loop or not
  2. Yeah Maya is the real exception here, A pain to set up on a distro that Autodesk doesn't officially support. Houdini works fine on any distro I'm not sure about nuke. The annoying thing is that it's not the trickiest issue to fix, especially nowerdays with systems like flatpak that allow deploying to every distro in one, it's just autodesk being autodesk tbh. I would also add Manjaro into the mix as a great option.
  3. Hi I had a quick look but i'm afraid i'm not too familiar with crowds. The water does seem to be having an effect on the agent though just not the other way My guess is that the form of geometry that the crowd simulation exports is not recognised by flip but I could be wrong. If that is the case you could try grabbing geometry from the agent sim, converting it to polygons, and making it collide with the fluid in a static solver Best of luck anyways
  4. Hi Simone, Cheers That pop attract sounds like a good approach too, I'm interested in how it turns out!
  5. Hi there Simone! Apologies if I explain something you know, it is hard to draw lines on forums Lerp stands for linear interpolate and will blend between two values based on a third value. result= lerp( value1, value2, howMuchYouBlendBetweenThem 0 to 1) e.g. in result= lerp( 3, 6, 0.5) result will equal 4.5 --- If you lerp between your particles position and your desired end position then it won't look natural as they will just move in a straight line and wont obey the laws of physics Masouds approach of changing the viscosity based on age seems like a good approach to prevent liquid from dripping off the edge You can blend this viscocity in a variety of different ways: - how high the particle - how far it is from the surface - age like you're currently doing There is also a stick on collision setting within the fluid solver which is pretty useful So there's many ways to go about it --- I have attached a hip file which uses a geometry wrangle to detect collision with the bar, find the age since collision and increase viscocity based on this age Here is the code: int prim; vector primuv; xyzdist( 1, v@P, prim, primuv); vector nrP= primuv( 1, "P", prim, primuv); float distance= distance( v@P, nrP); // The above is confusing but is required in order to get the distance to // the bar geometry //Make sure input two is set to esternobarretta in the inputs tab of this node if( distance< 0.6 && i@hit== 0) { f@hitTime= f@age; i@hit= 1; } //If the distance is less than a certain amount and it hasn't hit before //then we have just detected out first collision //so record the time and set hit to 1 f@ageSinceHit= ( f@age- f@hitTime)* i@hit; //this finds the time since collision float lerpAmount= fit( f@ageSinceHit, 0, 0.3, 0, 1); f@viscocity= lerp( 1, 10000, lerpAmount); //This means that the viscosity will hit 10000 within 0.3 seconds of hitting //the bar //In order for the viscocity attribute to work, enable the "Viscosity by Attribute" //option on the flip solver under "Volume Motion/Viscosity" v@Cd= lerpAmount; You said you are new to vex so I hope this isn't overwhelming, it is hopefully useful to study Kind Regards, Lucy caramel.hipnc
  6. Hello there I was looking for a solution on how to simulate two smoke objects with different density fields and still have them interact. I couldn't find a solution from a quick search so I thought I'd post here now it's resolved. To achieve this result you need to dive inside each smoke object and disconnect the velocity field. Copy the velocity field creation dop from within an object and attach it with an apply data beneath the merge where you bring the objects together. Set the data sharing parameter on this node to "Share Data In One Timestep" and you should be good to go. You could also share more fields between smoke objects if you don't require individual data for both I've attached a hip file All the best, Lucy multiObjectInteraction.hipnc
  7. Hi there Jack, I just stumbled on the "fluid force" node a second ago and the description makes it seem like it does what you want What solver are you using? I haven't done much solid, flip interaction but last time I did so I needed to turn up the feedback scale on the flip solver "volumeMotion/solver/feedackScale" All the best Lucy
  8. 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.
  9. 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. As always, thank you for any help
  10. 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
  11. 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
  12. 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,
  13. 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
  14. 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
  • Create New...