Home | Travaux STAF | STAF14 - Report for exercise 4 (VRML) STAF-E


for DNA structure - Bio-laboratory


Scenario & Realisation
Technical details-problems
References - Bibliography

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 laboratory ...


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 ...

Virtual Bio-laboratory:

Immediately after pressing this button the "wrl" is being loaded. The entry viewpoint is a room (the so-called Bio-laboratory :) that has: I'm going to use the following viewpoints in order to describe each one of the above in more details.

DNA viewpoint:

This was my first and most interesting part dealing with VRML. First, as a devoted mathematician :) I had to decide about the scale and calculate all the angles for the rotations that had to be done. That's why, I searched over the Web and got all the details I was needed in order to start designing. In order to become more explicit I will present the realisation first and in the end I will give more details about the calculations involved, even though this violates the natural way of my realisation.

Half step of 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:
  • Adenine = yellow
  • Thymine = orange
  • Guanine = blue
  • Cytosine = magenta

Step of helix 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.

A period of helix (10 steps) 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:

so I respected the analogy.

Rotation around axis Y 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°.

Rotation around axis x 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 :)

Console and FuturoScreen viewpoint:

This was the most impressive part. Inspired from science fiction films, I created the "FuturoScreen" which is a transparent cylinder, giving the impression of light, inside of which it is presented the chemical structure of a nucleotide in rotation.

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.

Blackboard viewpoint:

It is simply a gif that I created with PaintShoPro and is the texture of the background wall and serves as the part that shows the title and the author :) of this virtual world and some designing details for the DNA helix.

Left wall or Right wall viewpoints:

Also gif images, that are textures for the side walls and serve not only esthetically but are also relevant with the subject and give some extra information or a different form of representation for DNA.

Exit viewpoint:

A door that exits the laboratory by clicking on the handle and goes back to the introduction page.


Technical details - problems


Things that deserve to be mentioned specificaly:


My real problem was that I have a 486 computer at home (a nightmare for creating VRML) and ... the worst of all a lightning had just destroyed my modem!!! So, this period started really nice :) But these are my personal 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


©Vivian Synteta
Last modified 21/04/99
Back to Travaux page