8000
Skip to content

Releases: f3d-app/f3d

Nightly

10 Dec 20:01
f5c41f1

Choose a tag to compare

Nightly Pre-release
Pre-release

Automatically generated nightly binary release

v3.5.0

05 Apr 15:40
bcfa8d5

Choose a tag to compare

Image

🗣 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 open source and needs your support!
Many thanks to all our one time sponsors!
Much love to our monthly sponsors for this release ❤️
NGIZeroCore | LambdaTest-Inc | OpenDroneMap
@jgod @exbluesbreaker @parkerlreed @Saijin-Naib

🤖 Created an Android version!

You can now use F3D on your android phone and tablet!
Just download the .apk and start viewing datasets!

android

🏡 Added IFC support

F3D now support .ifc format thanks to web-ifc library!
With thumbnails too of course.

Image

🚰 Stream and pipe support

Integrate f3d in your complex scripting workflows seamlessly.
The libf3d is also able to read files from streams.

import sys

from build123d import Box, Cylinder, export_brep, export_step
from OCP.BRepTools import BRepTools

obj = Box(2, 2, 1) - Cylinder(0.5, 2)
BRepTools.Write_s(obj.wrapped, sys.stdout.buffer)

python script.py | f3d - --output=- | display

Image

☁️ Added support for many point cloud formats

View your point clouds easily easilly, .las, .laz and many more.

Image

🪟 UI improvements

Notifications on each change: ✅
Scene hierarchy UI to select the part you want to show: ✅
Searchbar on top of the cheatsheet: ✅

Image

📝 Complete changelog

For F3D users:

  • Created an Android version
  • Moved macOS binary package to macOS 14 framework.
  • Added support for writing multiple images when using --output with a file containing animations (thanks @noclone @snoyer !)
  • Added a --display-depth option to display the depth image (thanks @AoGao-Kedoka !)
  • Added a --checkerboard option to display a checkerboard texture to check UVs (thanks @Ni-g-3l !)
  • Added a --scene-hierarchy option and interactive bind (Shift+H) to show a hierarchy widget that let enabling/disabling actor visibility (thanks @Medyan-Naser @snoyer !)
  • Added a --normal-glyphs option to show normals as arrow glyphs (thanks @ArchiePayne !)
  • Added a --notifications option and interactive bind (Ctrl+K) to enable/disable notifications, which shows a widget whenever an interactive bind is pressed (thanks for the prototype @davidwuluetang !)
  • Added a --dpi-aware option to rescale font automatically on HiDPI screens (Windows only) (thanks @davidwuluetang !)
  • Added a webifc plugin to add support for .ifc files (thanks @noclone !)
  • Added a pdal plugin to add support for many point cloud formats, including .las and .laz (thanks for the prototypes @Husamm @RealEdwardS !)
  • Added support for jumping to keyframes using jump_to_keyframe command (thanks @Ni-g-3l @CLBRITTON2 !)
  • Added support for CPU sorting for gaussian splat (--blending=sort_cpu), which enable gaussian splats on macOS
  • Added support for images formats (.png, .jpg, .hdr, .exr, ...) (thanks @noclone !)
  • Added a 2D interaction mode (--interaction-style=2d), used by default for images (thanks @noclone !)
  • Added a --font-color option to set the font color (thanks @JaimeNA !)
  • Added a print_config_info command to print info about the current config file in use (thanks @atharvRsharma @NaniNoni !)
  • Added new arguments to set_camera command: back, bottom, and left (thanks @v999dka !)
  • Added stream and pipe support, eg: cat file.glb | f3d -
  • Added more point sprites types, eg: cross, circle, and more
  • Added support for rendering non-PBR format as PBR
  • Added a searchbar on the cheatsheet (thanks @noclone !)
  • Added support for f3d colors in options (eg: f3d_white) (thanks @Prospect138 !)
  • Improved temporal anti aliasing performance and correctness (thanks @AoGao-Kedoka !)
  • Improved shell completions by reworking the whole CLI option system (thanks @skusel !)
  • Improved alembic animation performance (thanks @vincenzonetti !)
  • Fixed documentation issues (thanks @skusel @snoyer @ColtonLeighton @ferdnyc !)
  • Fixed a potential segfault when parsing colors in options
  • Fixed a crash with certain .vrml files (thanks @iommu !)
  • Fixed an issue with axes grid not properly centered on data (thanks @cuongdv-20 !)
  • Deprecated --interaction-trackball in favor of --interaction-style=trackball

