π£ Join our community:
F3D Community is welcoming to users and developers alike!
Ask questions, gets involved and starts contributing in a beginner-friendly environment.
β€οΈ 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!
π‘ Added IFC support
F3D now support .ifc format thanks to web-ifc library!
With thumbnails too of course.
π° 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
βοΈ Added support for many point cloud formats
View your point clouds easily easilly, .las, .laz and many more.
πͺ UI improvements
Notifications on each change: β
Scene hierarchy UI to select the part you want to show: β
Searchbar on top of the cheatsheet: β
π Complete changelog
For F3D users:
- Created an Android version
- Moved macOS binary package to macOS 14 framework. macOS intel binary package is not tested manually anymore
- 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.