Frequently Asked Questions

Frequently Asked Questions

Licensing & Open Source

What is the licensing model for Aspose.3D FOSS for Java?

Aspose.3D FOSS for Java is released under the MIT License. You can use it in personal, commercial, and open-source projects without restriction. No runtime licence key or activation is required. The source code is available on GitHub.

Can I use Aspose.3D FOSS for Java in a commercial product?

Yes. The MIT License permits unrestricted use in commercial products. No royalty payment, licence server, or internet connection is required at runtime.

Installation & Requirements

How do I install Aspose.3D FOSS for Java?

Add the Maven dependency to your pom.xml:

<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>aspose-3d-foss</artifactId>
  <version>26.1.0</version>
</dependency>

Then import the package in your source files:

import com.aspose.threed.*;

What Java version is required?

Aspose.3D FOSS for Java requires JDK 21 or later. It is fully self-contained with no native dependencies and no platform-specific binaries.

Format Support

Which 3D file formats can Aspose.3D FOSS for Java read and write?

The current release supports the following formats:

FormatImportExport
OBJ (Wavefront)YesYes
STL (Stereolithography)YesYes
glTF 2.0 / GLBYesYes
FBXYesNo

How do I detect a file’s format automatically?

Use FileFormat.getFormatByExtension(filePath) to look up the format by file extension:

FileFormat fmt = FileFormat.getFormatByExtension("model.gltf");
System.out.println(fmt.getCanImport()); // true
System.out.println(fmt.getCanExport()); // true

How do I use load or save options for a specific format?

Pass a format-specific options object to Scene.open() or Scene.save(). For example, to enable coordinate-system flipping when loading glTF:

GltfLoadOptions opts = new GltfLoadOptions();
opts.setFlipCoordinateSystem(true);

Scene scene = new Scene();
scene.open("input.gltf", opts);

For glTF export with pretty-printed JSON:

GltfSaveOptions saveOpts = new GltfSaveOptions();
saveOpts.setPrettyPrint(true);
scene.save("output.gltf", saveOpts);

Similarly, FbxLoadOptions is available for FBX import configuration.

API Usage

How do I load a 3D model from a file?

Use the static factory Scene.fromFile(filePath) for a one-step load, or construct a Scene and call scene.open(filePath):

// Option 1 — static factory (recommended)
Scene scene = Scene.fromFile("model.obj");

// Option 2 — instance method
Scene scene2 = new Scene();
scene2.open("model.fbx");

How do I create a new empty scene and save it?

Construct a Scene, add nodes as needed, then call scene.save(filePath):

Scene scene = new Scene();
Node child = scene.getRootNode().createChildNode("Box");
scene.save("output.glb");

How do I traverse the scene graph?

Access the root node via scene.getRootNode() and iterate its children:

Scene scene = Scene.fromFile("model.gltf");
Node root = scene.getRootNode();

for (Node child : root.getChildNodes()) {
    System.out.println(child.getName());
}

How do I save a scene to a specific format?

Pass the output path with the target extension — Aspose.3D detects the format from the extension automatically. For explicit control, pass a FileFormat or save-options object:

// Auto-detect output format from extension
scene.save("output.stl");

// Explicit format (using options object)
GltfSaveOptions opts = new GltfSaveOptions();
opts.setBufferFilePrefix("buffer_");
scene.save("output.gltf", opts);

Known Limitations

Is 3D rendering available in this release?

No. The Scene.render() methods throw UnsupportedOperationException in the current FOSS release. Rendering is not yet implemented. Use this library for importing, processing, and exporting 3D scene data only.

Are all FBX features supported?

FBX import is supported for geometry and scene graph data. FBX export is not implemented — calling save with FBX format throws ExportException. Complex FBX import features such as embedded animations, constraints, and proprietary FBX extensions may not be fully preserved.

 English