|Home | Travaux STAF | STAF14 - Report for exercise 4 (VRML)||STAF-E|
This virtual world is a laboratory for the DNA structure. I have to admit that it took me almost a month to decide about the theme to implement with VRML. I came across with many ideas none of them though seemed to be good enough.
In order to create a homepage, I thought of making a greek island that I love and miss so much, but my expectations seemed so unreal. I am null in drawing (unfortunately!) and a beauty like that is difficult to be presented (fortunately :).
Then, I started to think more seriously and came up with ideas like creating a museum...etc but all of them seemed to end in a gathering of vrml objects found on the web. This wasn't tempting and neither challenging. I wanted something to make it myself and worth being made in VRML that means 3D...
And then I came up with THE idea :) Chemistry! Or at
least something like that. One thing led to another and there is my
first vrml the DNA double helix. When I finished it, it seemed very lonely
so I decided to create a place to put it into and there was my virtual
Scenario and Realisation
Introduction page: The first page is a "welcome" page that gives some basic information about the DNA and it's structure and serves as a motivation to enter the vrml world.
It is exactly there, where I put a blinking warning for the plug-in needed to proceed so as to prevent the user from surprises. From this page with the aid of a button called "Enter the laboratory" the user can enter to my 3D laboratory or if he's in a hurry just study the Double Helix ...
So, I decided to start from the main part that forms the whole helix,
which I call it "HalfStep" and is presented on the image on the left.
It is formed of a nucleotide base (yellow cylinder), the part of
the backbone (green cylinder) and the bond that keeps them
together (red sphere). I created 4 of these "HalfSteps" each one for a
nucleotide represented with a different color:
|Then, I created 4 pairs of the above by putting together a "HalfStep" and a transformed copy of another "HalfStep" in order to create a "Step" (all these because Adenine always makes bond with Thymine and Guanine always with Cytosine). One of these pairs (Adenine - Thymine) is shown on the image on the left.|
By putting together 10 "Steps" with a translation on the Y axis and a
rotation around Y, I created a period of the Double Helix that is shown
on the image on the left. By putting 4 periods (with different combinations
of the nucleotides each) together with a translation, I ended in having a
part of the DNA helix.|
So, I inlined the whole result inside my laboratory and put it on a base where it rotates using an OrientationInterpolator.
And now, I think it is time for some mathematics to support all of the above.
(I also created small "wrl" to show them together with PaintShoPro).
For the scale I got the information:
|Like it is shown on the image on the left, the rotation around the axis Y has to be of 36°. That means that each step has to be rotated 36° more than the previous step. The angle is 36°, in order to have 10 steps in one full rotation of 360°.|
|Here, it is showed the rotation around the X axis that has to be of -61°. and on the Y axis is 90+18°. (I can supply more details on the calculations on demand :)|
Here I've got to mention that the "wrl" for each nucleotide has been created with an on-line application I found on the web, that creates a "wrl" file for a compound given in the "smile" code (the link is given on the references part of this report). I found this really interesting even though it has a few bugs, fortunately for me only in a minor detail.
The "FuturoScreen" is controlled by the console that has 4 buttons (spheres) for the 4 nucleotides with the according color and an extra grey button for closing the "Futuroscreen" (Off button). Next to each button there is it's name.
For esthetic reasons I used an image (also "homemade") as a texture on the base of the FuturoScreen.
Technical details - problems
My first problem starting to create a vrml file was that I had to think always in 3D representation while having a 2D view. It took me quite some time to understand the orientation of the axes system and that each object is being drawed to all directions from it's center of gravity. That's why I decided to create a small wrl that draws the axes and I included it in my first files to help me.
Sometimes, I was really lost by putting children inside children and so on
trying to understand how the syntax should be but in general I didn't
have any specific problems with VRML that worth to be mentioned.
References - Bibliography - Sites
Last modified 21/04/99
|Back to Travaux page|