f3d

Fast and minimalist 3D viewer.

BSD-3-CLAUSE License

Downloads
1.7K
Stars
2.4K
Committers
38

Bot releases are hidden (Show)

f3d - v2.4.0 Latest Release

Published by mwestphal 7 months ago

output

🗣 Join our community:

F3D Community is welcoming to users and developers alike!
Ask questions, gets involved and starts contributing in a beginner-friendly environment.
Discord

❤️ Sponsor F3D:

F3D is looking for sponsors!
We have some expanses mainly related to github and web hosting bills, any help to cover the cost would be highly appreciated.
To thank you, we'll offer preferential support and vote on next feature and bugfix as soon as you start sponsoring.
Sponsors
Much love to our sponsors for this release @parkerstafford @kidharb @Ramalama2 @ssddanbrown and a secret sponsor ❤️

🖼️ 3D Gaussian Splatting support

Have you heard of 3D gaussian splatting ?
F3D now support opening and rendering .splat files natively, and with great performances!

output

🌈 Colormap preset

F3D comes with a default hot colormap, but it now ships a few different colormaps,
you can even use any colormap you want if you provide an image file!
Read all about it in the decicated documentation.

output

🔃 Reload file when changed

One of the features that was most requested by the community when the possibility to reload
a file whenever it is changed on disk. Well, it is now possible, using the new --watch option.

output

📝 Complete changelog

For F3D users:

  • Added a new option --point-type used to specify how to display points sprites
  • Add support for 3D Gaussians Splatting in binary .splat format
  • Added ability to cycle through available animations by pressing W hotkey (thanks @kathleenhang!)
  • Added display of current animation name within cheatsheet (thanks @kathleenhang!)
  • Added orthographic camera projection option (--camera-orthographic) and binding (5) (thanks @kidharb!)
  • Added proper continuous integration for MacOS ARM64
  • Added support for glTF Draco encoded file
  • Added support for dark title bar on Windows (thanks @chirag-droid!)
  • Added support for colormap presets, using --colormap-file option
  • Added a option to reload file automatically when changed on disk (--watch)
  • Added support for streaming output images to stdout, using - filename
  • Added animation support to Alembic plugin
  • Improved OCCT plugin (STEP and IGES files) performance drastically (thanks @snoyer!)
  • Improved config file parsing so that it is parsed in file order (thanks @snoyer!)
  • Fixed an issue with blur circle of confusion (thanks @snoyer!)
  • Fixed an issue with the grid being clipped (thanks @snoyer!)
  • Fixed an issue with STEP file coloring (thanks @snoyer!)
  • Fixed an issue when time range was not starting at zero (thanks @z-shaffer!)
  • Fixed an issue when record file does not exist (thanks @chirag-droid!)
  • Fixed an issue when using --no-render and --hdri
  • Fixed an issue with the Windows thumbnailer with process never properly killed (thanks @chirag-droid!)
  • Fixed an issue where OCCT would output to terminal
  • Fixed an issue with FISH completion

For libf3d users:

  • Added a new option model.point-sprites.type used to specify how to display points (only if model.point-sprites.enable is true)
  • Added a image::toTerminalText method to print image to terminal text (thanks @snoyer!)
  • Added an image metadata API (thanks @snoyer!)
  • Added a vtkext module for plugin developer, see the documentation
  • Added a new f3d component to find_package of, pluginsdk, require to build plugins against F3D

For F3D packagers:

  • Added a CMake report at the end of configuration
  • Added a new cmake installation component, plugin_sdk, needed to compile external plugin against F3D
  • Added a new cmake installation component, colormaps, needed for the colormap feature
  • Fixed multiple issue with static (BUILD_SHARED_LIBS=OFF) build
  • Fixed a compilation issue with gcc14 (thanks @topazus!)
  • Fixed a compilation issue with OCCT 7.8.0 (thanks @thierry-FreeBSD!)

