Language Bindings

Python

If the python bindings have been generated using the F3D_BINDINGS_PYTHON CMake option, the libf3d can be used directly from python. Make sure to set PYTHONPATH to path where the python module is built. Here is an example showing how to use libf3d python bindings:

import f3d

eng = f3d.Engine(f3d.Window.NATIVE)
eng.options.update({
  "model.scivis.array-name": "Normals",
  "model.scivis.component": 0,
  "ui.bar": True,
  "render.grid.enable": True,
  })

eng.scene.add("f3d/testing/data/dragon.vtu")
eng.interactor.start()

You can see more examples using python bindings in the dedicated example folder here.

Java (experimental)

If the Java bindings have been generated using the F3D_BINDINGS_JAVA CMake option, the libf3d can be used directly from Java. You can import the f3d.jar package and use the provided Java classes directly. Make sure to set java.library.path to the path where the JNI library is built. Here is an example showing how to use libf3d Java bindings:

import app.f3d.F3D.*;

public class F3DExample {
  public static void main(String[] args) {

    Engine.autoloadPlugins();

    // Always use try-with-resources idiom to ensure the native engine is released
    try (Engine engine = new Engine(Window.Type.NATIVE)) {
      Scene scene = engine.getScene();
      scene.add("f3d/testing/data/dragon.vtu");

      engine.getWindow().render();
    }
  }
}

Javascript (experimental)

If the Javascript bindings have been generated by building F3D with webassembly and emscriptem, the libf3d can be used directly from a browser.

See the dedicated build guide, this example app which you can test live here!