news button links to the news page
about button links to the about page
people button links to the people page
paper button links to the papers page
random button links to the random page about random things I am doing outside of work
links button links to the links page that host the links to interesting website I have visited

progrss bars for project status
Weeks  Project
             status
 
    You have probably been wondering[if you have read the first page on my site] what this ESOLID is all about, what does it do, and may be how am I going to extend it. Well we are on the same page. The information I am going to provide is the best to my knowledge as of now and is subject to change once I fully and deeply comprehend the key concepts involved in this project.

    1. Prerequisites
     In this section, I would define and explain terms or concepts that are important to my work. However, if you are already familiar with these concepts, you can skip this section.
Solid: is a [3D]geometric object such a sphere, a cylinder or a cone.
Boolean operation: refers to an operation that can be performed on at least two solids. The result is a new solid. Examples of boolean operations are difference, union, intersection[The figure below illustrate this]. One might notice that these operations are equivalent to the ones that can be performed on a set. Thus, one way to clarify things is to look at a solid  as a set of points or a set of curves, or a set of surfaces.

boolean operation on a solid

Boudary Evaluation: involves computing the boundaries of the result of a boolean operation[among solids]. In the  figure above, I have highlighted in red, the result's boundaries in red.
Exact computation: is a technique or set of techniques used to reduce if not eliminate numerical errors(ie: round-off, truncation) during computation. An example would be representing a rational number as a couple[{(x, y) where x and y are both integers and y is not zero}] instead of one single floating point number that will eventually be rounded or truncated by the computer. For instance, 1/3 would be (1, 3) instead of 0.33333.
ESOLID: is a system for boundary evaluation using exact computation or a system for Exact Boundary Evaluation. Pr Keyser has been one of the developer.

     2. Where I come in.
     ESOLID is a system that takes two solids and an operation as inputs. Then it produces a new solid which is the result of the boolean operation performed on those solids. However, there is a substancial inconsistency between the input and  output format. ESOLID cannot read an output previousy written. Moreover, the current viewer is too simple to outline very important details about the output geometry. Thus, this summer, the main plan is to implement a load/save module which would allow for more complex 3D models to be produced easily. If time permits, I will also make ESOLID more user friendly by implementing a routine to automate multiple boolean operations at once. Finally I would add a routine to aid the viewer display more detailed information about a geometry.

     3. Roadmap
     Here is a very abstract outline that I will follow to accomplish the main goal. I will not work on these task in a chronological order since some of them could be done concurrently. Also, more details would be added to this later when things become clearly defined and set.
  • Read Papers on  theory
  • Get ESOLID, compile it and run it
  • Learn OpenGL
  • Understand the I/O system of ESOLID
  • Be able to generate sample data for ESOLID
  • Define a uniform file format for input and output 
  • Develop the load/save module using the defined file format
  • Create a method to automatically perform multiple boolean operations at once.
  • Extend the viewer by making it display more detailed information about a geometry
  • Write a user documentation for all the added features.

If you have more questions or something is unclear, email me at gsd4x@virginia.edu