Software Related Tools
The resources we list here are ones we consider particularly useful to researchers. Many of the resources listed come with source code.
Commonly used in research papers for benchmarking and quality comparison.
- McGuire Graphics Data - a mix of CAD and scanned models, many with materials and textures, ranging up to 12.8M triangles, in OBJ format. The data quality of these models is quite high.
- Stanford 3D Scanning Repository - scanned models ranging in size from 70k to 28M triangles, in PLY format (with links for conversion tools). Because they are scanned, triangles are small and regular.
- Large Geometric Models Archive - more scanned models, at Georgia Tech, in PLY and IV (Inventor) formats. Models are 70k to 4.7M vertices.
- Power Plant Model - a classic large 12.8M triangle model, in PLY format. Note that this same model is available at the McGuire Graphics Data site in OBJ format.
- Utah 3D Animation Repository - OBJ and PLY format models with keyframe information. Sometimes used in testing ray tracing algorithms to benchmark hierarchy rebuild times.
- The Brown Mesh Set - a library of 1,139 small raw mesh models available in a single download.
- 3D Model Search Engine - based on keywords or model shape, with over 30,000 (small) models in its database. The models themselves and related software are available for download.
- Standard Procedural Databases - an old collection of C programs that generate models, including the Utah teapot, at various complexity levels, as topology or tessellated, to a number of popular formats. A history of the famous teapot, as well its data, can be found at Steve Baker's site; there is also a YouTube video that gives a good overview.
3D Model Collections
3D Model Format Information
3D Model Libraries and Viewers
- ASSIMP - a free open-source library for reading a wide variety of standard formats (and writing a very few). The reader is easy to integrate; it is not super-fast but effective for testing and conversion. Open source, comes with a viewer.
- MeshLab - a giant grab bag of tools for cleanup, simplification, and many other mesh operations. Solid for reading and converting various file types (notable exception: does not read 3DS), but rendering quality is basic. Can sometimes crash without warning. Youtube tutorials here. Open source.
- GLC Player - free viewer with most common formats (doesn't support PLY). Has cutting planes and a CAD feel; uses the "hold the object in your hand" mode of viewing. Not open source.
- G3D Viewer - a handy quick viewer with high quality (shadows, SSAO, bloom) for a wide variety of formats. Uses the walkthrough model of navigation. Easily take screen shots or even record animations. Not entirely stable. Open source.
Some of the better free modelers.
- Blender - this open source modeler has a fair number of different file importers and exporters.
- OpenSCAD - unlike other modelers, this modeler is script-based, using CSG and extrusion methods. Open source, multiplatform.
- Tinkercad - a browser-based modeler for producing 3D prints.
- MeshMixer - an Autodesk tool for modeling with arbitrary polygon-soup meshes; also popular for mesh cleanup and adding support structures for 3D printing.
- 123D series - a series of consumer-level applications for modeling, sculpting, and model capture from photos.
- DesignSpark Mechanical Home - a powerful CAD modeler with advanced features.
- MilkShape 3D - a free modeler and file converter. Mostly for games, but it does support some major modeller file formats, including FBX.
- OpenTeddy is an open source implementation of the Teddy sketch modeler.
- Educational software: some companies provide free copies of their software to students, teachers, and institutions. One example is Autodesk, which gives access to about all its desktop design software.
- Ayam - 3D modelling environment for the RenderMan interface.
- MilkShape 3D is a free modeler and file converter. Mostly for games, but it does support some major modeller file formats.
- BRL-CAD - a serious, extensive CSG modeling system, in development since 1979. The system is focussed on military vehicles and survivability, but can be used in other ways. It is free for download after signing an agreement.
- Open CASCADE - open source SDK for CAD. Code is available for manipulating 2D and 3D geometry/topology, booleans, fillets, chamfers, offsets, sweeps, etc. Data exchange is available for STEP, IGES, and DXF/SAT.
- Art of Illusion - open source modeler in Java. Includes a triangle mesh editor and a ray tracer.
Graphics Coding Resources
There are large code collections at sites such as Github, SourceForge, Google Code, etc. We list here some smaller collections focused on computer graphics code.
3D Graphics Algorithm Libraries
- CGAL - efficient and reliable geometric algorithms in C++. Under GPL/LGPL license.
- Sony Imageworks - provides a number of open source libraries for professional film work. These include:
- OSL - the Open Shading Language is used by Sony and others for material and light description.
- OpenSubdiv - a set of libraries for fast evaluation of subdivision surfaces; used in the film industry, among others.
- Journal of Computer Graphics Techniques - this journal is focused on algorithms, so many of the articles come with code.
- Graphics Gems Repository - the on-line repository for the code and errata for the Graphics Gems series of books (from Academic Press). This series focusses on short to medium length pieces of code which perform a wide variety of tasks.
- Geometric Tools - has many bits of code, including a quaternion tutorial and code, animation information, image analysis, etc.
- 3D Object Intersection page - for object/object intersection algorithm links.
Interactive 3D Rendering
- Unreal Engine is free, with costs coming in only on royalties.
- Unity3D has a personal version that is free to download and that is royalty-free.
- Shadertoy is a site that lets you develop shaders in the browser. Many incredible shaders perform ray casting on procedural models.
- The 3D Engines Database categorizes hundreds of different rendering engines available on the web, many including source.
- The Mesa 3-D graphics library is a free software distribution which implements much of OpenGL.
- OGRE is a popular open source graphics engine with an active community of developers.
- The G3D Innovation Engine is open source and has a wide range of features for interactive rendering.
- OpenSceneGraph is a popular scene graph library.
- Real-Time Rendering Portal - lists a number of sites related to code for interactive rendering.
Photorealism and Global Illumination
- Humus has a large collection of environment cube maps available for reuse.
- BRDF/BTF data is available from MERL, Bonn, BME (pab), Cornell, and Columbia-Utrecht.
- BRDF Explorer lets you interactively explore how various parameters in analytical shading models affect the BRDF.
- BRDFLab is a tool for displaying, fitting, and rendering BRDFs.
- ALTA is a new tool for fitting and understanding BRDFs. Currently in alpha.
- PBRT (Physically-Based Ray Tracer) is the renderer that is presented in the book Physically-Based Rendering, open-source and worthwhile.
- Mitsuba is a physically-based ray tracer. Unlike PBRT, which is focused on best practices, Mitsuba emphasizes experimental rendering techniques.
- LuxRender is a full spectral ray tracer for light propagation. It integrates well with many popular commercial modelers.
- Embree is a set of ray tracing kernels, from Intel. Open source and high quality, the library also provides clean access to SIMD CPU instructions.
- Radiance is a free physically based rendering system. It uses Greg Ward's radiosity algorithm, and implements a wide range of rendering equations. New renderers can be easily added.
- POV-Ray is a free ray tracer with a wide variety of primitives. A massive number of utilities to aid in modeling, rendering, and animating have made this renderer extremely popular, particularly on PC and Mac platforms.
- RenderMan the high-quality renderer Pixar and others use, is now free for non-commercial use.
- The Visualization Toolkit consists of the C++ and TCL code base for the book The Visualization Toolkit. It supports a wide variety of visualization algorithms including scalar, vector, and tensor visualization, and advanced modelling techniques like implicit modelling, polygon reduction, and Delaunay triangulation. It is now open source.
- The Teem Toolkit has many useful routines for raster representation and for volume rendering.
- Graphviz is handy for generating nice graph layouts from a simple script description.
- The Piccolo2D system has elements of 2D rendering and visualization. It is a free, open-source Java system for accessing large numbers of documents using a zooming metaphor and multiple representations.
- Maxima - a descendant of the Macsyma symbolic computation package, similar to Mathematica. You can use it to manipulation equations, integrate and differentiate, and much more. It's free and open-source.
- GNU Octave - similar to Matlab, for numerical computations and engineering-related operations.
- The GIMP is a GUI-based image manipulation package (think, "Photoshop") with some advanced plug-ins for Linux and Unix systems. Source code is provided.
- Paint.NET - a free, open-source Windows XP image manipulation program in C#. It's simplified vs. the GIMP, useful for quickly doing basic operations, but still has powerful features such as layers and history.
- Irfanview - a fine free image viewer and converter.
- xv is another free for personal use GUI-based image manipulation package with source. There are also binaries for Windows NT.
- Netpbm - a free package of file manipulation and conversion programs for a wide variety of file types and operations. The C source code can be freely used in any application.
- ImageMagick - one of the better free conversion and manipulation GUI-based packages available for X Windows systems and MS Windows. It comes with source code and has a liberal reuse license.
- FreeImage - a thread-safe, cross-platform library for image conversion and manipulation.
- DevIL - an open-source library for image conversion with many features, and includes conversion of some newer formats such as DDS.
- The SDSC Image Tools provide a wide range of file readers and writers as well as image processing tools.
- OpenEXR: a high-dynamic range (high precision) format from ILM. Open source code is provided.
- JPEG: The easy to use Independent JPEG group code distribution.
- PNG: The PNG software library. A lighter-weight alternative is LodePNG.
A wide range of vector draw packages are available; we list worthwhile open source and free options here.
- InkScape - a popular vector graphics program, reminiscent of Illustrator.
- Dia - for diagramming, similar to Visio.
- Synfig - for 2D animation; multiplatform.
2D Rendering Libraries
- The Anti-Grain Geometry package is open source C++ that does SVG-quality (or better) vector graphics rendering.
- The GNU plotutils package has two parts. There is a C/C++ function library for drawing, animating, and exporting 2D vector graphics to many formats. There are also some command-line programs for easily making plots of data. Download the latest version from here.
- gd is a graphics library which is handy for drawing vectors, regions, text, and compositing other images into a GIF. It's free, with source, and works on a wide range of platforms and compilers.
- The Jazz system has elements of 2D rendering and visualization. It is a free, open-source Java system for accessing large numbers of documents using a zooming metaphor and multiple representation.
Video Capture and Editing
- Greenshot - a free and open source screen capture utility for Windows; includes many options.
- FRAPS and HyperCam are two solutions for making screen-capture movies of interactive programs.
- VirtualDub - a simple video editor.
- VLC media player - plays most every format from most every source. Open source.
Shuang Zhao, Information Director
Last change: May 20, 2015