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!

Tuesday, June 4, 2013

GDC

In late March of this year, I had the opportunity to attend GDC, the Game Developers Conference, for the first time. Not only did I get to attend with some of my co-workers at SideFX, but I also got to catch up with a lot of my ETC friends! I had a blast! I was able to attend quite a few interesting talks.


My favorite one was part of the Technical Artist bootcamp on the second day of the conference. Game studio Slant Six Games talked about the tools they used to create procedurally generated cinematics for their game Galactic Reign, a turn-based strategy game. Essentially, they used animation sequence templates in combination with actual events from the player's game to generate the ending cinematic to the player's game. One thing I found interesting was Slant Six's use of Maya to create the different fleet formations of ships for the game. The studio wrote their own plugin to generate different formations, but I think this could have been accomplished much more efficiently if they had used Houdini. You can read more about their work here. Double Fine Productions gave a talk on rapid prototyping that was part of the Technical Artist bootcamp as well, which I also found interesting. Hearing about their work inspired me to pre-order a Leap Motion controller for myself. I'm pretty excited to play with it when it gets here in a month!

Another talk I liked was "Equality or GTFO: Navigating the Gendered Minefield of Online Gaming Spaces," given by Anita Sarkeesian. Sarkeesian spoke about her experience with sexist online harassment and cyber mobs as a result of her Kickstarter campaign to create a series of videos exploring tropes vs. women in video games. Hearing about her experience and the internet's reaction to her Kickstarter was appalling, but it was definitely an eye-opening talk. You should read more about her talk here.

The last talk I saw at GDC was "Achieving Real-time Synthesis in the Musical World of FRACT," a first-person, puzzle adventure game inspired by electronic music. The developers talked about how they used Pure Data with Unity and wrote their own sound libraries to achieve a high level of control with which the player could create their own music in game, rather than using pre-recorded loops. This game recently was greenlit on Steam, so I'm excited to see cool things from them soon! Check out the videos on their website for more information!

Overall, I really enjoyed my GDC experience. I learned a lot, and I would love to go again!




Sunday, June 2, 2013

The Final Semester - Recap

Near the end of last semester, I was fortunate enough to be offered an internship at Side Effects Software Inc. in Santa Monica, CA, as their Houdini Gaming Intern. I've been here about 5 months now, and I'm really enjoying my work! I've been working on a few projects to demonstrate how Houdini can be used in the games space. We'll hopefully get to show off some of my work at SIGGRAPH in a couple of months! Though my internship work does keep me busy, I've also gotten some time to learn Houdini on my own using SideFX's vast library of resources. I'm currently learning more about procedural modeling, and creating assets in Houdini that would be useful in games.

Other news: a few weeks ago, I traveled back to Pittsburgh for a weekend to graduate. I now officially have a Master of Entertainment Technology degree from Carnegie Mellon University! I still have a few months left of my internship, so I will be in Santa Monica for a while longer, but it feels good to finally be finished with my degree and done with school!

Overall, I really enjoyed my final semester, and I'm looking forward to the rest of the internship!

Tuesday, March 5, 2013

India Trip!

I spent the majority of my winter break (December 19th to January 3rd) on a trip to India with my family. It was somewhat bittersweet, since this was the last time for who knows how long that my sister and I would have a vacation at the same time and thus was possibly the last family trip for a while. We managed to fit quite a bit of travel and sightseeing into our trip, so in the interest of keeping it short, I'll give you the highlights.

A man meditating on the beach, circa 6am
We arrived in India on 12/19, and met up with my maternal grandparents and my cousins (my mom's younger sister's family). The next day, we took an early morning walk to the beach, then visited Mylapur for some shopping as well as to visit the local temple (you'll see a trend here, soon). On the 21st, my mom, my sister, and I went on a mini-sight-seeing trip with my grandparents, my aunt, and one of my cousins. We visited the Vedanthangal Bird Sanctuary and two temples in the city of Kanchipuram, including Ekambareswarar temple, the largest temple in the city.

I know we went to Vedanthangal to see birds,
but the monkeys were just so cute!
We spent the next few days with family and running errands. We also threw an ice cream party (of sorts) for the children at a local orphanage, and donated some clothes and things to the orphanage and a nearby old age home.  On the 23rd, my sister, mom, and I took a train to Bangalore, where we met up with my dad. The next day, we began a hectic but fun road trip in a rental car with a driver.

On day 1 of our trip (Christmas Eve), we visited Ranganthittu, a bird and crocodile sanctuary, where we took a guided boat ride. Next we drove quickly through the ruins of Tipu Sultan's fortress, followed by a visit to the Brindavan gardens in Mysore to see the light show (which wasn't much of a show, but it was still pretty). We bedded down for the night at a homestay in the Madikeri hill station in Coorg.

