I am going to tell you about a computer program to visualize 3D objects. Certainly nowadays there are many similar programs and computer games that draw 3D objects detailed and it allows you to feel the presence inside of the virtual world. But I would like to consider a more detailed customization. I want to suggest my own solution that is capable of visualizing whatever you want.
The idea is to design a program that simulates different worlds. Each world contains objects that are evolving during the time. Unless there is no observer there is also no need to draw the objects, but they should exist and being evolved according to the physical rules of the world. If an observer appears the objects should be shown making the feeling of presence. It is convenient to divide the evolving and the showing processes with respect to ideological and technical points of view. In general, it is not necessary to keep these two processes on the same computer: for example, a powerful server can calculate the evolution of the objects including millions of them, and an ordinary computer requests the server for the objects around the observer to visualize them.
At the moment of writing this article I have already designed a prototype. A screenshot of my test world is at the beginning. The prototype consists of client and server parts. The server part allows to run a number of worlds. Each world is described as a class in the programming language Python. I am trying to make the definition of a new world as easy and quick as possible. Running the client part you can choose a world to enter. Drawing is done with OpenGL. At the moment, all of this works under Linux only and it needs optimization. There are many parts that require optimization including drawing, the channel between the client and the server.
One day I thought which worlds would be interesting and beautiful to create. That's what I have thought:
1. 3D explorer. Imagine there're many named doors and things around you. You may walk around. If you go into a door you come into another similar room containing other doors and things. Each door suits a folder in your computer, and each thing suits a file. Being in this world you are travelling inside of the file system of your computer. Maybe it's a good idea to make the visual size of each door or object depending on the size in bytes of corresponding folder or file.
2. Ecosystem. With the help of server it's possible to simulate an ecosystem of animals and plants, for example, on an island. The plants have their life cycle: reproduction, growing, withering. The animals eat the plans and each other. Everything is in the dynamical equilibrium. Using this simulation it's possible to research the real systems. And the big advantage is the opportunity to visualize this world, to travel to there instead of watching cold numbers, parameters and charts as scientists do.
3. The world of the theory of relativity. Haven't you ever thought about the way our world would look like if the speed of light were too little, saying, like the speed of sound (330 meters per second)? According to physics, the world can no longer be described with Newton's equations, we should use the Einstein's special theory of relativity instead. In this world the things change their form in move, the time goes differently in different places, for different things. Scientists from MIT university have designed a computer game named "A slower speed of light" where they implemented the theory of relativity and the small value of the speed of light. I suppose it's not complicated to create a similar world within my concept with the help of the necessary equations. The advantage is the customization of chosen objects. For example, it's possible to add many planets, a huge clock to make the observer see the known twin paradox, even fighting against a virtual enemy using laser that shoots having the little speed of light too, but according to the theory of relativity.
I am sure, it's possible to come up with many other ideas of worlds that are interesting and helpful. Thank you for your attention!