Archive for the ‘ Programming ’ Category

It’s been a long long time. ;)

I know it’s been a long long long and long time since I last posted anything (I know I started with similar line last time too :p, but seriously I was quite busy all along) but I am back and this time I want to write down a brief about the things happened meanwhile and what I was doing professionally.

So as I mentioned in my previous post that I got a job as Lighting Technical Assistant at DreamWorks Animtions Studio’s Indian Unit after completing my Masters from Bournemouth University and in my second week there I got to work on How To Train Your Dragon 2 (awesome, right?) and then Penguins of Madagascar.

And after that I did couple of commercial for Home and a DreamWorks pipeline video.

 

Finally got an amazing opportunity to set up Lighting and Compositing workflows for DreamWorksTVs’ YouTube episodes of Swamp Talk, Kung Fu Panda, King Julien Stand Up and Puss in Boots. Trust me, that was some intense work because not only I had to set up the workflow, do inventory management but I also did a lot of Lighting and Compositing fixes, went from 3 episodes (each with 15 to 20 shots) to 5 episodes per week. Here is a small demo (you can find my name under “SHOW MORE” 😉 ):

 

And then came “The Boss Baby”, I hit a jackpot when I got this golden opportunity to work on this feature from the look development to final delivery (for 1.5 years, phew!!). As a part of look development team I learnt a lot, wrote a range of tools to automate the tasks for lighting/compositing artists and did quite a lot of workflow set ups, optimizations, troubleshooting and managed to deliver 11 sequences (from start to end), including almost all the crowd sequences (will try to talk about it in separate post because that was something crazy), plus not counting couple of more sequences for which I did the set up, inventory validation and health assessment and later handed over to my peers. It was an incredible experience, more so because I was also a part of Lighting Rig Task Force to design the studio standard lighting rig templates, which we used for the first time on this film. Here is my show/demo reel for the film (it only has 3 out 11 sequences):

 

Unfortunately, during the final two months of the production DreamWorks decided to cease their India operations and Mikros Image took over our unit. Now it’s a new experience of learning altogether where I am spending my time focusing on Nuke, Maya and Katana. I had some good exposure to Nuke and elementary knowledge of Maya but Katana is something else (in a good way 🙂 ). So in last couple of months after DreamWorks I did some tools in Nuke and Maya (check out videos below) and now have decent understanding of Lighting and Look Development in Katana. I will try and come up with some tools for Katana (I have couple of ideas swimming around in my head) but it may take a while as I have some interesting tasks in hand to create some Gizmos for Nuke. I will try my best to post some videos showing their functionality and will also try my best to share my knowledge of how to get certain things done when you are starting with those mentioned 3D packages. Till then enjoy the videos in this post and do comment if you have any queries. 🙂

 

Cloth Simulation

So it has been a long time since I posted something, the truth is –  I didn’t have anything worth posting so far. A few days ago I implemented a very basic cloth simulation system. If the question is why then that story is long and I may discuss later. I wanted to do a lot of things but since I didn’t have much time so I didn’t do complicated stuff. So here are the things I covered:

  • Both RK4 and Verlet Integrators.
  • Collision Handling against primitives, surrounding walls, and self collisions with Octree spatial partitioning.
  • Wind Effects and Texturing support (I tried to use cool textures).
  • Complete User Interface.
  • Multiple Cloths support.

So here is the output of my 10 days of shear hard work (literally just slept for 2 to 3 hours for few days):

 

Procedural Building Generator Based on L-Systems

Again this is one of those projects which I am proud of. I began with simple LSystem but after certain suggestions I decided to try something new and after a lot of research on L-Systems and its applications I zeroed down on a SIGGRAPH paper “Procedural Modeling of Buildings”. Before this paper I have never implemented a SIGGRAPH paper and frankly speaking it took a great deal of research for this particular implementation and I cannot express in words the feeling I had when I first saw a simple house generated by my program. This is a stand alone implementation done in C++ and OpenGL and I also created a very simple Python script to export the building in Maya. It also has the functionality to generate the buildings in steps. What I mean is that the input to this system is a set of rules (like L-Systems)  for generating a particular building and user can select the number of rules to generate that building, if all the rules are fed to the system then the complete structure will be generated. Here is the video showing the implementation in action.

Free Form Deformation (FFD)

As part of one of my assignments I did a Free Form Deformation or FFD tool in C++ and OpenGL. Free Form Deformation is quite famous and available in almost all the 3D packages and once understood then fairly simple to implement as well. I have to admit that I made a mistake in understanding it and suffered for days because of it. So when you need to assign the local coordinate system then assign it only once, not every time when you pull a control point. This was my misinterpretation and I suffered a lot because of it. But anyways it is a part of learning process.

Here is the video of the final output showing a mesh in “.obj” format which can be exported from almost any 3D package and it can export back deformed mesh and again in “.obj” format:

Master Project – Soft Body Deformation Dynamics Based on Shape Matching

Ok, I know I was not so regular in posting my master project progress as I was so busy completing it. It was one hell of journey to complete it and I am pretty happy with the final output and by output I also mean my grades. 🙂
So here are few videos of “Soft Body Deformation Dynamics Based on Shape Matching” (I tried to be cool with the name).

Above video is the compilation of everything.

This video demonstrates the clustering extension mentioned in the paper, where the bounding region of the object is divided into cubical regions that are clusters so that particles can be shared among them and the shape matching algorithm is applied for all the clusters and an average of goal position is taken for the shared particles.

And this final video shows the different modes like “Default, Linear and Quadratic”. This are again extensions given in the paper. I successfully implemented four out of five extensions given in the paper. And seriously the “Quadratic” was the most painful one. I literally spent weeks in fixing that, I had to write the entire code twice, jumped from libraries to libraries for proper implementation of Jacobi rotations but finally did my own solution, so the good thing is that no library dependency and overhead.

I am thinking of writing some tutorial kind of posts in the near future about the problems I faced and the solutions I implemented for them but as of now this is it.

P.S. – Sometimes videos may seem boring. 😉

Finally!!! The Master Project.

Image

After a lot of brainstorming I finally started programming my master project. It took a really great amount of time but I zeroed down to “Deformation Dynamics Using Shape Matching”.  It will be mostly based on the techniques presented in this paper:

http://www.matthiasmueller.info/publications/MeshlessDeformations_SIG05.pdf

And here is the video of original work:

So far I was reading a lot and still I am looking into some recent technical papers on the same topic that’s why nothing much to post but soon I will post some presentable output of my work. Till then Happy Coding!!!