The Salt Flats
It's been way too long since I've posted anything artistic here to my blog, so here's a fresh new piece! I've been wanting to do something in the style of Makoto Shinkai, so here's my take on it. I know, I know, it's nothing like it, but this is what I wanted to do. Mr. Shinkai's work has a very strange power to it. The environments that he paints are always beautiful, yet have a sense of nostalgia to the locations. Even if you've never been to the place, it gives you an incredible feeling of, "I know this place! That's the place from a long time ago..." I wanted to invoke that same sort of feeling, but it was extremely difficult. Mr. Shinkai's environments are often times illustrations of actual locations in Japan, and so I decided to choose the salt flats right out side of my work. Driving past it at 7 in the morning, the sun shines a brilliant orange glow on a perfectly flat thin layer of water that is the flats. It's quite beautiful, so I wanted to capture it. I also run along the flats almost every day, so it was natural to have the character running.This has definitely been the longest illustration I've ever done (two months...on and off...maybe?) and the most complex. There were certainly lots of challenges, and I don't think I've conquered them all, but hopefully I can practice more, and get there.
New post...yup, new job.

I can't believe it's taken me this long to write this post, but here it goes. Last post I had, I was working at Electronic Arts as a contract technical artist on MySims Kingdom. The project has come and gone, the game has already shipped, we've sold more than eight hundred thousand units worldwide. I've had such a great time working at Electronic Arts, and I've made many a friend there of which I'll still hang out with on a regular basis here in the Bay Area. It's strange to think that I've left EA, it all happened so fast.
Soon after I left EA, I started working at PDI/Dreamworks Animation, which happens to be just down the street from EA. You could say it's an industry switch, from games to animation, but my general involvement with a project dealing with art and technology hasn't changed, so it hasn't been that drastic of a change. I started working as a Technical Director on Merry Madagascar, a tv short that's going to premiere some time this fall. I've worked on that film for a good nine months, and I've learned the very complex and large pipeline that is the PDI pipeline. It's been a pretty hard year in terms of coming upto speed on everything, and I still feel like I have a long way to go in terms of knowing the pipeline.
Currently, I'm working on a film called Oobermind, due for release next November. As my first feature film, I can't wait to see my name scroll up the big screen. It's been my dream to have that moment since I decided I wanted to work in entertainment. Although I guess I couldn't have pictured it six years ago, when I was still in college.
California has become my daily routine now. Most days, it's rather cool, or maybe it's warm...but it's never freezing or desperately hot. Seasons seem to bleed into each other, and it's always good weather for a bbq. I do miss the East Coast weather, people, and attitude. It's diffcult to say why. It's hard to hate California, but I just can't seem to love it.
Labels: Dreamworks, EA, work
Thursday, September 4, 2008
Another post, another job

Yup, so it's been another... 7 or so months. I've moved on from IBM, and went to work at EA as a Technical Artist. EA, or Electronic Arts is located in California (Bay Area to be specific.) It was in a nice office park, with sunny skies, green grass, and beautiful lagoons. Typical California weather. The office building new and clean looking (altho quite dark on the inside, which is pretty typical I hear for studios)
I worked on MySims Kingdom, a new Sims title for the Wii. It's a sequel to MySims, which came out just last year.
I was quite happy to get a job as a Technical Artist, since that's the kind of position that I've always wanted to be. I wrote tools in Python for Maya and C# tools to help with outsourcing. I also helped out with helping artists with technical issues and checking their work for technical soundness. I debugged shaders and contributed on development of new ones.
It was actually quite a nice job. My first game gig, it and it wasn't the crazy crunch filled atmosphere that I half-expected it to be. I never stayed longer than I wanted to, and there definitely was a sense of camaraderie amongst the team members. It was true that everybody on the team seemed to be nice people. My boss was especially nice to me, and was very protective of his team members from other departments in the team. Even when there was tension between others in the team, I would somehow feel separated from it.
I've learned quite a bit about game development and gotten valuable experience interacting with people on a large team. I've made some cool friends, and valuable contacts in industry. Working in a big team certainly made me feel like I was part of a big thing. Working towards a very real and clear goal with 70 other people is pretty motivating in and of itself. You don't quite feel the sense of ownership that you do with smaller projects like Bluegrass, but the end product will reach many more people.
I do miss Boston still, it was quite a fun and exciting city. Easy to get around and not too big, it was the perfect sized city. The Bay Area is like a sprawling crowded suburb. The focus is on the suburbs a little bit more, and even though it's easy to figure your way around, it's quite a pain to get from one place to another. Makes me want to move to Japan where you can get to anywhere with the train. Still, California does have its perks, like having a huge selection of Japanese food right outside your door is quite awesome. There are a huge amount of asians here compared to the East Coast. Unfortunately, California can't make decent pizza. That was quite sad. I will miss my Villa Pizza in Holmdel, NJ.
Labels: EA, technical art, work
Tuesday, January 15, 2008
What I've been working on for the past 7 months

