Project 1 Milestone 1

Project Description

Topic:

An exploration of impossible 3D objects.

Inspiration:

I find the science behind visual perception very interesting. In the past, many artists and psychologists have found “impossible objects” that trick the brain into perceiving impossible 3D geometry from specific angles or 2D images. I’d like to use the medium of computer graphics, which relies on projecting 3D geometry to a 2D image, to explore the creation of impossible objects in 3D, while documenting some of the history of artists and psychologists who contributed to the creation of these objects, and providing insight into why the brain can perceive 2D images as impossible 3D objects.

Goal:

Create a website that shows the user impossible objects through 3D model viewers and documents the history of the objects.

Intended Audience:

People interested in learning about impossible objects, psychology, visual art, and/or geometry.

Wireframe:

Libraries/API’s Research:

I plan on using a 3D library for viewing models of impossible objects.

In my research I found many different 3D libraries. Here is a list of the main ones I looked into:

WebGL is a library that is the basis for many other web based 2D and 3D graphics libraries. I have used OpenGL in the past, and since WebGL is simailar to OpenGL from what I’ve seen from example code, I am deciding not to use it. This is because OpenGL is very good if the goal is efficiency, but for most user facing applications people have already expanded upon it to provide tools for making more user friendly applications. I don’t want to reinvent the wheel for camera controllers or model loading for example.

Three.js is built on WebGL and although it provides a model loader function, it still lacks some of the features I would like to have.

model-viewer is a library for displaying 3D models in html elements. It has many settings for changing user interaction and the view of the model. I did not find any mention of changing the projection to be orthogonal, which would make it easier to show some of the illusions, so This may not be the best option.

Babylon.js is a library for creating 3D games, web applications, etc. I found it has an extension called Viewer, which looks like it has more of the configuration options I want (viewer examples).

I plan on trying model-viewer first, and then moving to Three.js or Babylon.js if I have any issues.

Content/Sources needed

I plan on researching more into the topic of impossible objects, gestalt psychology, and art history of impossible shapes. I want to create simple models in Blender 3D of the types of objects I find through research.