🗣 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
Details
For F3D users:
- Created an Android version
- Moved macOS binary package to macOS 14 framework.
- Added support for writing multiple images when using
--outputwith a file containing animations (thanks @noclone @snoyer !) - Added a
--display-depthoption to display the depth image (thanks @AoGao-Kedoka !) - Added a
--checkerboardoption to display a checkerboard texture to check UVs (thanks @Ni-g-3l !) - Added a
--scene-hierarchyoption and interactive bind (Shift+H) to show a hierarchy widget that let enabling/disabling actor visibility (thanks @Medyan-Naser @snoyer !) - Added a
--normal-glyphsoption to show normals as arrow glyphs (thanks @ArchiePayne !) - Added a
--notificationsoption 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-awareoption to rescale font automatically on HiDPI screens (Windows only) (thanks @davidwuluetang !) - Added a
webifcplugin to add support for .ifc files (thanks @noclone !) - Added a
pdalplugin 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_keyframecommand (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-coloroption to set the font color (thanks @JaimeNA !) - Added a
print_config_infocommand to print info about the current config file in use (thanks @atharvRsharma @NaniNoni !) - Added new arguments to
set_cameracommand:back,bottom, andleft(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-trackballin 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
sceneaddandaddBufferAPI - 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_coloroption to set the font color (thanks @JaimeNA !) - Added
render.effect.display_depthoption to display the depth image (thanks @AoGao-Kedoka !) - Added
model.checkerboard.enableoption to display a checkerboard texture to check UVs (thanks @Ni-g-3l !) - Added a
ui.scene_hierarchyoption to show a hierarchy widget that let enabling/disabling actor visibility (thanks @Medyan-Naser @snoyer !) - Added a
model.normal_glyphs.enableoption to show normals as arrow glyphs (thanks @ArchiePayne !) - Added a
ui.font_coloroption to set the font color (thanks @JaimeNA !) - Added a
interactor.styleoption to control interaction style, including2dmode (thanks @noclone !) - Added a
ui.notifications.enableandui.notifications.show_bindingsoptions to enable/disable notifications and bindings, which shows a widget whenever an interactive bind is pressed - Added a
ui.dpi_awareoption to rescale font automatically on HiDPI screens (Windows only) (thanks @davidwuluetang !) - Deprecated
interactor.trackballoption in favor ofinteractor.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 withF3D_MODULE_CLIPCMake option, no effect for now - Added a new optional dependency:
web-ifc, to enable withF3D_PLUGIN_BUILD_WEBIFCCMake option, add thewebifcplugin - Added a new optional dependency:
pdal, through VTK IOPDAL module, to enable withF3D_PLUGIN_BUILD_PDALCMake option, add thepdalplugin - 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.




