TITLE: engineer's youth
NAME: Duverger Patrick
COUNTRY: France
EMAIL: patrick.duverger@cnet.francetelecom.fr
WEBPAGE: http://rezo.rez-gif.supelec.fr/home_pages/kfra/home.html
TOPIC: Great Engineering Achievements
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
JPGFILE: 25_04.jpg
ZIPFILE: 25_04.zip
RENDERER USED: 
    povray 3

TOOLS USED: 
    povlab 4.0

RENDER TIME: 
    26 h 30 min

HARDWARE USED: 
    pentium 200 with 64 Mg of RAM


IMAGE DESCRIPTION: 


I wanted to show how litle ideas can become great realizations.
That scene shows a book with a lot of pictures of some engineers
great inventions which contrasts with three modest objects
gathered around the book. But the lego construction, the
mechanic kit and the unknown sculpture are not as simple as
they seem to be at the first glance. These three objects are
three impossible objects. The lego and the mechanic kit are
easy, but it is a litle more difficult to see why the
wood carving is impossible. Try to cut an orange with a plane
and you'll obtain au disc, not a square ! So it would be
more difficult to realize such objects in reality than the
inventions shown in the book.
And all these things are put on a mathematical tiling which
has the property of beeing infinitely aperiodic. It means
that whatever pattern of tiles you pick up from the tiling,
you won't find this pattern more than 2 times in the same
direction. There is no geometrical period in this tiling.
This tiling was found by the great mathematician : Penrose.


DESCRIPTION OF HOW THIS IMAGE WAS CREATED: 


I used lots of Bezier patch to make the pages of the book.
Each Bezier patch is a rectangle with 2 opposite sides
shaped by a 2D sinusoidal curve.

The impossible objects are made within a non orthographic
projection. Calculations were easier with orthographic
projection because all projection vectors were parallel.
Now, with a normal projection, all the projection vectors
go to the point of the camera position. So, to put parts
of the object between the camera and the scene in order to
give the illusion that there are elements which are in the
front rather than in the back where they should be if it was
a reel object, it needs more complex calculations. The
projection is the big difference with my last submission
'25-01'. My new way to calculate impossible objects is more
powerful.

Some elements, like the screwdriver, were generated with
povlab, a very useful pov modeler made by a fellow country
man.

The Penrose's tiling is made in pure POV ! The POV
description of the tiling is not made with constant values,
it is generated in POV by POV itself ! No preprocessor,
the whole algorithm is made in POV ! I used the property of
one include file to include itself an infinite number of
times. For me an include file is like a procedure, but
POV doesn't manage any context (like the state of the
variables before a procedure call or like the value of the
procedure arguments), so you have to do it yourself. And
when a procedure must call itself within a recursive
algorithm, it should be useful to be able to use arrays
in order to save the context a lot of times, but arrays
are not possible in POV, that's why it begins to be really
difficult. The method I found was to trace the operations
I wanted to do on the variables used in the recursive
procedure in order to inverse operations to restitue at
the end of the procedure the values these variables had
before the call of the procedure (which is made in POV by
the 'include' directive). You have to do that because you
cannot save the values of the variables when a procedure
calls itself an unknown number of time (the number of
recursions is set by a variable). And this method works !
I tried to use the same method in my last submission
'25-02' in order to generate the Hilbert curve, but I
didn't succeed to do it completely (the number of
recursions was limited). Now I can make simple recursive
algorithms just using POV. So, without changing the main
algorithm, it is very easy to do in POV all the aperiodic
tilings ever found.

