Tuesday, 1 July 2014

A Homemade Spectroscope!

Recently I have been working quite extensively on Colour Science related stuff, my API is coming along although it is not yet ready for prime time, I hope sometime this summer.

While surfing for informations regarding Spectrophotometers, I have seen quite a few interesting websites like Spectral Workbench and a few others describing how to build a spectroscope from a CD and a screwdriver.

I found Simon Quellen Field's website and his spectrograph tutorial and decided to do the same! While very similar to Simon's spectrograph, I incorporated some build variations that's why I will describe the steps I followed.

First here is a picture of the spectroscope I built yesterday (Essentially a PVC pipe :)):

You will need the following material list, I have sourced pretty much everything from a french hardware store:
  1. 1x 1m and 50mm diameter sewage disposal PVC tube (I would have preferred black pipes but they didn't have any and it's mainly a stlye issue.
  2. 1x 22.5 degree 50mm diameter male female PVC angled pipe coupling
  3. 2x 50mm diameter female female connecting sleeves
  4. 3x 32-52mm metal collars (I didn't wanted to glue anything)
  5. 1x Public Lab's acetate collimation slit
  6. 1x Holographic diffraction grating film sheet
  7. 1x 50x65cm 120gr sheet of black Canson paper
  8. 1x Super glue tube
Here are the tools I used:
  1. 1x Ruler
  2. 1x Metal cutting saw
  3. 1x Cutter
  4. 1x Circle cutter
  5. 1x Mechanical pencil

The goal is to create a 50cm tube with the acetate collimation slit at one end and the holographic diffraction grating film at the opposite end. They will be respectively maintained by a connecting sleeve. The black Canson paper sheet will be rolled into the tube to limit internal reflections. The angled pipe coupling is where the observer will see the spectrum right after the holographic diffraction grating film.

Step 1

Start by cutting the 1m sewage disposal PVC tube at the 50cm length and clean the cut with the cutter.

Step 2

Then cut 2x 49mm diameter circles: One into the sheet of black Canson paper and another one into the holographic diffraction grating film with the circle cutter (I actually ended up cutting more than that because of trial and error). You need to ensure that the circles diameter is a bit less than the PVC tube diameter, otherwise they will bend and distort when you sandwich them between the connecting sleeves and the PVC tube.

Step 3

Trim a hole for the acetate collimation slit into the black Canson paper circle, with enough border so that you can glue the slit onto it.

Step 4

Insert the acetate collimation slit into one of the connecting sleeves and then insert the PVC tube into the connecting sleeve so that the acetate collimation slit is sandwiched between the two. Ensure the connecting sleeve and the PVC tube are hold together by using a metallic collar. I oriented the collar screw so that it was roughly inline with the acetate collimation slit direction, it will be a good indicator for later usage.

Step 5

Cut a ± 50x20cm band of the black Canson paper and roll it inside the tube, be careful at which side of the paper is the less reflective and that it perfectly fit inside the tube without overreaching the open end because you will have to put the holographic diffraction grating film circle there.

Step 6

Same than Step 4 but with the holographic diffraction grating film circle this time. I suggest that you look through the film to determine the horizontal axis. Rotate it in front of one of your eyes until the diffraction spectrums generated are horizontal, then when you sandwich it against the PVC tube, ensure that the spectrums horizontal direction is perpendicular to the acetate collimation slit direction.

 My film was a bit dirty and filled with finger prints, I cleaned it with some dish-washing liquid (Not sure if it affects the optical quality, we are not doing high precision work anyway).

Step 7

Finally, put the PVC angled pipe coupling at the holographic diffraction grating film end, ensure everything is tight with a third metallic collar. You can rotate the connecting sleeve until the generated spectrum doesn't exhibit any shearing.

Congratulations! You are done :)

The first thing I "measured" was the Sun spectrum although it was evening and I didn't managed to get a noise free image (I will reshoot it later when he decides to appear). Even with low condition the Fraunhofer lines are quite visible as you can see on the following image:

There will be certainly one or a few follow up posts so stay tuned!

Sunday, 6 April 2014

Colour - Maya Implementation


Got a break today from sIBL_GUI duties and spent some time continuing to work on Colour, which is my soon to be open sourced Colour 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: http://www.photo-mark.com/notes/2013/mar/13/color-theory-blender/

For now I'm just plotting the colourspaces 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 colourspaces volumes.

Here is sRGB with ProPhoto RGB in wireframe:

And now ACES RGB, the colourspace 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 ( http://dougkerr.net/Pumpkin/articles/CIE_XYZ.pdf ).

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!