For libf3d users:

  • Reworked the Qt/QML example from scratch in order to make it work properly (thanks @InikOfDoom !)
  • Reworked java and python binding for the scene add and addBuffer API
  • Added missing interaction modifiers in examples (thanks @noclone !)
  • Added an API to recover animation keyframes (thanks @Ni-g-3l !)
  • Added an API to recover animation names (thanks @iommu !)
  • Added (partial) exception support to the C bindings (thanks @AoGao-Kedoka !)
  • Added webp support to our npm package
  • Added ui.font_color option to set the font color (thanks @JaimeNA !)
  • Added render.effect.display_depth option to display the depth image (thanks @AoGao-Kedoka !)
  • Added model.checkerboard.enable option to display a checkerboard texture to check UVs (thanks @Ni-g-3l !)
  • Added a ui.scene_hierarchy option to show a hierarchy widget that let enabling/disabling actor visibility (thanks @Medyan-Naser @snoyer !)
  • Added a model.normal_glyphs.enable option to show normals as arrow glyphs (thanks @ArchiePayne !)
  • Added a ui.font_color option to set the font color (thanks @JaimeNA !)
  • Added a interactor.style option to control interaction style, including 2d mode (thanks @noclone !)
  • Added a ui.notifications.enable and ui.notifications.show_bindings options to enable/disable notifications and bindings, which shows a widget whenever an interactive bind is pressed
  • Added a ui.dpi_aware option to rescale font automatically on HiDPI screens (Windows only) (thanks @davidwuluetang !)
  • Deprecated interactor.trackball option in favor of interactor.style (thanks @noclone !)

For F3D packagers:

  • Updated all vendored dependencies
  • Updated all external depencencies in CI and shipping system
  • Added a new optional dependency: clip, to enable with F3D_MODULE_CLIP CMake option, no effect for now
  • Added a new optional dependency: web-ifc, to enable with F3D_PLUGIN_BUILD_WEBIFC CMake option, add the webifc plugin
  • Added a new optional dependency: pdal, through VTK IOPDAL module, to enable with F3D_PLUGIN_BUILD_PDAL CMake option, add the pdal plugin
  • Fixed an issue on FreeBSD with the logic to detect exectuble using sysproc (thanks @bapt !)

For Web viewer users:

  • Used the stream feature from the libf3d for drastic performance improvements
  • Removed support for non-stream supporting formats
  • Added .3mf and .dxf support
  • Added .ifc support

Many thanks to our returning contributors for this release, they are the life of this community!
@AoGao-Kedoka @snoyer @Ni-g-3l @Medyan-Naser @ArchiePayne @skusel

Thanks to our contributors for this release!
@noclone @davidwuluetang @Husamm @RealEdwardS @CLBRITTON2 @JaimeNA @atharvRsharma @NaniNoni @v999dka @Prospect138 @vincenzonetti @ferdnyc @ColtonLeighton @InikOfDoom @bapt @iommu @cuongdv-20

Thanks to our packagers that help F3D reach a wider audience!
AndnoVember @kylosus @kevinsmia1939 @yurivict @bcdarwin @svenstaro @mzf-guest @papoteur-mga @berolinux @topazus @thierry-FreeBSD @xiota @alerque @chenrui333 daviddavid @kazzarin @StarsbySea @cho-m @adisbladis @Aleksanaa @pbsds @DimStar77 @AngryPenguinPL @strophy @SokolovValy @xiota @Saijin-Naib @bapt @UnownPlain
@UnownPlain

Credits

  • ifcSampleFiles
  • Table Mountain 1 HDRI by Greg Zaal and Rico Cilliers
  • red-rocks_flats BSD-3-Clause : Copyright (c) 2025, Hobu, Inc.

v3.5.0-RC3

04 Apr 10:40
cc6ddd3

Choose a tag to compare

v3.5.0-RC3 Pre-release
Pre-release
v3.5.0-RC3

v3.5.0-RC2

02 Apr 11:26
402d00e