Thanks to all our packagers that help F3D reach a wider audience: AndnoVember @kylosus @kevinsmia1939 @yurivict @bcdarwin @svenstaro @mzf-guest @papoteur-mga @berolinux @topazus @thierry-FreeBSD
Thanks to all our contributors for this release: @kidharb @kathleenhang @chirag-droid @topazus @thierry-FreeBSD @z-shaffer @snoyer @Meakk @mwestphal

Credits:

Bonsai and Counter point cloud from mip-NeRF 360 and generated using gaussian splatting.

f3d - v2.4.0-RC2

Published by mwestphal 7 months ago

f3d - v2.4.0-RC1

Published by mwestphal 7 months ago

f3d - v2.3.1

Published by mwestphal 7 months ago

A patch release to fix issues with LFS data, see https://github.com/f3d-app/f3d/releases/tag/v2.3.0 for more info about the content of the 2.3 release.

f3d - v2.3.0

Published by mwestphal 9 months ago

f3d-turntable-800x48024fps-5s

🗣 Join our community:

F3D Community is welcoming to users and developers alike!
Ask questions, gets involved and starts contributing in a beginner-friendly environment.
Discord

❤️ Sponsor F3D:

F3D is looking for sponsors!
We have some expanses mainly related to github and web hosting bills, any help to cover the cost would be highly appreciated.
To thank you, we'll offer preferential support and vote on next feature and bugfix as soon as you start sponsoring.
Sponsors
Much love to our unique 😢 sponsor for this release @Ramalama2 ❤️

💡 USD format support

F3D now support USD format! Thanks to a new usd plugin using OpenUSD, you can now open all .usd files.
Many USD features are supported, give it a go!

mcusd

🖨️ 3MF format support

F3D now support 3MF format! Thanks to our now expanded assimp plugin, your 3D printing data will be visible in F3D!
We also added support for .x files as well.

hearth

🌪️ VDB format experimental support

F3D now support VDB format! Thanks to a new experimental vdb plugin relying on VTK and OpenVDB, you can now open all .vdb files, with some limitations.

arma

📝 Complete changelog

For F3D users:

  • Added --animation-autoplay option (libf3d: scene.animation.autoplay) to automatically start animation on file load (Thanks @technologeli !)
  • Added an experimental vdb plugin in order to read .vdb files using OpenVDB
  • Added an usd plugin in order to read .usd files using OpenUSD
  • Added .3mf and .x files support in the assimp plugin
  • Added a small margin between the model and the grid to avoid potential z-fighting
  • Added VTK output to the log when using --verbose=debug for easier debug
  • Reworked the alembic plugin to read Texture Coordinates and Normals for .abc files
  • Improved the reading of EXR files using multi-threading for better performance when loading HDRIs
  • Improved the documentation on https://f3d.app (thanks @Ramalama2 @jspanchu @felixonmars @zhiyuang !)
  • Improved general logging in order to make it easier to understand issues with file and options
  • Fixed potential crashes when reading assimp plugin file formats
  • Fixed --grid-absolute for off-center models (thanks @snoyer !)
  • Fixed an issue with thumbnail generation showing the log window
  • Fixed many interaction issues on non-Qwerty keyboard layout
  • Fixed handling of filenames containing commas (thanks @snoyer !)
  • Fixed an issue on Windows where the log window would appear on top of F3D window (thanks @jiangsheng !)
  • Fixed crashes with specific .obj file
  • Fixed an issue with incorrect return code when using headless mode or incorrect options
  • Fixed dependency issue with the headless .deb binary release
  • Fixed a crash when using a file with more than 254 bones (Requires OpenGL 4.3)
  • Fixed an issue with Unicode filenames on the title bar on Windows
  • Fixed an issue where focal point picking would generate error messages (thanks @snoyer !)
  • Changed --verbose into a string based option, eg: --verbose=quiet or --verbose=debug. --verbose is still supported.
  • Changed --no-render behavior so that it doesn't impact verbosity anymore
  • Changed the default configuration file so that translucency support is enabled by default
  • Deprecated --quiet, use --verbose=quiet instead
  • Deprecated --input, use positional argument instead

