Jordan M. Dauble
jdauble@gmail.com
Personal:

  Welcome to my website. I am Software Engineer at Cubic Simulation Systems in Orlando, FL. I graduated from Purdue University in May 2006, majoring in Computer Science with a minor in Economics. This website showcases some of the projects I have completed for school, research, or just for fun. My career interests include 3D Computer Graphics and Virtual Reality.



Skills:
  Languages: C, C++, C#, Java, Lua, SQL, GLSL, Cg, XML
  Libraries: OpenGL, GLUT, STL, Granny, wxWidgets, Xerces XML
  Tools: Microsoft Visual Studio, Netbeans IDE
  Version-Control Software: Starteam, TortoiseSVN, Microsoft Visual SourceSafe, AccuRev
  Game Engines: CryEngine 3




Industry Experience:

Cubic Simulation Systems, Inc

  Senior Software Engineer
  August 2010 - Present

Meggitt Training Systems (Firearms Training Systems)

  Software Engineer II
  August 2006 - July 2010

  Developed and maintained real-time military simulation applications using C++, OpenGL, MFC, C#, C++\CLI, and WPF. I worked with a team of engineers on our main CGI application, the ITTC product, and participated in the development of Meggitt's next-generation military and law enforcement training platform using the Crytek CryEngine2 game engine.



More information on the Meggitt products that I worked on can be found here:




Purdue IEEE Aerial Robotics:

The Purdue Aerial Robotics team has been working for several years to fly an unmanned helicopter around waypoints and accomplish several missions including symbol recognition and building entry as part of the AUVSI International Robotics Competition. I am the lead developer of the HeliGraphics and HeliBrains applications for the Purdue Aerial Robotics System (PARS). The applications provide a visual test-bed for displaying where the helicopter is located relative to other objects in the environment. I completed the following tasks for these applications:






