Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

10 Good

About Kappy

  • Rank
  • Birthday 08/28/1978

Personal Information

  • Name
  • Location
    Montreal, QC
  1. unlock single node in HDA

    Type Properties -> "Node" tab -> "Editable Nodes" ...just put in the relative path to the node you wish to remain unlocked. Beware, though - sometimes doing this can have unpredictable results after updating the HDA. For instance, we recently had a Draw Curve SOP unlocked in a tool we made, we updated it regularly with no problems, but after update version 20 it reset the curve strokes in preexisting .hip files. -James
  2. random normal direction

    I always do this with a one-liner like this: v@N = (vector(rand(ch("seed1")))-{0.5,0.5,0.5})*2; -James
  3. What I've done in the past is to limit the angle that the orient is allowed to change from frame to frame. This requires a Sop Solver. I've modified your file, Hernan, to show what I mean. It's simple when it's finished, but kinda tricky to get right -James buildQuat_maxangle.hip
  4. Additionally, to use random modules in one-liners, sometimes I like to use the __import__ function, like this: __import__('re').sub('foo','bar','foobar') Still makes your expression longer, but at least it's a single line. -James
  5. Atomic Fiction, an award-winning VFX studio based in Montreal and Oakland, has an immediate opening for both Senior and Mid-level FX Artists in our Montreal studio. We just finished work on Pirates of the Caribbean: Dead Men Tell No Tales, Allied, and Star Trek: Beyond, and we have some exciting work lined up through the next year. If interested, apply here: EFFECTS TECHNICAL DIRECTOR - Atomic Fiction
  6. Displacement map for particles?

    You can use the Mantra Point Replicate Procedural to shift each particle in CVEX at render time. Super fast and efficient. Here's an example file. -James pointprocedural.hip
  7. Kappy's Reel

    Thanks, Peter! Yah, Method NY was fun. The quick-turnaround smaller jobs often kept me on my toes -James
  8. Reuse packed fracture as passiv animated geo

    If I understand you correctly, I think your problem is you're not setting intrinsics. Specifically, with packed prims you need to make sure the "transform" and "pivot" intrinsic attributes are set. I created a SOP Solver in your second sim that sets these, and it seems to do what you want. PassivPackedOBJ_sopsolver.hip -James
  9. Kappy's Reel

    Hi guys! I don't post very much, but since I just cut a new reel, I thought some of you might find it entertaining. All the work was done while I was at Method Studios, both in LA and NYC. And of course I don't deserve 100% credit for these shots - every one is a result of collaboration with extremely talented artists in the teams I've worked with. And I should also mention that I did use Maya+nCloth for a few of these projects. Hopefully I never will again ;-). Enjoy!
  10. Peter Claes Showreel 2014

    Very cool, Peter! I hope you're able to stay in LA if that's what you'd prefer.
  11. Hi, I'm currently trying to implement a C++ library to read/write the new JSON .bgeo format, and I'm having extreme difficulty. I'm using the UT_JSONParser and UT_JSONHandle classes included in the HDK, since their use doesn't consume a Houdini license. I've figured out that I have to subclass UT_JSONHandle and override the json* and ua* callback methods. Then I just call the parser like this: UT_JSONParser parser; Geo *my_geo_obj = new Geo() UT_JSONHandle *handle = new Geo_JSONHandle( my_geo_obj ); UT_IStream *is = new UT_IFStream("/tools/apps/houdini/hfs12.1.125/houdini/geo/defgeo.bgeo", UT_ISTREAM_BINARY); parser.parseObject( *handle, is ); [/CODE] So far, though, all I'm able to do is print out the stream from the parsed JSON, but not organize it into any meaningful structure. The nested multi-typed data seems too unwieldy, without either a fairly sophisticated state machine, an extremely type-flexible hierarchical data structure, or both. I'm thinking there must be an easy way to do this. I know there's a Python implementation that ships with Houdini, but that's not proving too useful. Has anyone out there had any success at using these UT_JSON* libraries? Thanks! -James
  12. It's kinda old (written for H9), but I always used to look at this PDF made by Ron Bernard to know what variables are available where: http://www.profwiz.com/wp-content/uploads/2008/05/rb_h9_attributes.pdf
  13. I always just use a UVTexture SOP, with the texture type set to "Perspective from Camera". The distance is in the uv[2] attribute (or $MAPW). Not sure about the relative efficiency, but it sure is easy!
  14. Are you wanting to do the deformation in SOPs or in a shader? SOPs is easy - in a Point SOP or VOP SOP, just add the texture value back to P, and voila! If you want to deform in a shader, just do the texture lookup in your displacement shader... Is that what you're asking, or am I misunderstanding?
  15. Pyroclastic Dust

    Wow, that's inspiring! I'm going to experiment today with custom divergence fields - I always thought that would just muddy up the sim, but apparently not! I think you just ruined my Saturday ;-) -James