Tom Ball

Principal Software Engineer in San Francisco Bay Area

Novato, California, United States

About

Senior software engineer with experience in both traditional and start-up environments. Highly analytical with solid expertise in object-oriented software design and development of commercial software applications. Specialties C++, 2d and 3d geometric modeling, CAD.

Experience

  • Principal Engineer at Autodesk
    Jun 2005 - Nov 2012 · 7 yrs 6 mos

    Developed new features and enhancements for Autodesk’s flagship product AutoCAD. Key individual accomplishments: • Designed and implemented new C++ classes to support surfaces and solids that are created by lofting and sweeping 3d profiles. • Developed new network, n-patch, and blend, surface types and integrated them with AutoCAD’s associative framework. • Developed new features such as adding 2d constraints to dynamic blocks and implementing pre-selection previewing of the outcome of several AutoCAD commands. • Improved the rendering time for solid fill regions by enhancing AutoCAD’s triangulation algorithm to minimize the number of computed triangles.

  • Senior Developer at Technology Answers, Inc.
    Oct 1999 - Jan 2004 · 4 yrs 4 mos

    Member of small startup developing software for feature-based manufacturing of mechanical parts. Key individual accomplishments: • Designed and coded algorithms for extracting geometric data from the solid model to be used in computing toolpaths for machining operations. • Designed and implemented algorithm for performing boolean operations on planar profile curves. • Developed software for performing version migration of existing parts, so that geometric and feature data is preserved when importing a new version of a part.

  • Software Engineer at Autodesk
    Aug 1994 - Oct 1999 · 5 yrs 3 mos

    Member of core team that developed a geometry library which provided a common interface to geometry across Autodesk products. This C++ library provided classes for representing both analytic and non-uniform rational b-spline (NURB) curves and surfaces as well as linear algebra classes for points, vectors, and matrices. Key individual accomplishments: • Designed and implemented object-oriented architecture of library including API interface classes and underlying implementation classes. • Developed algorithms for a variety of geometric operations such as computing intersections, projections, and trimmed offsets of 3d curves. • Developed ObjectARX application that used geometry library to project AutoCAD Designer curves into native AutoCAD entities. • Re-implemented parts of AutoCAD to use the geometry library instead of the ACIS solid modeler for representing ellipse and NURB curves. • Enhanced 3d user interface of AutoCAD 2000 by developing new dialogs and toolbars in MFC that automated the manipulation 3d coordinate systems.

  • Senior Software Engineer at Cimplex Corporation
    Jan 1990 - Aug 1994 · 4 yrs 8 mos

    Member of small team developing software for computer-aided manufacturing. Key individual accomplishments: • Designed and implemented C++ classes for the modeling base system, including all geometry and topology classes needed for the mathematical representation of a solid model. • Designed and implemented C++ classes to manage all vector and polygon data needed for rendering shaded images, and provide all functions necessary for color highlighting and graphical selection of solid geometry. • Developed mathematical algorithms needed for the manufacturing application including automatic recognition of certain types of features, computing intersections of curves and surfaces, computing bounding boxes of geometric entities, and evaluating points and derivatives on curves and surfaces. • Developed interface to an object-oriented database (Objectivity 2.0).