Sunday, August 31, 2014

MPC and some pure MATH fun!

So, it is now something less than 2 months that I moved to London to start a new job at MPC.
Of course you can guess how excited I am; unfortunately I am not allowed to tell that much about the company, so I decided to get back to the roots and spend my time on some pure Maths stuff.

Currently I am writing a Numerical Methods  library. This should allow me to have some fun writing some cool IK solvers, 3D scanners, motion trackers and dynamic solvers.
I am planning to release it as a Python module and as Maya-compatible C++ code.

A little bit as going back to my roots when I was teaching Numerical Analysis in 2005 but with a more practical flavour.

Monday, June 23, 2014

More PhD and news to come...

Well, I'm writing my very last article to finally earn my PhD and...
Hurrah! I'll join one of the best VFX companies in July!

This is great news but it also means I will have to slightly change the scope of this blog to not break any confidentiality with my new employer.
Anyway, I'm very excited :)

Friday, May 30, 2014

PhD WeekEnd

Gonna be a hard weekend, writing my PhD thesis and not publishing any development update.
Anyway, the end of the PhD is getting close ... just one final push :)

Monday, May 26, 2014

PLOCKS .. let's get it started

I've always wanted to create my own framework for node-based scripting and finally I came-up with the idea of PLOCKS!
Plocks stands for Python Blocks and is meant to be a common environment for artists to bring their creativity along different platform with the flexibility and ease of use of node-based creation.

It is developed in Python and PySide and allows to bring together various features from different software by using their Python APIs and various existing Python modules.
For example, imagine a script that queries Shotgun for a production asset, loads the relative Maya scene, adds a lighting environment, renders it with iRush, creates a slate with Nuke and saves it on the Database, back into Shotgun, sending an e-mail to clients. And now, imagine doing it all without opening any of the aforementioned software. Well, that's the expected reach of Plocks.

For developers, creating new nodes with the Plocks framework is very easy, inheriting the main plock class and simply reimplement the input/output plugs and a computation kernel.

Next videos will show an enhanced GUI, some Nuke and Maya Plocks examples and how to create custom Plocks.

PLOCKS 1st Demo from Marco Romeo on Vimeo.

Saturday, May 17, 2014

Nuke - UVSticker, UV based unwrapping

The UVSticker is a Nuke gizmo which integrates a Blink Script that unwraps an image following the UV texture coordinates of another image.
In this way it is possible to draw an image on top of one frame of a rendered animation and remap it through the whole sequence.
This gizmo may be used to add 2D animation on top of rendered 3D animations, it could also be used to create animated maps and masks attached to the surface of a rendered object.

Nuke UVSticker from Marco Romeo on Vimeo.

Nuke - Screen Space Ambien Occlusion for Deep Compositing

I started to play around with Nuke gizmos and Blink scripting.
Here is my first gizmo that computes screen space ambient occlusion based on depth information from two Deep images.
This gizmo is designed to enhance the merging of deep data by computing the interaction between intersecting deep pixels of two different images.


Nuke Screen Space Ambient Occlusion for Deep Compositing from Marco Romeo on Vimeo.

Sunday, May 4, 2014

Compression Deformer for Maya (C++ Plugin)

This plugin computes how much vertices' edges get compressed and then applies a belndshape target.
Creating a target modelled as a wrinkled version of the base mesh, it is possible to emulate the way wrinkles are produced when the skin compresses during deformation.



Compression Deformer from Marco Romeo on Vimeo.

Advanced Spline Solver (medulla)

Maya is great in allowing people to connect nodes together and build amazing rigs.
Even though, I always thought that an integrated solution, providing an IK/FK system with twisting and bending would be great. Thus I came up with the idea of this solver which will feature:

> spline IK (shown in this video)
> stretch and squash (shown in this video)
> twist (shown in this video)
> adjustable twist center (shown in this video)
> multipoint twist
> end joint snap
> implicit two-joints matching FK/IK
> adjustable "elbow" binding

I'll soon post more videos showing other features...


Advanced Spline Solver (Medulla) from Marco Romeo on Vimeo.

SuperShaper - asymmetric blendShape plugin for Maya (C++ and Python)

I've enhanced the main algorithm for the SuperShaper. Now it is implemented in C++ and runs smoothly.
I've also added color feedback to better identify the splits.
Quite a big step forward compared to the first version I developed for the Ender's Game film.
In the video I show the plugin working on a simple face and also with a simple rig applied.


SuperShaper from Marco Romeo on Vimeo.

UV Blend Shape - Topology-independent blendshape for Maya(C++ Plugin)

This plugin comes quite handy when you want to transfer deformations between meshes with different topologies.
Imagine transferring blendshape targets between different characters or between two different levels of detail or when some small tweaks have to be made on top of a mesh, altering its topology. In all of these cases you'll want to have a tool like this :)


UV Blend Shape from Marco Romeo on Vimeo.

A long year...

It has been a long year, working on my PhD thesis and on the IMPART research project.
Big data is becoming a big issue for post-production companies and it was a lot of fun to collaborate on such an amazing project with huge partners like Digital Domain, Filmlight and the University of Surrey.

Now it's time to upload the things I've been doing in my spare time and for the Ender's Game film.

...