Adam Kalisz helped create these two educational animations about the Henlein-Watch, for exhibition at GNM, in Nuremberg, Germany.
Last year a friend of mine and I have created two educational movies of the Henlein-Watch. It was made by the precision instrument maker Peter Henlein, in Nuremberg, Germany. Recently there were some mysteries whether it really is the oldest pocket watch or not, genuine article or a fake?! This was examined by using modern technology (CT-Scan, 3D Visualisation).
The exhibition is open from December 4, 2014 – April 12, 2015, it presents some of the oldest surviving timepieces and aims to explain epoch-making improvements to that technology.
To help with achieving this, we have created those two animations in Blender and rendered them in Cycles.
Film 1: How does the Henlein-Watch work?
Film 2: The critical components of the Henlein-Watch
We are happy to know, that an Italian museum - the Poldi Pezzoli in Milano, Italy - will also use one of the animations during the opening of their new clock room refurbishment in April 7-8th 2015.
Of course we have some Blender-related background info also for you (trying to be as detailed as possible here):
At first all the necessary models have been created. Blender is really great in that regard, it makes modelling a fun task. For reference we mainly used drawings of the watch, which haven't been very accurate due to their nature. Later the real watch was dissasembled carefully and we were able to use real photographic reference for every detailed component. We had luck that we didn't have to reassemble the watch from those almost 100 pieces. Well.... ...but of course we had to reconstruct it in Blender, dang! :) In this regard, it was quite helpful that the watch was already scanned as an X-ray computed tomography (CT) model. The .ply file was quite huge (varying from 1.2 to 5.5 GB, depending on the resolution). We managed to get the smallest model into Blender and by activating the Vertex Buffer Object (VBO) option in the user preferences we were able to clean the model up and reduce its memory consumption.
I am interested in how Blenders performance can be improved in the future, because I believe scans, point clouds and similar data structures will become even more important to work with eventually.
After building the model we faced a problem I have never expected. For the animation of the watch mechanisms, I decided to utilize Python Drivers. It only took me half a day or so to rig the mechanical parts according to my understanding. And the result was amazing. In the end I only had to animate one object and all other objects automatically moved in relation to it. The watch was alive! Even a later requirement to bend objects periodically was easy. With all that happiness, I was shocked when I sent the .blend file to our renderfarm (which was developed prior to this project, BN kindly reported about it back then: http://www.blendernation.com/2014/11/04/open-source-renderfarm-gsorf/). After looking through those renderings, there was a disturbing wiggle of some of the parts, namely those driven by Python, during the whole animation. The update was simply too late. I didn't file a bug report yet, because I wanted to examine that phenomenon with more detail, before bothering our amazing Blender developers. I mean, it would make sense that it is a user-related mistake, e.g. making about 10 objects dependend on each other like a chain reaction?! And maybe this is also something the new dependency graph will solve?! Anyway, this resulted in dividing the 6000 or 7400 Frames, respectively, into managable chunks (with the first few frames overlapping) for a single computer and starting the rendering from the command line. In my view it is possible to find workarounds in Blender for almost every situation.
Still there are things I wasn't able to solve until today (and experienced Blender users are able to spot them in the animation as well). For example I couldn't manage to wind up the metallic chain to the fusee. In the beginning I tried to drive the position of the chain (using array + spline modifiers) with Python. It worked, but didn't look realistic, due to the wrong direction of the chain winding up. Of course I also tried Kent Trammels Phone Cord Simulation Approach, but unfortunately the chain slipped down as soon as the simulation started. (Fun fact: This is also one of the reasons why the Henlein-Watch probably never really worked for real). Now I could have dismissed the comfort of the Python Drivers and animate the chain manually, but fortunately our client agreed on hiding that problematic part in the animation by fading between the different chain states.
The next problem with the animation is, that the clock movement is continous, not stagnant, which would be more realistic. With python drivers the escapement would randomly jump to its final rotation. This could probably be solved by simulating the gears as rigid bodies. With the Python Drivers already mostly working as expected, I didn't want to jeopardise the animation by mixing and experimenting with a new animation approach. I understand that those are crucial details, still I believe they don't hurt the understanding of how the watch internally could have worked, if ever put into use.
To conclude, there are also some problems I could have solved by writing my own little addon for this project. For instance, animating the transparency of the cycles material of almost every object to fade in and out was prone to errors, because the final look needs quite a lot of rendering time, especially, if they overlap or intersect each other. Unfortunately transparency is not shown in realtime. I noticed a few spots where accidentally three keyframes have been scaled into each other without being automatically merged, a very hard to detect user mistake.
Those have been some of the main points I faced during production. I am not mentioning them to badmouth Blender. I love everything Blender is (e.g. the fantastic community) and Blender is capable of. And it is great, that we all have the opportunity to use Blender both as our hobby and also as our profession.
I respect everyone who was interested to read my post. Thank you!
Wish you all the best, regards Adam.