Wednesday, June 4, 2014

Life Update!

Wow, I didn't realize it had been so long since my last update...

Since we last spoke, blog, I have been to Turkey, to Greece, and back, and begun a new job as a programmer/creative coder at Mirada Studios in Los Angeles. I was fortunate enough to be able to stay on the Westside where I lived and worked previously, and have spent the last eight months working on a super-secret and super fun data viz installation project for Mirada's Special Projects team! I have learned an immense amount since I've begun. I am working with a really smart, creative group of people who continue to inspire me every day, and I'm looking forward to learning even more as I finish out the project this year.

I've also, for the past 5 weeks, been teaching an introductory programming course to 11-17 year-olds in Processing at Digital Dragon. The kids are all really smart, sweet, and eager to learn. It's been a great learning experience, and very rewarding to boot! I did a short interview for DD a few months ago. You can check that out here.

Kos, Greece
During this project, I've gotten to experience working with algorithms and code as it relates to design and design principles - that is, designing with code, rather than creating a design and implementing it with code. It's a very different way of approaching problem solving that I think makes more sense in the creative/entertainment tech context. One such algorithm I've encountered is the Slabtype algorithm: a way to dynamically generate typographically beautiful layouts for text. You can read more about the algorithm and how to implement it here. I highly recommend checking it out; it's an interesting read!

Wednesday, August 28, 2013

Houdini Engine + Play Mode

I've been messing with the Houdini Engine API to see if I can get Engine assets to cook in Unity during play mode.


It does work, as long as I don't ask it to update more than once every few seconds. Otherwise I end up with a memory allocation error:


I'll have to find a good workaround for this.

Sunday, August 18, 2013

SIGGRAPH 2013

I went to SIGGRAPH about a month ago with SideFX, where I spent the majority of my time running the Houdini Engine demo at SideFX's expo booth. I really enjoyed getting to know SideFX's Toronto staff, and talking to people interested in the Engine.

I had the privilege of speaking at the "SIGGRAPH Birds of a Feather: VFX Student & Intern Showcase," where I talked about my path from student to professional and showed off some of my internship work. It was a great experience!

Aside from that, I spent a lot of time walking around the Emerging Technologies hall. E-Tech always has a lot of neat technology, and this year was no exception. Some of the ones I thought were especially interesting:

I had a blast at the conference, met some amazing people, and caught up with a lot of old friends, including my mentor from Georgia Tech, Greg Turk. Hopefully I'll get to go again next year in Vancouver!

Monday, August 5, 2013

Messing around with audio...


I've been getting back into computer audio recently. I really enjoyed the course when I took it at Georgia Tech four years ago, during which my teammates and I wrote a basic autotuner (back when autotuning was still cool). More recently, I've been brushing up on comp. audio concepts (yay, wikipedia!) and playing around with scripting an audio spectrum analyzer in Unity: https://vimeo.com/71708392.

I've also done some more work on my Kinect pointcloud visualization in Houdini: https://vimeo.com/71702497. This one's an audio-driven CHOPs animation of a Kinect pointcloud. The particles change color according to the pitch and percussion. R value for percussion, and G & B according to pitch. It's not perfect, and it's still a work in progress, but it's getting there.

Tuesday, July 30, 2013

Kinect experiments part 2

I have a render! I'm still waiting on my Leap Motion to arrive, but I'm checking out ZVector meanwhile.

http://vimeo.com/71382971

I'm working on a few Houdini Engine experiments right now. Stay tuned. :)

Monday, July 29, 2013

Kinect Experiments...

Recently, I've been messing around with bringing Kinect pointcloud data into Houdini. Here's a screenshot of my work in progress. I should have a render to share soon, too.

After that, I plan to do the same with Leap Motion data, and probably mess around with ZVector, too. If I could tie the three in together somehow, that would be fun, but I'm not sure how, yet. Some brainstorming is necessary... More soon. :)

Inspiration: http://mattiaslindberg.com/tag/houdini/

Tuesday, July 2, 2013

An interesting challenge

The other day, my supervisor at work asked me to create a series of assets geared toward Houdini "noobs," so to speak, who may or may not be artists and who are new to the procedural workflow. Our goal was to come up with assets that were simple enough for someone with zero Houdini experience to be able to load the asset, play with it, and understand what it does. Below are some of the assets I created.

Sweep Along Curve: Use the Sweep SOP to sweep a polyline along a curve.



Stacked Crates: Allows the procedural stacking of various sized boxes. After the lowest box has been positioned, the lower can change the number of boxes and adjust the offset between them.





Copy to Points: Copy objects to the points of any input object, using the Copy SOP. Random scales are optional, and the multiplier for the random scale is adjustable. This could be used for something like scattering vegetation on terrain.



Instance to Points: Same as CopyToPoints, but using the Instance node.

I found it unexpectedly challenging to create these assets without Python/HScript, which, as a computer scientist, is my go-to problem-solver. I actually had to create each asset solely with Houdini nodes, with the assumption that the user of my assets would have no programming knowledge whatsoever. I learned a lot about Houdini through this exercise and found myself approaching problems differently. It was a fun challenge and a good workout for my brain!