Research:

  After taking Dr. Voicu Popescu's course in Fundamentals of Computer Graphics in Spring 2005, I was fortunate enough to get a position doing computer graphics research for him at the Computer Graphics and Visualization Lab. Under the guidance of Dr. Popescu and Dr. Chunhui Mei, our efforts at improving real-time reflection algorithms and non-pinhole camera models resulted in several papers described below.


  • Sample-based Cameras

      Most of the research for this paper was done before I was involved with it. Basically the idea is to use a collection of Binary Space Partition trees with pinhole cameras at the leaves to allow for feed-forward rendering of reflections by projecting triangles onto the cameras. I spent some time working with this model of a Citroen car in 3D Studio Max. I separated the pieces of the car into reflecive, diffuse, and transparent components. After writing some functions to import the model into our project code, I extended a ray tracer to blend these components together.

    V.Popescu, E.Sacks, C.Mei, "Sample-Based Cameras for Feed-Forward Reflection Rendering", IEEE Transactions on Visualization and Computer Graphics, 2006 PDF. Video.








  • General Linear Cameras and K-Ray Cameras

      My next task was to implement a 3-ray General Linear Camera and approximate geometric models with camera meshes, which will be used to project the scene triangles onto the cameras. We then began studying non-pinhole cameras for use with rendering reflections. This research soon evolved into its own paper, where we explored k-ray cameras including 3, 4, and 6-ray cameras. These new camera types are useful in computer vision and computer graphics.

    V.Popescu, J.Dauble, C.Mei, E. Sacks, "An Efficient Error-Bounded General Camera Model", Third Int'l Symposium in 3D Data Processing, Visualization, and Transmission (3DPVT), Jun., 2006. PDF Video




  • Reflected-Scene Impostors

      We then had an idea to approximate the geometry of the reflected scene with billboards, or impostors taken from the view of the reflector. This allows for rendering of reflections on complex reflectors at interactive rates with the help of some gpu hardware acceleration using Cg. Most of my time was spent writing software to animate objects for this project through deformations and simple artificial intelligence. I also helped with developing scenes for the video.
    A powerpoint presentation by Dr. Popescu can be found here.

    V.Popescu, C.Mei, J.Dauble, E.Sacks, "Reflected-Scene Imposters for Realistic Reflections at Interactive Rates", Computer Graphics Forum,volume 25,issue 3(EG 2006),Sep.,2006. PDF Video









  • Augmented Reality

      In the summer of 2006, I helped Dr. Phillip Dunston, a professor of Civil Engineering, and Do Hyoung Shin, a Civil Engineering graduate research assistant, develop an Augmented Reality application for the purpose of aiding construction projects. Do Hyoung constructed an elaborate HiBall tracking system that could precisely determine position and orientation of a tracked object. I created an application using C++ and OpenGL that linked a virtual camera with the tracked object. Next, Do Hyoung mounted the tracked object to a video camera. I used a third-party library to read the video camera's frame buffer memory and displayed it in my rendering window. I then combined the video camera's information with a virtual model of pipes to comlete the Augmented Reality experience.





  • Other Research Videos:

    Here are some other videos I made related to research. Some are cool while the others just show errors.
      Movie  Description
        movie Shows an animated Vespa
        movie Shows an animated Vespa driving towards a goal
        movie Shows three animated Vespas driving with artificial intelligence
        movie Highlights an error with a glc mesh caused by some bad vertices at a pole of a sphere.
        movie Highlights an similar error with a glc mesh caused by some bad vertices at a pole of a sphere.
        movie Shows the same error with the glcs shown in wireframe.
        movie Shows the same error with only the glcs shown.
        movie This is an early version of the movie submitted to CVPR. It is also longer than the final movie.
        movie A scene viewed from a Pin-Hole Camera.
        movie A scene viewed from a single General Linear Camera.
        movie A scene viewed from another General Linear Camera.
        movie A scene viewed from two General Linear Cameras.
        movie A scene viewed from two General Linear Cameras with different base planes.
        movie A scene viewed from two Normalized General Linear Cameras, developed by Dr. Mei, with different base planes.
        movie A scene viewed from a Bilinear Camera. Jing Ye, also a member of the research team, developed the Bilinear Camera.
        movie Two animated teapots with deformations and rotations.
        movie A bunny hitting a plane and shattering. This never worked out as well as I wanted it too.



    Courses:

  • CS 334 Fundamentals of Computer Graphics (Dr. Popescu, Spring 2005)

  • This course, which I took in Spring 2005, really sparked my interest in computer graphics. Even though Dr. Popescu never gave us a break from almost weekly projects, the time spent working on these projects helped me develop the skills I would later use for relevant research. In this course, we studied the basics of interactive graphics including scene representations, rasterization, illumination, shading, clipping, and texture mapping.


  • CS 535 Interactive Computer Graphics (Dr. Aliaga, Fall 2005)

  • This was my first graduate-level course, and the level of work involved did not disappoint. As in CS 334, I implemented all the elements of the graphics pipeline in software before being allowed to use the OpenGL functions. We also learned some very useful hierarchical acceleration schemes, such as the Octree data structure, that can be used with view-frustum culling techniques. There was also a significant final project, where I showed some of the work I had been doing with General Linear Cameras.


  • CS 434 Advanced Computer Graphics (Dr. Popescu, Spring 2006)

  • There was still much to learn about computer graphics even after taking a couple courses on the subject. Because Dr. Popescu focused much of his research on rendering reflections, many of our projects in cs434 involved implementing reflection rendering techniques in software. We implemented common techniques such as environment mapping and ray tracing. Then we all implemented some of the new technique of billboarding. Also, we implemented some other advanced graphics techniques, such as perspective texture mapping, shadowing, lumigraphs, and alpha channel blending.

      Movie  Description
        movie A rotating bunny rendered in wireframe. Some z-buffering issues produced a neat effect, so I kept them in for the video.
        movie A rotating bunny rendered with Gouraud shading.
        movie A rotating bunny rendered with Phong shading.
        movie Perspective Texture-Mapped cube with shadows and projections shown on multiple cameras.
        movie Another path for the same scene.
        movie Same scene with rotating cube and no path.
        movie Image-based rendering of a room with a single reference image.
        movie The same room with a camera path.
        movie The same room showing the 18 reference cameras and 2 billboards with alpha channel transparency.
        movie Image-based rendering of the room with 18 reference images and 2 billboards with alpha channel transparency.
        movie This is a movie comparing software environment mapping and ray tracing a cube map.
        movie This is a movie showing an implementation of our billboarding technique for a cs434 class assignment.
        movie This is a reconstruction of a scene using an 8x8 lumigraph grid.
        movie This is a video of all the reference images for a 32x32 lumigraph grid.
        movie This is a reconstruction of a scene using an 32x32 lumigraph grid.


    Side Projects:

  • Dragon Warrior Forever

  • I wrote a 2d game in Java similar to an old Nintendo game called Dragon Warrior 4. A few people in the Purdue Game Development Club also helped with the project, which won first place at the PGDC Game Contest in 2004.