Abbey Falls
The next morning, after a traditional Coorg breakfast of homemade rice chapatis, we visited Abbey Falls, the Namdroling Monastery (a Tibetan Golden Temple) in Bylakuppe, and the Palace of Mysore. At this point, we were cutting it really close to the 8pm closing of the only road to Bandipur jungle, so we hightailed it to the Bandipur Tiger Reserve in record time, where we stayed in a resort for the night.

Tibetan Golden Temple
We took a safari bright and early the next morning, on which we saw very few animals. Fortunately, the driver of our rental car was familiar with the area and was able to show us plenty more creatures. After this, we began the long, arduous journey to Guruvayur (nearly a 7-hour drive), to see the Guruvayur Sri Krishna Temple. At Guruvayur, we got to see the Seveli ritual performed, where an image of the presiding deity, Vishnu, was carried by the temple's elephants (yes, elephants!) and the temple priests. The elephants (three of them, side by side, such an awesome sight!) circled the temple three times, with devotees preceding them and praying aloud. Seeing the Seveli was definitely worth braving the extreme crowdedness of the temple! After Guruvayur, we spent the night with some family friends who recently moved to India from our hometown in Georgia.

A peacock from our morning safari!
On December 27th (the following morning), we visited my dad's cousins, followed by my maternal grandfather's ancestral home, where he grew up. Next, we drove to Coimbatore, where we visited the university campus where my dad's eldest brother works. After a campus tour, we visited the famous Marudamalai temple, followed by a delicious dinner at the Annalakshmi charity restaurant. This was a really neat restaurant in that all the "employees" were volunteers, and you were allowed to pay whatever amount you wanted for the food you ate. What a cool idea! We spent that night at my uncle's place.
Amrita University, Coimbatore
(http://www.amrita.edu/cbr/)

The morning of the last day of our trip, we visited the local Perur temple during a festival. It was too crowded for us to go in, but we did get to see some of its beautiful architecture - thousands of years old. After saying our goodbyes, we began the trip back to Bangalore (which included a delicious buffet lunch in my mom's hometown of Salem).

During the remainder of my time in Bangalore and later in Chennai, I was able to see some friends from Georgia and Pittsburgh, and watched fireworks on New Years Eve on my aunt's terrace near the beach. A few days later, I returned home to Georgia, exhausted, but pleased with a wonderful trip!




Wednesday, February 6, 2013

Fall 2012 Semester: End

Wow, how long has it been since my last post? Since then, my semester has ended, and I've moved on to my last semester as a student! (Finally!)

I finished out last semester in Entertainment Design Studio (EDS) with one last Houdini project: a colormix OTL with basic compositing. You can see some of the iterations of my work along with the final version at the Youtube link below.
I really enjoyed my semester in EDS, but it made me realize that there is a lot more to Houdini than I can learn in a semester. Luckily, I will be learning a lot more Houdini in my co-op this semester... but more on that later. :P

I also finished up my project, Up+, sponsored by Microsoft. For this project, our team--five programmers, one artist, and one content designer (me)--worked together to create a highly personalized, interactive, retail experience to help sell the Windows Phone 8. The experience we came up with was a website which asked the user a series of seemingly random, unrelated questions. Our algorithm would then analyze the user's responses to these questions, and use this data to create a personalized Windows Phone for the user, complete with all the apps the user liked. My part in this project was designing the textual content and flow of the experience, as well as managing cultural implications and obstacles. You can read more about our project on the project website. The fruits of our labor have been handed over to Microsoft, so you will hopefully see it in retail spaces soon!

Next post: My winter break adventure!