github f3d-app/f3d v3.5.0

latest release: nightly
23 days ago

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

Details

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.

Don't miss a new f3d release

NewReleases is sending notifications on new releases.