Jump to content

ivr

Members
  • Content count

    20
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

0 Neutral

About ivr

  • Rank
    Peon

Personal Information

  • Name
    Ioana
  • Location
    United Kingdom
  1. Thanks, Tomas! I was doing that because I didn't know how many voxels Houdini was considering when interpolating values inside Gas Particle to Field. So I was experimenting with writing my own. I thought the volume sample was only returning the value of that particular voxel. Also, I couldn't find much information about the interpolation function used inside the Gas microsolver interpolations, so I wanted to be able to control that aspect as well.
  2. Hello, everyone! I'm writing my own Gas Field to Particle to project a velocity field to my particles. I have tried with both a Point and an Attribute Wrangle connected to my particles and the velocity field. First I'm getting the voxel index at the position of the particle: vector voxelindex = volumepostoindex(1, 'velN', @P); Each particle needs to consider information from surrounding voxels. So I'm taking the voxel index at the position of the particle and add to it voxel index shifts. I'm storing these shifts in a vector array. foreach(vector index; voxel_shifts_array) { current_voxel_index = voxelindex + index; current_voxel_pos = volumeindextopos(1, 'velField', current_voxel_index); vector vel = volumesamplev(1, 'velField', current_voxel_pos); //weight calculation based on distance between particle position and voxel position foreach(index1, i; abs(@P - current_voxel_pos)){ } vel_pic = vel_pic + @TimeInc * weight * set(getcomp(vel, 0), getcomp(vel, 1), getcomp(vel, 2)); } The foreach loop contains the weight calculation based on the distance between the particle and the current voxel. I believe there is something wrong with my volume sampling but I cannot pinpoint what.
  3. Recreating Gas Particle to Field?

    Thank you, Tomas! So if I were to use Gas Extrapolate and afterwards use a Volume Wrangle SOP, my fields would be modifies to what I set them in the wrangle?
  4. I'll keep that in mind! Thanks!
  5. Collisions with SDF

    Thank you, Dominik! Easier than I thought...
  6. Hello, everyone! I have some particle attributes I'd like to interpolate on some fields. At first I had a SOP solver with an Attribute Wrangle where I modified the particle attributes and then copied my results to the volume (@density=result). When I middle mouse clicked on the nodes inside the DOP net, the volume was not listed as information inside, as it was when using Gas Particle to Field. Therefore, I thought I could use the Houdini Gas Particle to Field to somehow create the fields and then use my Attribute Wrangles to write over the values set initially by the Gas node. But I am afraid my Attribute Wrangles are not affecting the volumes at all, as the volume created by them was not listed initially. Are my Attribute Wrangles going to write over the volume values? Or is there a way for me to recreate a Gas Particle to Field in VEX?
  7. Thank you, Tomas! I'll consider point per data if my slowing down problems become overwhelming and I'll stay away from user data!
  8. Hello, everyone! I need the result of some calculations done in a Python node in other parts of my network. I am doing a singular value decomposition using the NumPy package. I am getting two 3x3 matrices for each particle in my system.Storing them on the particles seems like a bad idea as they are 3x3 matrices and I am already storing other matrices and vectors on my particles. Is there a way a way I could recall those results further in the network, especially in Attribute Wrangles?
  9. Collisions with SDF

    Hello, everyone! I'm trying to implement collisions in my solver. I was thinking of using SDFs, but I can't wrap my head around how to sample the value of the SDF of my collision geometry at the position of my particle. From my understanding, the volumesample function would need the position vector of the voxel as a parameter. I could try to sample the position of my voxel based on the position of my particle using point clouds, but that may be null if the two are not colliding at a certain frame. So that would bring me back to the calculation of the distance between two points and SDFs become useless. Is there a smart way of using SDFs for collisions?
  10. Thank you, Tomas! I had the same problem when using geometry from a DOP Import in the first input of a Python node, but making a copy of the geometry worked in that case as well.
  11. Gas Fields in SOP Solver

    After a second attempt, I realised it was the first frame issue you mentioned. Thank you!
  12. Hello, cloudfx! Did you figure out how you could access geometry from different inputs so they would be "write-access"able? I am having the same issue. Thanks!
  13. Gas Fields in SOP Solver

    Thank you, Tomas! Indeed, when I work with fields in DOPs, I have no issues when using Volume VOPs. My issues start when I'm working a field that I have created through a Gas Match Field node. Specifically, I have a Volume VOP which is working with a vector field, but not with the gas one.
  14. Gas Fields in SOP Solver

    Hello, everyone! I was wondering if fields created through Gas Match Field could be modified in a SOP Solver. When I plug the DOP Import of my SOP solver into a Volume VOP, it gives me a warning "cannot find attribute 'name', binding volume as density'. I have made sure I specify the data name of my field. However, if I use a normal vector field instead, I do not get the warning and I also have the field displayed in the viewport, which leads me to believe the SOP solver doesn't work on gas fields... How could I manipulate my gas fields then? Should I switch to vector and scalar fields when I want to customise my simulation? And stick to gas fields only when I'm using gas microsolvers for the whole network, without any custom SOP solvers? Maybe Gas Field VOPs and wrangles?
  15. Hello, everyone! I'm trying to calculate some internal forces of some particles using information from 125 neighbouring voxels around each particle. For accessing those voxels, I'm using this array as a shifting index: vector sha[] = array ({ −2 , −2, −2}, {−2, −2, −1}, {−2, −2, 0} , {−2, −2, 1} , {−2, −2, 2} , {−2, −1, −2}, {−2, −1, −1}, {−2, −1, 0} , {−2, −1, 1} , {−2, −1, 2} , {−2, 0 , −2}, {−2, 0 , −1}, {−2, 0 , 0} , {−2, 0 , 1} , {−2, 0 , 2} , {−2, 1 , −2}, {−2, 1 , −1}, {−2, 1 , 0} , {−2, 1 , 1} , {−2, 1 , 2} , {−2, 2 , −2}, {−2, 2 , −1}, {−2, 2 , 0} , {−2, 2 , 1} , {−2, 2 , 2} , {−1, −2, −2}, {−1, −2, −1}, {−1, −2, 0} , {−1, −2, 1} , {−1, −2, 2} , {−1, −1, −2}, {−1, −1, −1}, {−1, −1, 0} , {−1, −1, 1} , {−1, −1, 2} , {−1, 0 , −2}, {−1, 0 , −1}, {−1, 0 , 0} , {−1, 0 , 1} , {−1, 0 , 2} , {−1, 1 , −2}, {−1, 1 , −1}, {−1, 1 , 0} , {−1, 1 , 1} , {−1, 1 , 2} , {−1, 2 , −2}, {−1, 2 , −1}, {−1, 2 , 0} , {−1, 2 , 1} , {−1, 2 , 2} , {0 , −2, −2}, {0 , −2, −1}, {0 , −2, 0} , {0 , −2, 1} , {0 , −2, 2} , {0 , −1, −2}, {0 , −1, −1}, {0 , −1, 0} , {0 , −1, 1} , {0 , −1, 2} , {0 , 0 , −2}, {0 , 0 , −1}, {0 , 0 , 0} , {0 , 0 , 1} , {0 , 0 , 2} , {0 , 1 , −2}, {0 , 1 , −1}, {0 , 1 , 0} , {0 , 1 , 1} , {0 , 1 , 2} , {0 , 2 , −2}, {0 , 2 , −1}, {0 , 2 , 0} , {0 , 2 , 1} , {0 , 2 , 2} , {1 , −2, −2}, {1 , −2, −1}, {1 , −2, 0} , {1 , −2, 1} , {1 , −2, 2} , {1 , −1, −2}, {1 , −1, −1}, {1 , −1, 0} , {1 , −1, 1} , {1 , −1, 2} , {1 , 0 , −2}, {1 , 0 , −1}, {1 , 0 , 0} , {1 , 0 , 1} , {1 , 0 , 2} , {1 , 1 , −2}, {1 , 1 , −1}, {1 , 1 , 0} , {1 , 1 , 1} , {1 , 1 , 2} , {1 , 2 , −2}, {1 , 2 , −1}, {1 , 2 , 0} , {1 , 2 , 1} , {1 , 2 , 2} , {2 , −2, −2}, {2 , −2, −1}, {2 , −2, 0} , {2 , −2, 1} , {2 , −2, 2} , {2 , −1, −2}, {2 , −1, −1}, {2 , −1, 0} , {2 , −1, 1} , {2 , −1, 2} , {2 , 0 , −2}, {2 , 0 , −1}, {2 , 0 , 0} , {2 , 0 , 1} , {2 , 0 , 2} , {2 , 1 , −2}, {2 , 1 , −1}, {2 , 1 , 0} , {2 , 1 , 1} , {2 , 1 , 2} , {2 , 2 , −2}, {2 , 2 , −1}, {2 , 2 , 0} , {2 , 2 , 1} , {2 , 2 , 2}); I isolated it in a separate attribute wrangle and this was indeed what was causing the Houdini crash. Does anyone have any advice on why Houdini crashes because of this array? [SOLVED] the minus signs were dashes instead, the array was fine otherwise
×