For libf3d users:

  • Added scene.animation.autoplay option
  • Added a f3d::image::saveBuffer API to save an image as a file format in memory
  • Fixed the default name of the window (thanks @shaikan !)

For F3D packagers:

  • Added a new optional dependency, OpenUSD. Enable with F3D_PLUGIN_BUILD_USD CMake option
  • Added a new optional dependency through VTK, OpenVDB. Enable with F3D_PLUGIN_BUILD_VDB CMake option
  • Added a new CMake option to control the link against libatomic. Control with F3D_LINUX_LIBRARY_LINK_ATOMIC (Thanks @mzf-guest !)
  • Added two new packages to the list, OpenMandriva and Mageia, thanks @papoteur-mga @berolinux

Thanks to all our packagers that help F3D reach a wider audience: AndnoVember @kylosus @kevinsmia1939 @yurivict @bcdarwin @svenstaro @mzf-guest @papoteur-mga @berolinux
Thanks to all our contributors for this release: @technologeli @Ramalama2 @jspanchu @felixonmars @zhiyuang @jiangsheng @snoyer @Meakk @mwestphal

Credits:

Bunny Samurai Skateboarder model from maxpanysh and Mad Kobra
Shangai Bund hdri from Greg Zall
armadillo.vdb: openvdb.org and stanford 3D scanning repository
McUsd_10cm.usdz: CC-NC-BY-SA jasonjgardner and Eric Haines
heartgears.3mf: BSD-2-Clause: Copyright (c) 2018, 3MF Consortium

f3d - v2.3.0-RC5

Published by mwestphal 9 months ago

f3d - v2.3.0-RC4

Published by mwestphal 9 months ago

f3d - v2.3.0-RC3

Published by mwestphal 9 months ago

f3d - v2.3.0-RC2

Published by mwestphal 9 months ago

f3d - v2.3.0-RC1

Published by mwestphal 9 months ago

f3d - v2.2.1

Published by mwestphal about 1 year ago

f3d-stripes-1920x1080@60fps-5s del

🗣 Join our community:

F3D Community is welcoming to users and developers alike!
Ask questions, gets involved and starts contributing in a beginner-friendly environment .
Discord

❤️ Sponsor F3D:

F3D is looking for sponsors!
We have some expanses mainly related to github and web hosting bills, any help to cover the cost would be highly appreciated.
To thank you, we'll offer preferential support and vote on next feature and bugfix as soon as you start sponsoring.
Sponsors
Much love to our few sponsors for this release @Ramalama2 @Da3n0n @melMass ❤️

🏞️ HDRI default and performance

F3D now comes with a default HDRI! It is used to improve default lighting quality.
HDRI performance has already been improved greatly, with no wait time when changing files to visualize
and HDRI cache is being used as much as possible.
You can now turn on/off HDRI lighting and skybox using F and J bindings.

Before/After:
b
a

Note: Command line arguments for HDRI have changed, please refer to the complete changelog and the documentation.

🐍 Python API and python wheels

The libf3d python API was completely reworked in order to be more pythonic!
You can easily use libf3d in your own scripts to quickly visualize your datasets.
Create the engine, set the rendering options, load the geometry, and start the interactor or directly write the result in an image!
For example, here is how to load and interact with a model:

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.loader.load_geometry("f3d/testing/data/dragon.vtu")
eng.interactor.start()

See the documentation and the tests for more info.

Also, you can now easily install the libf3d using pip with:

pip install f3d

Please test this and let us know if you have any feedback, we always want to improve our python API!

📝 Complete changelog

