Visual Thinking
With Computer Graphics

Sample Course Syllabus


This is a project base class where you will work on techniques for problem solving and inspection with computer graphics. Students will learn how to approach problems, design alternatives, and multiple ways to represent data. There will be two assigned projects and one independent final project. The independent project will involve both the selection of the problem as well as the actual approach to visualizing the data. The projects will be done in OpenInventor (or alternative package with instructor approval). Students will gain a working knowledge of OpenInventor.

Prerequisites
  • Introduction to programming with C++ and STL
  • Introduction to Algorithms and Data Structures
  • Basic exposure to programming with bash (or tcsh), GNU makefiles, and basic Unix development
  • Students may use either Linux or Mac OSX for class projects
Required Texts
  • Required
    • The Inventor Mentor by Josie Wernecke
    • Rapid Viz by Hanks & Belliston
  • Recommended
    • The Inventor Toolmaker by Josie Wernecke
    • experiences in visual thinking by Rovert McKim
    • Computer Graphics: Principles and Practice in C by Foley, van Dam, Feiner, and Hughes
Grading
  • 25% First Project
  • 25% Second Project
  • 50% Final Project
Project grades will be based on:
  • Project Notebook
  • Visual Presentation
  • Code - clean design and well documented

  • Innovativeness
  • Creativity
  • Esthetics
  • Engineering
  • Effort

  • Fluency - The sheer number of ideas explored, approaches tired, sketches generated.
  • Flexibility - The number of different ideas, approaches, concepts, etc.
  • Completeness - How thoroughly did you look at the problem
  • Drawing - the range of techniques used in developing your ideas, including thumbnails, rapid indication, and more detailed construction drawings
  • Design process - How well does the log book express the progression from start to finish
Projects

There are a wide range of possible visualization projects. Here are just a couple. The projects would change each year.
  1. Network traffic in a building given a tcpdump log from a couple routers
  2. Buoy, AUV, XBT, and Mooring data from Monterey Bay over a year at monthly intervals. Trying to see the change in water masses
  3. Final project idea proposed by each student
Schedule
  • Week 1
    • Course overview
    • Intro to the design process
    • Overview of different standards: OpenInventor 2.1, VMRL 1.0/97, X3D
    • Other file formats - Maya, Lightwave, 3D Studio Max, POVRAY, Blender
    • Where else will can you send models - Maya, Lightwave, 3D Studio Max, POVRAY, Blender
    • OpenInventor libraries and applications (SIM/Coin, SGI OpenInventor, TGS, FreeWRL, etc)
    • What is a scene graph

  • Design project #1 assigned

  • Week 2
    • How to keep a design log
    • Quick tutorial on sketching
    • OpenInventor tools: ivview, ivcat, gview, emacs iv mode
    • The Inventor File Format
    • Basic Geometry & Translation
  • Week 3
    • Development process: RCS, CVS, Make, grep, bash shell scripts
    • LineSets
    • Scale,Transform, Rotations, Separators, Groups
  • Week 4
    • More Design process
    • More basic Inventor geometry
    • Color spaces and materials
    • Transparency
    • Lights

  • Design project #1 DUE

  • Design project #2 assigned

  • Week 5
    • More design log techniques
    • Texture mapping
    • Text - 2D and 3D
    • Draggers
  • Week 6
    • Rendering & the camera
    • Engines & Switches
  • Week 7
    • Basic C++ OpenInventor program with SoQt
    • Anti-aliasing
    • C++ OI - Reference Counting
  • Design project #2 DUE
  • Final project assigned
  • Week 8
    • C++ OI - keyboard shortcuts
    • C++ OI - Qt popups, Color editors, etc
  • Week 9
    • C++ OI - SbVec, SoMFFloat, SoSFFloat, Fields
    • C++ OI - Sensors
    • C++ OI - Audio
  • Week 10
    • C++ OI - Timers, animations, pseudo movies
    • C++ OI - Engines
  • Final project checkup
  • Week 11
    • C++ OI - Searching the scene graph
    • C++ OI - Picking
  • Week 12
    • Off screen rendering and movie making
    • Scripting the whole process
  • Week 13
    • Volumetric Rendering - SIM Voleon
  • Week 14
    • Comparing OpenInventor to other systems - game systems, world toolkit, vtk, Straight OpenGL, Performer, etc
  • Final Project Presentations
© 2004 Kurt Schwehr