Choose a tag to compare

v3.5.0-RC2 Pre-release
Pre-release
v3.5.0-RC2

v3.5.0-RC1

29 Mar 11:09
3f8e0fc

Choose a tag to compare

v3.5.0-RC1 Pre-release
Pre-release
v3.5.0-RC1

v3.4.1

08 Jan 11:36
7b221b2

Choose a tag to compare

Image

🗣 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 open source and needs your support!
Many thanks to all our one time sponsors!
Much love to our monthly sponsors for this release ❤️
NGIZeroCore | LambdaTest-Inc | OpenDroneMap
@jgod @exbluesbreaker @parkerlreed @Saijin-Naib @CriticalPoint

⚗️ New Alembic Features!

F3D is now able to read Xform animations and Curves from the alembic format!

Image

🇨 C bindings

The libf3d now have C bindings for complete intercompatibility
with other languages:
https://f3d.app/docs/next/libf3d/LANGUAGE_BINDINGS#c

Here is a quick prototype of Julia binding that uses the libf3d C bindings:
https://github.com/joa-quim/F3D.jl

🔃 Complete examples

We now have libf3d examples for:

  • C bindings
  • Python bindings
  • Java bindings
  • C++ bindings with multiple usecase
  • FLTK
  • Qt6
  • QML

See how easy it is to create your own app using the libf3d!

  // Load static/native plugins
  f3d::engine::autoloadPlugins();

  // Create a native-window engine
  f3d::engine eng = f3d::engine::create();

  // Modify options using the struct API
  f3d::options& opt = eng.getOptions();
  opt.render.grid.enable = true;
  opt.render.show_edges = true;

  // UI overlays: axis + some HUD
  opt.ui.axis = true;
  opt.ui.fps = true;
  opt.ui.animation_progress = true;
  opt.ui.filename = true;

  // FXAA + tone mapping
  opt.render.effect.antialiasing.enable = true;
  opt.render.effect.antialiasing.mode = "fxaa";
  opt.render.effect.tone_mapping = true;

  ::AddCustomCommands(eng);
  ::AddCustomBindins(eng);

  try 
  {
    // Add a model to the scene
    eng.getScene().add(file);
  }
  catch (const std::exception& e)
  {
    std::cerr << e.what() << '\n';
  }

  // Start interaction loop
  eng.getInteractor().start();

📝 Complete changelog

For F3D users:

  • BEHAVIOR CHANGE: Changed the behavior of gaussian point sprites, it now require the use of --point-sprites-absolute-size
  • BEHAVIOR CHANGE: Changed the default configuration for alembic to NOT display scalar by default
  • Added a CLI option to control if point sprites should be scaled or not: --point-sprites-absolute-size
  • Added HDRI filename display CLI option and interaction (Shift+N) (thanks @exbluesbreaker !)
  • Added progress support to QuakeMDL importer (thanks @Hy-LeTuan !)
  • Added point sprites modes switch interaction (O)
  • Added console auto completion for all libf3d options with a domain and filepath (thanks @skusel !)
  • Added support for Alembic XForm animation (thanks @Ni-g-3l !)
  • Added an interaction to play animation backward: Ctrl+Shift+Space (thanks @Ni-g-3l !)
  • Added a console command to play animation backward: toggle_animation_backward (thanks @Ni-g-3l !)
  • Added support for importing Alembic file with curves (thanks @Ni-g-3l !)
  • Added a jump_to_frame command (thanks @Ni-g-3l !)
  • Added axes and grid color configuration with a CLI option --x/y/z-color (thanks @snoyer @vincenzonetti !)
  • Added proper support for composite data (thanks @noclone !)
  • Added an interaction to change the up direction Ctrl+Y and Ctrl+Z and dynamic up support (thanks @noclone !)
  • Improved the documentation on https://f3d.app (thanks @pravvvv @ArchiePayne @Ni-g-3l )
  • Improved style of progress and animation bar to fit F3D style (thanks @Ni-g-3l !)
  • Improved color logging (thanks @snoyer !)
  • Reduced VRAM usage of antialiasing and HDRI rendering
  • Fixed an issue where the camera would reset after volume rendering (thanks @exbluesbreaker !)
  • Fixed multiple issue with temporal anti-aliasing
  • Fixed an issue with parsing none CLI options
  • Fixed small issues with the event loop
  • Fixed a blending issue with external rendering context
  • Fixed an issue with display of Ctrl+Shift+ bindings (thanks @Ni-g-3l !)
  • Fixed many memory issues in QuakeMDL reader (thanks @iommu !)
  • Fixed an issue with elevation and azimuth options (thanks @snoyer !)
  • Fixed a small display issue in the cheatsheet
  • Deprecated --anti-aliasing-mode in favor of simply --anti-aliasing
  • Deprecated --point-sprites-type in favor of simply --point-sprites
  • MacOS: Fixed a native window focus issues (thanks @arcticsixxx !)
  • MacOS: Added a native file menu (thanks @arcticsixxx !)