For F3D users:

  • Added a native Apple Silicon release package 🍎
  • Added new options hdri-file, hdri-ambient, hdri-skybox to have more control on the HDRI behavior
  • Added a default HDRI used when providing no hdri-file
  • Added bindings to toggle HDRI ambient lighting (F) and HDRI skybox (J)
  • Added bindings to move the camera to standard locations: 1: Front, 3: Right, 7: Top, 9: Isometric
  • Added Open CASCADE BRep format to the OCCT plugin.
  • Fixed an infamous issue when the Windows thumbnailer always steal the focus
  • Fixed an issue with the binary release when opening draco files
  • Fixed an issue with matcap textures
  • Fixed an issue with HDRI lighting
  • Fixed an issue with HDRI lighting when dropping HDRI after a model
  • Fixed an issue where invalid option would not show on Windows
  • Fixed an issue where previously loaded file would stay visible
  • Fixed an issue when loading invalid EXR file as HDRI
  • Fixed cheatsheet menu rendering under 'Drop File Instructor'
  • Fixed raytracing rendering issues
  • Improved cheatsheet menu contrast for any background color
  • Improved overall text contrast for any background color
  • Improved performance when changing model and using a HDRI
  • Improved HDRI cache performance
  • Deprecated hdri option

For libf3d users:

  • Reworked image API to support many file formats to read (EXR, HDR) and write (PNG, JPG, TIF, BMP)
  • Added render.hdri.file, render.hdri.ambient, render.background.skybox options.
  • Deprecated render.background.hdri in favor of new options above
  • Deprecated previous image API
  • Add loader::loadGeometry allowing loading geometry from memory buffers

For developers:

  • Added a deprecation framework
  • Removed F3D_TESTING_ENABLE_HDRI_TESTS cmake option and merged it with F3D_TESTING_ENABLE_LONG_TIMEOUT_TESTS
  • Added a Getting Started guide for beginners developers

For F3D packagers:

  • Fixed compatibility with FreeBSD

Thanks to all our packagers that help F3D reach a wider audience: AndnoVember @kylosus @kevinsmia1939 @yurivict @bcdarwin @svenstaro @mzf-guest
Thanks to all our contributors for this release: @lknknm @yurivict @snoyer @Meakk @mwestphal

Credits:
Battle Damaged Sci-fi Helmet - PBR by theblueturtle_, CC BY-NC
Industrial Sunset 02 (Pure Sky), by Jarod Guest and Sergej Majboroda, CC0

f3d - v2.2.1-RC2

Published by mwestphal about 1 year ago

f3d - v2.2.1-RC1

Published by mwestphal about 1 year ago

f3d - v2.2.0

Published by mwestphal about 1 year ago

f3d - v2.2.0-RC3

Published by mwestphal about 1 year ago

f3d - v2.2.0-RC2

Published by mwestphal about 1 year ago

f3d - v2.2.0-RC1

Published by mwestphal about 1 year ago

f3d - v2.1.0

Published by mwestphal over 1 year ago

luxray_loss

🗣 Join our community:

F3D Community is welcoming to users and developers alike!
Ask questions, gets involved and starts contributing in a beginner-friendly environment .
Discord

❤️ Sponsor F3D:

F3D is looking for sponsors!
We have some expanses mainly related to github and web hosting bills, any help to cover the cost would be highly appreciated.
To thank you, we'll offer preferential support and vote on next feature and bugfix as soon as you start sponsoring.
Sponsors
Much love to our few sponsors @Ramalama2 @Ninroot ❤️

🏃 Animation Rework:

Many new feature for better animation in F3D!
Animation is now real-time based and there are many new animation options:

  • --animation-speed-factor to slow, speed and invert time
  • --animation-frame-rate to control the frame rate
  • --animation-time option to set an animation time to load initially

output

🎥 Camera options:

