FileConv

3D File Conversion classes
Sthithaprajna Garapaty 


Purpose:
To develop FileConv – a 3D file conversion utility consisting of java classes that are used to load, write and convert between a variety of different 3D file formats.  

Applications/Uses:
The FileConv classes can be used by other 3D applications like games and 3D modeling tools to load and save files of various formats. An executable program that will accompany these classes will act as a converter utility (the only one that’s cross-platform), so that people using different 3D applications can collaborate on the same project without difficulty.

Goals:
- Cross platform compatibility.
- Easy data format - Applications that use these classes can quickly import geometry to their own data storage format from FileConv’s data format without having to work with confusing functions and complex data formats like the ones in java3d or other major 3D API for Java. FileConv’s data format can also be used directly in any application.
- Independence – These classes will not be based on any 3D API and are independent of any such constraints. They are based on the core java classes. This enables all types of applications to use the FileConv classes.
- Complete conversion – The classes will convert all the information in one format to another with the only limitation of the file format specifications. That is, all uv maps, texture coordinates, normal coordinates, non-linear geometry and other information will be converted if the format permits.
- Complete loading – The classes will be able to understand all forms of each 3D format and even be able to read damaged files with accuracy.
- Selective Loading/Writing abilities – only sections of the file can be loaded based on what information the application using these classes will need.
- Speed and Efficiency – Classes should run at relatively good speed and should not take up too much memory.  

Extended Goal: Omni3Dloader - A class that can load a 3D format (ASCII and Binary) based on a format spec file that specifies how to load a file of that type.

Formats to be supported(organic list):
3D Studio(*.3DS)
3D Studio(*.ASC)
Anim8or(*.AN8)
AutoCAD(*.DXF)
Cinema4D(*.C4D)
Imagine(*.IOB)
Lightwave Object(*.LWO)
Maya(*.mb,*.ma)
Nendo(*.NDO)
Neutral ASCII File Format(*.NFF)
Pixar Renderman(*.RIB)
POV-RAY(*.POV)
Rhinoceros(*.3DM)
SoftImage XSI(*.XSI)
TrueSpace(*.COB)
Virtual Reality Modeling Language(*.WRL)
Wavefront(*.OBJ)


Status:

v 0.1 Released
---------------
Formats Supported:
Anim8or(*.AN8)
AutoCAD(*.DXF)
Neutral ASCII File Format(*.NFF)
Lightwave Object(*.LWO)
Wavefront(*.OBJ)
Virtual Reality Modeling Language(*.WRL)
Features:
- Geometry Loading and Writing classes for all the above formats
- Quick Data Format w/ flexible data arrays Using colt classes
- Independent classes do not depend on any 3D API
- Simple and Easy to use User Interface

v0.2 Planned
-------------
Add new formats:
3D Studio(*.3DS)
3D Studio(*.ASC)
Pixar Renderman(*.RIB)
TrueSpace (*.COB)
Add new features:
- UV coordinate and texture map loading/writing
- Normal Coordinate loading/writing
- 3D viewer interface for viewing models after loading (using gl4java)
- j3d Extension class for converting to java3d API
- Fix the major WriteLWO bug and other minor bugs