Sunday, 6 April 2014

Color - Maya Implementation


Got a break today from sIBL_GUI duties and spent some time continuing to work on Color, which is my soon to be open sourced Color Science Python Toolkit.

I wanted to do the following implementation in Matplotlib like I did for the various 2D plots of the toolkit until I came across this awesome post by Mark Meyer:

For now I'm just plotting the colorspaces in CIE Lab, but I'm planning to do also at the very least CIE xyY.

The good thing with plotting that in Maya is that you can do pretty renders of the colorspaces volumes.

Here is sRGB with ProPhoto RGB in wireframe:

And now ACES RGB, the colorspace to rule them all, the tiny solid guy in the center is sRGB:

Stay tuned!


Friday, 4 April 2014

sIBL_GUI 4.0.8 Hot!


Like I was saying in the multiple threads I have just updated I'm both pleased and ashamed to say that sIBL_GUI 4.0.8 is out!

Pleased because I finally got time to get back on the project and ashamed because it took me so long and as result I left a lot of people with very annoying bugs.

This build is a maintenance release ironing out most of issues reported through Crittercism.

It also officially includes Jed Frechette's Blender_Cycles_Standard template.

More details about the release at HDRLabs.



Tuesday, 4 February 2014

The CamelCase of Mister __Underscore!

This one is for the nerds!

I have been a big UpperCamelCase or lowerCamelCase user since I have started writing code:
def myVeryCoolFunctionName:
In our demoscene group we were using CamelCase, Maya Mel or commands are all in lowerCamelCase, all studios I have worked in were using a variant of CamelCase. I always preferred that naming convention to the Underscore one:
def my_very_cool_function_name:
It's maybe because my brain has the habit of processing it but I find easier to read CamelCase than Underscore naming convention, there is no visual break, just a continuous flow of words dancing front of me!

Now after so many years programming I just came across a very annoying issue, it's actually not the first time but usually I lived with it. Let's say that you have a definition that converts some data to sRGB color space, you would write it this way in lowerCamelCase:
def convertDataToSrgb:
If you want to respect the naming convention you have to change the case of sRGB to Srgb. In those cases I often write the function name like that:
def convertDataTosRGB:
def convertDataToSRGB:
Neither version is sexy, although it's understandable without much problems. Now these days I'm working on a color science Python API and I faced some situations where using CamelCase can be even more confusing than the sRGB example above and even change the meaning of the definition.
I'm doing some basic colorspaces conversion like CIE XYZ to CIE xyY, etc... The problem is that in color science little y is very different from big Y ( ).

So when you write something like that:
def xyzToXyy:
Which Y are you talking about? A person with knowledge in the domain would guess that you want to convert from CIE XYZ to CIE xyY colorspace.

You could write it this way to help but it's not visually elegant:
def XYZToxyY:
Underscore naming convention really shine here and makes this beautifully unambiguous and clear:
def XYZ_to_xyY:
If you have any thoughts on this, I would be keen on hearing them of course!



Monday, 27 January 2014


It has been a while without any updates: I have been busy working on a business project that is kind of stalled right now, so I'm trying to get back on some personal work.

Everybody seem to be doing slick and sharp robots, thought I would do a fatty organic hippopotamus, I don't have any animals in my Portfolio, it was a good exercise :)


Thursday, 2 May 2013

Gamma Prime + Oculus Rift!

I'm working on Beta Prime giving him a body, although his name has changed to Gamma because of the storyline evolution.

Now for the real fun: An early wip in the UDK with the Oculus Rift, really something fantastic and unique to experience! I strongly suggest re-watching the video through the HMD though :)

 And some ZBrush screenshots, still rough but gives a direction on where I'm heading!


Sunday, 28 April 2013

360Precision: An Outstanding Experience!

TL;DR: 360Precision is awesome!

Back in time, 11 or 12 years ago, I came across Paul Debevec's research work and got really impressed by some gems like Fiat Lux. I started shooting a few HDRI probes to apply that knowledge on my own work but the only gear I had at that time was a Nikon Coolpix 4500 and a gigantic garden gazing orb ball.

Now today HDRI is mainstream, popular thanks to website and books like the one from my friend Christian Bloch at HDRLabs or photographers like Bob Groothuis and Thomas Suurland. It's also the main data component of Image Based Lighting technique we use everyday in Computer Graphics.

I have used Bob's Dutch Skies quite extensively in pretty much all my recent projects and will continue to do so but in some instances I also want to have control over the precise location and most importantly the various plates I will use for integration later in my work and more.

I started to search around to establish a list of the gear I would need, visiting various forums, reading reviews, comparing the prices of various vendors like Amazon, B&H, Calumet, etc... After a few days I reduced the number of candidates items and finalised the list although I had some options for the tripod. I knew my panoramic head would be a 360Precision Absolute MK2 which are probably some of the best ( If not the best ) panoramic heads money can buy.

I contacted 360Precision because I wanted to know what was the head availability. I sent a mail a Saturday afternoon without expecting a reply before the next Monday but actually received one the same evening from Matthew Rogers ( The neat guy behind 360Precision ). We continued the discussion on the Live Chat on their website which is great because you really have the feeling somebody is actually taking care of your case. I wanted to know if the levelling base I had chosen would work with his head, it was the case and Matthew suggested to source it for me.

That's where the real magic began: We continued to discuss and instead of myself buying the gear left and right from various vendors with expensive delivery costs and various delays I bought everything directly from Matthew who has a big network of suppliers with low prices. It was win / win for both of us, it helped him running his business and the costs were a lot lower for me than if I had to source everything myself, less stuff to track, less stress, simply brilliant.

Since I wanted to have the gear for holidays, I contacted him back to know how things were, telling him I would be keen on getting the gear before being off. Instead of sending the gear and as he was coming to London, he proposed to bring it directly!

How many vendors do you know are willing to do that? It for sure was the first time for me :)

We met in a coffee in Soho, next to my work place and talked a bit around a cappuccino about our jobs, his business and the state of our respective industries. At some point I had to go back to my pixel bending duties, and I did so with a big box filled with all my new stuff :)

Only missing item was the panoramic head, but Matthew had a remaining trick: He sent me the next day his own personal Adjuste MK2 that I can keep until my Absolute is built!

The quality is phenomenal, engineered to last, not surprising it's covered with lifetime warranty, it likely will be the same when the kids of my kids decide to play with it in a retro souvenir of what we call modern photography :)

This has definitely been the most successful buying experience I have ever had and I just cannot stop praising Matthew and 360Precision professionalism.

That's all folks!

Sunday, 21 April 2013

sIBL_GUI 4.0.7: Large Panoramic Thumbnails!


sIBL_GUI 4.0.7 is just fresh out! This release focuses on bringing a neat new feature: Larges Panoramic Thumbnails!

Those are generated once from the background images upon startup.

Here is a video to showcase the stuff:

And also some images:

More release details are available in HDRLabs development thread.

Happy Rendering!