A couple of days ago, Rational announced Jazz, which is a suped up version of Eclipse. My project at IBM dealt heavily with Jazz, so now that Jazz is announced, I can say what I've been working on.
Bluegrass is the project that I've been working on at IBM over the past seven months. It's a virtual world embedded in an IDE. Bluegrass is targeted towards distributed software development teams. It helps them communicate and brainstorm about project ideas in the virtual world.
The three main objectives were:
1. To serve as a visualization for the team artifacts.
Various team artifacts such as how the team is doing overall, or what work each member has been doing is shown in world. This helps with team awareness of what's going on with the team.
2. To provide tools for brainstorming meta-work.
We provide a method for users to create post-it like bubbles that they can arrange in any way they like. Users can import images and other information from online resources. There is a save/load capability to store your past brainstorming sessions.
3. Give users a social place to hang out and get to know each other.
We implemented several social games and tools that users could play with to give users a topic of conversation. We also connected with outside data sources like the corporate directory and corporate facebook application to give users more of an idea of who the people are.
I guess seeing the thing is the best thing, and we have a video in IBM's codestation in Second Life, where you can see it. The SLurl for it is:
http://slurl.com/secondlife/IBMCODESTATION/124/159/25/
Also, there has been a bunch of press coverage about Bluegrass. Here are some links to some articles:
http://www-03.ibm.com/press/us/en/pressrelease/23308.wss
http://www.infoworld.com/article/08/01/14/jazz-bluegrass_1.html
http://www.eweek.com/c/a/Application-Development/IBM-Opens-Jazz-to-Developers/
http://dusanwriter.wordpress.com/2008/01/14/ibm-launches-project-bluegrass-virtual-world-collaboration-tool/
Wednesday, January 2, 2008
Pixel Machine: A Ray Tracer
So a friend of mine showed me a site called Pixel Machine. This guy wrote a ray tracer in one day. I looked at it and said, "Hey, I could do that." Now why I'd want to do that to anybody might be a complete mystery, but I happen to need a little brushing up on C++, so I decided to go ahead and try it out. I started this morning at 10AM or so, and we'll see how far we get today!
EDIT: I switched the order of it so the more recent entries stay up top...
By the way, you can download the latest source here.
Day 3 5:30PM
Super Sampling and Reflective Materials
Added anti-aliasing code and extended the phong material to support reflection. It now takes a while to render the image.... Also, the image to the left has blurry reflections turned on. You can see that the balls appear on the floor with a blurry reflection.
Also changed the color of the background to blue, so you can tell that the reflected material is blue.
Day 2 12:00AM
Didn't really work on it much today. Today was the big interview day. I didn't get a chance to work on it much, but here's phong materials!
1:00AM
Rested for the rest of the night. Wondering where to take this next...
12:00AM
So now we've got triangles and shadows working. There's a plane sitting under the two balls, and it doesn't look like the balls are floating in mid-air.
Also it turned out that my normals were correct but I was calculating the Light vector backwards... doh!
10:00PM
We have colored spheres!! Yay! Reminds me of old school CS courses...
So, I added a Light class, and a material class with a lambertian child. It was only after getting colored images that I realized that I had my image flipped 90 degrees sideways, and the r and b channel were flipped.
So this is two spheres, placed at 0,0,0 and 2,0,0, looking from the +z axis towards the origin. There's actually something funky going on with the red sphere, but I'll get to fixing it soon.
Next steps: Phong materials, Triangle geometry, Mesh Geometry, and Acceleration Structures! Oye so long...
7:00PM
Dinner break and work out break...no work done... I see how trying to program all day is so difficult... props to those who just blow through 10+ hours in a row straight.
4:00PM

