Dept. Computer Science
SUNY Stony Brook

CSE391 Special Topics:
Solid Modeling
Fall, 2007

Prof. George W. Hart

Prof. George W. Hart: Office: 1421 Computer Science, Phone: (631) 632-8959, Email: george@cs.sunysb.edu

Office hours, Fall 2007: Tuesday and Thursday, 2:15 - 3:30, and by appointment.

Class room and time: Room CS 2129, Tuesday and Thursday 12:50-2:10.

Class web page: http://www.cs.sunysb.edu/~cse391/

Announcements: Final project presentations will be during the scheduled final exam period for this course: Thursday, Dec 20, 11:00-1:30, in the usual classroom. Note the earlier time! You should have: (1) an .stl file for me; (2) a written report with a couple of pages describing what you made and how, including a screen shot and including your code as an appendix; and (3) visual material for a class presentation, e.g., a powerpoint file or Mathematica notebook.

To export an .stl file from Maya, download this MEL script and place it in your My Documents/Maya/6.0/scripts directory before you start Maya. Then in Maya, with the object selected, type mayaExportSTL<enter> in the white bar at the lower left. You will be prompted for a file name where the stl is saved.  (It will triangulate your object if it is not triangulated, so save first.)

Here is the convex hull algorithm from class Oct 30.

Here is the voxel-based fractal tree code from class Oct 25. I tweaked it a bit to have three sub-branches and use one of the built-in methods to provide a rotation matrix.

Here is the wiggly-sphere voxel and splat code from Oct 23. Here is my solution for the simple "marching cubes" voxel-to-boundary algorithm, and the Menger Sponge algorithm. Can you find the cross section through the Menger Sponge on a plane that is the orthogonal bisector of its long diagonal?


Material: The class will be project oriented, and directed in part by the directions students want to go. During the first week, we will choose some project goals. Look at student projects from 2004 and student projects from 2003 to get a sense of what you can design and build by rapid prototyping in this class. We will study algorithmic and software issues concerning procedural generation of objects. As to languages, we will discuss this in the first week to see what interests the class. So we might survey techniques in several software environments, such as Java, Maya's built-in scripting language, and/or Mathematica.  Each has certain advantages and disadvantages. We have a budget to make something physical, so we can physically construct a large permanent group project at the end of the semester, based on our class design, for example we can make something as big as the sculpture in the CS lobby. Another idea is that we can consider building our own rapid prototype machine.  Look, for example at this machine that builds from chocolate and this machine that builds from sugar. During the first week, we will see what directions have the most student enthusiasm.

Homeworks:

Material: This special topics course will cover aspects of procedural modeling and automated fabrication for complex three-dimensional objects, including: Survey of the state of the art in rapid prototyping (RP) technologies to understand their strengths and limitations. A tour/demo of the three RP machines on campus. Design problems requiring 3D thinking and visualization, including symmetry, fractal, statistical, and other regularities. Criteria for when procedural generation is the right tool to solve a problem. Representation and modeling techniques. Mathematical techniques for 3D manipulation. Available software tools. Current 3D file formats and concepts for future formats.

Students, individually or in teams, will complete software projects that produce 3D object description files which we will fabricate on a rapid prototyping machine. This includes the steps of:

  1. 3D conception and design,
  2. algorithm and data structure conception and design,
  3. implementation to create a computer model suitable for virtual reality display,
  4. generation of 3D object description file, and
  5. physical production on RP machine.
Prerequisites: AMS 210 (Linear Algebra) or its equivalent.

Text: There is no textbook which covers this material. Papers will be assigned for reading and discussed in class. Most will be easily available on web pages.

Class Format: This is a project/seminar course. An important part of the course (and grade) is participating in the class discussions.  You should come to all classes. We will discuss the student projects and the spatial and software design problems that they suggest.  Students will present their projects to each other both in the design phase and after completion. We will also do a few 3D design activities. Reading assignments and informal homeworks will be assigned weekly and discussed in class.

Projects: There will be two software projects required for this course. Each project requires you to create, demo, document, and present to the class working software that produces a family of novel 3D objects. An .STL file generated by your program will be used to drive the RP machine to create a new unique physical object (that you get to keep). The .STL file is due two weeks before your final write-up is due, so we have time to schedule it on the RP machine and you can discuss it and include a photo of it in your paper. The details of each project, their due dates, lab space, and other details will be disucssed in class. You may use C/C++ and OpenGL, or Java and Java3D, or other languages and environments as you prefer.

Rapid Prototyping Resources: We have one rapid prototyping machine in the Computer Science department, plus Stony Brook University has a Stratasys 3000 and a DTM Sinterstation 2500 Plus. The Stratasys 3000 is an FDM machine which creates in ABS plastic and also produces a water soluble support structure. The DTM 2500Plus is an SLS machine that uses a self-supporting powder. (The DTM company is now part of 3D Systems.) 

Grading: Project 1, due at mid-semester (30%); Project 2, due at end of semester (50%); Class participation (20%).

Background: For general information about RP, see the Utah RP site or the Castle Island RP site. For examples of objects I have designed by procedural generation and then fabricated by rapid prototyping, follow these links. But your projects may be very different in style:


Disabilities: If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, you may contact the staff in the Disabled Student Services office (DSS) in the ECC building, or call them at 632-6748v/TDD. DSS will review your concerns and determine with you what accommodations are necessary and appropriate. All information and documentation of disability are confidential.