Camera options have been improved greatly and now let you set a direction, great to generate screenshot for the same POV of different geometries. Default camera locations have been updated to get a better initial look at the data.
New options are:

  • --camera-direction : Set the direction the camera is looking at, to use with --camera-focal-point
  • --camera-zoom-factor: Set the initial zoom factor

✨ MatCap:

It is now possible to use MatCap textures to color your model.

2023-06-07-230108_window

🌄 HDRI Improvements:

Setting the HDRI has never been easier, now with .exr support and better caching performance!
Just drop a .hdr or .exr on the F3D window and the HDRI will be loaded!

📝 Complete changelog

For F3D users:

  • Reworked Animation support and added many animation related options (see above)
  • Added --camera-direction and --camera-zoom-factor and use it in default config file (see above )
  • Added --texture-matcap option to load a MatCap texture (see above)
  • Added support for opening HDRI background with Drop (see above)
  • Added .exr support for HDRI and textures (see above)
  • Improved HDRI caching performance (see above)
  • Added a EGL headless binary release
  • Added typo suggestion when failing to use the right option name
  • Added --invert-zoom option (libf3d: interactor.invert-zoom) to invert zoom direction with right-click on mouse (thanks @DeveloperPaul123!)
  • Added support for keeping camera position when reloading a file with UP key
  • Added a --grid-absolute option (libf3d: render.grid.absolute) to position the grid instead of being below the model
  • Added a "Drop Zone" when starting F3D without loading a file
  • Added coloring support for STEP files in binary release
  • Fixed an issue on Windows where the error window would popup even with --quiet
  • Fixed an issue with 16 bit and 32 bit textures with assimp plugin
  • Fixed an issue on Windows where errors where not visible
  • Fixed an HDRI issue on reload
  • Fixed a crash when with the progress bar on reloading a file
  • Fixed an issue where certain options from config file would be ignored
  • Fixed a crash with many GLTF files when an array does not have a name
  • Fixed an issue where dropping a duplicate file would change the loaded file instead of not doing anything
  • Fixed an issue when loading an unsupported file
  • Fixed an issue with VRML files
  • Improved config file for .ply files
  • Improved config file regex so that they are case-insensitive
  • Improved --up option to support no sign and better validation
  • Improved F3D version reporting about itself and VTK (--version)
  • Improved documentation, testing, help
  • Excluded TIFF format from Windows Thumbnailer
  • Changed the automatic camera position to a version more close to the data
  • Reduced size of binary release by a factor of two

For developers:

  • Added vcpkg support for dependency installation

For F3D packagers:

  • Added a F3D_PLUGIN_OCCT_COLORING_SUPPORT CMake variable to control if this feature is compiled, default is ON
  • Added SONAME support (thanks @bkmgit!)
  • Added a F3D_PLUGINS_INSTALL_DIR CMake variable to control where to install plugins
  • Added a new module: F3D_MODULE_EXR that depends on openexr
  • Added support to use external cxxopts and external nlohmann-json (thanks @topazus!)
  • Fixed a link issue with VTK modules
  • Fixed a @loader_path issue on MacOS
  • Added support for CMAKE_INSTALL_*DIR variables on installation (thanks @topazus!)
  • Added support for building against a EGL enabled VTK
  • Fixed a compilation issue with VTK master

Thanks to all our packagers that help F3D reach a wider audience: AndnoVember @kylosus @kevinsmia1939 @yurivict @bcdarwin @svenstaro @mzf-guest
Thanks to all our contributors for this release: DeveloperPaul123 @topazus @bkmgit @snoyer @Meakk @mwestphal

Credits:
Bristleback DOTA Fan-Art by Nikolay_Tsys.
Future Parking HDRI by Sergej Majboroda.
Luxray by Gianmarco.
Bell Park Dawn HDRI by Greg Zaal.

f3d - v2.1.0-RC3

Published by mwestphal over 1 year ago

f3d - v2.1.0-RC2

Published by mwestphal over 1 year ago