– PROJECT GUIDELINE –
The Virtual Environment project is to develop your own imaginary 3D space that delivers fictional narratives and unconventional experiences for users. The project is a form of Generative Art that focuses on creating 3D environments with creatures and objects.
What is your own imaginary space like? The Universe, galaxy, black hole, Mars (or other planet), Quantum realm, the Antarctic, volcano mountain, submerged city, forest, the other world (the world of the dead), the Heaven or Hell, gummy bear land, hamburger world, future Shanghai, museum, gallery, school, or a room? What elements, objects, and/or creatures are in the environment? And what happens in the world?
Students are encouraged to be as experimental as possible with what they have learned in this course. Demonstrate a coherent understanding of technical proficiency with three.js and Object-Oriented Programming. Use this assignment as a preparation for the final project, My Virtual World – you will be adding Virtual Self and Virtual Other to this virtual environment project (optional).
– MY SKETCH –
https://glitch.com/edit/#!/project2-structure
– INSPIRATION–
- “Fata Morgana”
- “Atlantis” (visualizations from Pinterest)
- Ruins
- Reflection (Prof. Moon’s in-class demonstration)
- …
See the full presentation of the project idea with references here.
– DEVELOPMENT –
-
Overall Structure
In general, I intend to construct an underwater world with ruins and reflection effects. This project serves as a blueprint for final project with general structure of the space and includes some applicable elements. The main body of building structures is set at the lower part of the world, while the above space leaves for further reflection effect. A plane-like structure with special textures is considered to serve as a separation in the middle.
-
Basic Geometries & Movement
At first, I constructed basic boxes representing the buildings of the ruins with for() Loops. Each single box is of certain size and of certain distance from each other utilizing random() function and pre-set ranges, and they are set to further vibrate up and down.
-
Single Building Development using Grouping
Thanks to Prof. Moon’s help, I was able to expand each single box into groups with Three.Group() and define some random generative functions. In a straightforward way, functions generating various shapes of buildings could be called by randomly assigning values, and thus contributing to random “underwater ruins” every time.
-
Lighting
– AmbientLight: light up each single structure to change the general visual effects, without outside projection/shadow.
– SpotLight: one is set on the above-middle to light up the general body of ruins on the bottom in order to generate shadow on each single building. Another several are introduced as shining creatures swinging back and forth around the ruins, contributing to further light-and-shadow variations.
-
Reflection
So far two planes of reflection are constructed on the above part of the space, reflecting the entire ruins from two different directions. One is fluctuating itself, thus further manipulates the reflection. In future development, I might think of having a giant sphere outside the ruins, therefore making it a crystal ball-like effect and reflecting everything inside the sphere from all directions.
– NEXT STEP –
-
Further Building Development
Other than towering up the boxes to generate complex building structures, I plan to further manipulate with meshes of other shapes and thus generate more varied building structures. The differences between each building could also be adjusted according to the building sizes.
-
World Construction
As mentioned above, I’d like to turn the world into a crystal ball-like overview. Hopefully a sense of stratification could be developed for each part, thus better contributing a whole world of “Atlantis”. Small particles and creatures would be further generated to serve this sense of whole-world. Details such as lighting and shadow will also make a difference.
-
Texture
So far the blueprint of “Atlantis” hasn’t applied many modifications to each single structure, especially the texture. The general sphere would possibly apply crystal ball-like materials for the outer side, while reflective materials for the inner side. A plane of special texture would also be introduced for the purpose of separation around the middle of the space. For each single building, I’m now considering ancient-column like textures to generate the sense of “ruins”.
-
Further Interaction
While remaining undecided, more interactions would be applied to the space for the final demonstration.
Leave a Reply