For libf3d users:

  • Added HDRI filename display option ui.hdri_filename (thanks @exbluesbreaker !)
  • Added an option to control if point sprites should be scaled or not model.point_sprites.absolute_size
  • Added x/y/z axis color options ui.x/y/z_color to control the color of the axis widget and grid (thanks @snoyer @vincenzonetti !)
  • Added a interactor::requestStop API for asynchronous loop stopping (thanks @snoyer !)
  • Added a log API to forward log instead of displaying them
  • Added C bindings (thanks @noclone !)
  • Fixed potential crash when using interactor::trigger* methods (thanks @Samarthi !)
  • python: Added many libf3d usage examples (thanks @noclone !)
  • python: Removed Python 3.9 wheel support
  • python: Fixed stubs for better auto completion (thanks @snoyer !)
  • python: Fixed multiples tests that were not run (thanks @snoyer !)
  • python: Fixed an issue when setting a double option from ints (thanks @snoyer !)
  • python: Created a dedicated helper repository: https://github.com/f3d-app/python-f3d-extras (maintained by @snoyer !)
  • wasm: Added typescript support
  • java: Improved the bindings to cover almost the whole API (thanks @noclone !)
  • examples: Completely reworked the examples with new and details examples in C++ (thanks @noclone !)
  • examples: Added a complete Qt6 examples (thanks @noclone !)
  • examples: Added a complete Qml examples (thanks @noclone !)
  • examples: Added a complete Fltk examples (thanks @noclone !)
  • examples: Added C example (thanks @noclone !)
  • examples: Added Java example (thanks @noclone !)

For F3D packagers:

  • Removed compatibility with VTK <= v9.2.6. VTK v9.3.0 is the new minimum version.
  • Added F3D_BINDINGS_C CMake option to build the C bindings, no dependencies

For Web viewer users:

  • Added support for gaussian splatting
  • Added console support
  • Improved color theme

Many thanks to our returning contributors for this release, they are the life of this community!
@exbluesbreaker @skusel @Ni-g-3l @snoyer @ArchiePayne

Thanks to our contributors for this release!
@Hy-LeTuan @vincenzonetti @iommu @arcticsixxx @Samarthi @pravvvv

Thanks to our packagers that help F3D reach a wider audience!
AndnoVember @kylosus @kevinsmia1939 @yurivict @bcdarwin @svenstaro @mzf-guest @papoteur-mga @berolinux @topazus @thierry-FreeBSD @xiota @alerque @chenrui333 daviddavid @kazzarin @StarsbySea @cho-m @adisbladis @Aleksanaa @pbsds @DimStar77 @AngryPenguinPL @strophy @SokolovValy @xiota @UnownPlain @Saijin-Naib

Credits

  • Hairy Monkey by @Ni-g-3l
  • Cave Wall HDR by Greg Zaal

v3.4.1-RC1

07 Jan 15:40
e74048e

Choose a tag to compare

v3.4.1-RC1 Pre-release
Pre-release
v3.4.1-RC1

v3.4.0

05 Jan 21:36
bb0702a

Choose a tag to compare

Please use v3.4.1

v3.4.0-RC2

03 Jan 21:24
b911ac9

Choose a tag to compare

v3.4.0-RC2 Pre-release
Pre-release
v3.4.0-RC2

v3.4.0-RC1

02 Jan 12:07
9781171

Choose a tag to compare

v3.4.0-RC1 Pre-release
Pre-release
v3.4.0-RC1
0