Now to get to the guts of the program. Here's the easy part, right? *harhar*
I set up classes for all the following: Camera, Geometry (including just a Sphere for now), Vector3 class for math functions, and the Scene object (contains all geometry and lights information). I also created an intersection Record data structure that can hold all information about the object you hit in the scene.
For now, i just intersected a sphere at 0,0,0 and my camera at 5,0,0 looking towards the origin. Also for now, I just made the program return a white color if it hit anything at all, and black if it hit nothing at all. Wee, we have a circle!!
2:00PM
Lunch Break:I just wanted to say that I love Villa Pizza of Holmdel, NJ. It is the best pizza ever! There's a reason why it's been my favorite for 10+ years. Okay, end rant. Back to work.
12:00PM

Start! I figured there were two parts to writing it:
The easy part: making the ray tracer.
The hard part: doing all the setup.
So, I started off with creating a way to write out image files. I went with what the Pixel Machine did, since that was not to be the hardest thing. BMP's are "braindead" according to my friend, so I went with bmps, and I made a gradient 256x256 image.
EDIT: I switched the order of it so the more recent entries stay up top...
By the way, you can download the latest source here.
Day 3 5:30PM
Super Sampling and Reflective MaterialsAdded anti-aliasing code and extended the phong material to support reflection. It now takes a while to render the image.... Also, the image to the left has blurry reflections turned on. You can see that the balls appear on the floor with a blurry reflection.
Also changed the color of the background to blue, so you can tell that the reflected material is blue.
Day 2 12:00AM
Didn't really work on it much today. Today was the big interview day. I didn't get a chance to work on it much, but here's phong materials!1:00AM
Rested for the rest of the night. Wondering where to take this next...
12:00AM
So now we've got triangles and shadows working. There's a plane sitting under the two balls, and it doesn't look like the balls are floating in mid-air.Also it turned out that my normals were correct but I was calculating the Light vector backwards... doh!
10:00PM
We have colored spheres!! Yay! Reminds me of old school CS courses...So, I added a Light class, and a material class with a lambertian child. It was only after getting colored images that I realized that I had my image flipped 90 degrees sideways, and the r and b channel were flipped.
So this is two spheres, placed at 0,0,0 and 2,0,0, looking from the +z axis towards the origin. There's actually something funky going on with the red sphere, but I'll get to fixing it soon.
Next steps: Phong materials, Triangle geometry, Mesh Geometry, and Acceleration Structures! Oye so long...
7:00PM
Dinner break and work out break...no work done... I see how trying to program all day is so difficult... props to those who just blow through 10+ hours in a row straight.
4:00PM

Now to get to the guts of the program. Here's the easy part, right? *harhar*
I set up classes for all the following: Camera, Geometry (including just a Sphere for now), Vector3 class for math functions, and the Scene object (contains all geometry and lights information). I also created an intersection Record data structure that can hold all information about the object you hit in the scene.
For now, i just intersected a sphere at 0,0,0 and my camera at 5,0,0 looking towards the origin. Also for now, I just made the program return a white color if it hit anything at all, and black if it hit nothing at all. Wee, we have a circle!!
2:00PM
Lunch Break:I just wanted to say that I love Villa Pizza of Holmdel, NJ. It is the best pizza ever! There's a reason why it's been my favorite for 10+ years. Okay, end rant. Back to work.
12:00PM

Start! I figured there were two parts to writing it:
The easy part: making the ray tracer.
The hard part: doing all the setup.
So, I started off with creating a way to write out image files. I went with what the Pixel Machine did, since that was not to be the hardest thing. BMP's are "braindead" according to my friend, so I went with bmps, and I made a gradient 256x256 image.
