/f3d

Fast and minimalist 3D viewer.

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

CI Packaging codecov Downloads Sponsors Discord Contributor Covenant

F3D - Fast and minimalist 3D viewer

By Michael Migliore and Mathieu Westphal.

F3D (pronounced `/fɛd/`) is a fast and minimalist 3D viewer desktop application. It supports many file formats, from digital content to scientific datasets (including glTF, USD, STL, STEP, PLY, OBJ, FBX, Alembic), can show animations and support thumbnails and many rendering and texturing options including real time physically based rendering and raytracing.

It is fully controllable from the command line and support configuration files. It can provide thumbnails, support interactive hotkeys, drag&drop and integration into file managers.

F3D also contains the libf3d, a simple library to render meshes, with a C++17 API, Python Bindings, and experimental Java and Javascript bindings.

A typical render by F3D

Animation of a glTF file within F3D

A direct scalars render by F3D

See the gallery for more images, take a look at the changelog or go to the install guide to download and install F3D!

You can even use F3D directly in your browser!

If you need any help or want to discuss with other F3D users and developers, head over to our discord.

Quickstart

Open a file directly in F3D or from the command line by running:

f3d /path/to/file.ext

Optionally, append --output=/path/to/img.png to save the rendering into an image file.

See the Quickstart Guide for more information about getting started with F3D.

Documentation

  • To get started, please take a look at the user documentation.
  • If you need any help, are looking for a feature or found a bug, please open an issue.
  • If you want to use the libf3d, please take a look at its documentation.
  • If you want to build F3D, please take a look at the developer documentation.

Support

F3D needs your help!

If you can, please consider sponsoring F3D. Even a small donation would help us offset the recurring maintenance costs. With enough sponsors we would even be able to add support for new devices (as we would need do acquire or rent them first). Read more about it on our sponsor page.

If not, please use F3D, star it on github and share the word about it!

Vision

As a minimalist 3D viewer F3D aims to:

  • Support as many 3D file formats as possible
  • Support many types of renderings (textures, edges, etc... ) and visualizations (meshes, volumic, point sprites)
  • Support any and all use-cases dealing with 3D datasets
  • Let any user easily and quickly view any model with good defaults
  • Be as configurable as possible
  • Be fully controllable from the command line and configuration file
  • Be usable non-interactively
  • Be as modular as possible to be built with a small number of dependencies

but there is no plan to:

  • Provide a classic mouse-based UI, with menus and buttons
  • Provide data processing tools
  • Provide export feature

Contributing

F3D as a community-driven, inclusive and beginner-friendly project. We love to see how the project is growing thanks to the contributions from the community. We would love to see your face in the list below! If you want to contribute to F3D, you are very welcome to! Take a look at our contribution documentation, governance documentation and code of conduct.

Acknowledgments

F3D was initially created by Kitware SAS and is relying on many awesome open source projects, including VTK, OCCT, Assimp, Alembic, Draco, OpenUSD, OpenVDB and OSPRay.

License

F3D can be used and distributed under the 3-Clause BSD License, see the license. F3D integrate the sources of other libraries and tools, all under permissive licenses, see the third party licenses. F3D packages relies on other libraries and tools, all under permissive licenses, all listed in the respective packages.