Releases: f3d-app/f3d
v3.4.1
🗣 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 @CriticalPoint
⚗️ New Alembic Features!
F3D is now able to read Xform animations and Curves from the alembic format!
🇨 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_framecommand (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+YandCtrl+Zand 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
noneCLI 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-modein favor of simply--anti-aliasing - Deprecated
--point-sprites-typein 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_colorto control the color of the axis widget and grid (thanks @snoyer @vincenzonetti !) - Added a
interactor::requestStopAPI for asynchronous loop stopping (thanks @snoyer !) - Added a
logAPI 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_CCMake 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
Nightly
v3.4.1-RC1
v3.4.1-RC1
v3.4.0
v3.4.0-RC2
v3.4.0-RC2
v3.4.0-RC1
v3.4.0-RC1
v3.3.0
🗣 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!
Much love to our sponsors for this release ❤️
NGIZeroCore | LambdaTest-Inc | OpenDroneMap
@jgod @exbluesbreaker @parkerlreed @Saijin-Naib @CriticalPoint @Ramalama2
🌐 New Website
We just published a new website with versionned documentation, a new slick design and even a blog!
Please check it out: https://f3d.app
📦 Web 3D viewer
Our web viewer just released! https://f3d.app/viewer
You can even build you own web based viewer thanks to our npm package:
https://www.npmjs.com/package/f3d
🔘 UI improvements
We just keep improving the UI!
Check out the new cheatsheet with a nice responsive design, as well as autocompletion in the
interactive console.
📝 Complete changelog
For F3D users:
- Created a F3D web application based on WebAssembly: https://f3d.app/viewer
- BEHAVIOR CHANGE: Added a CLI option
--recursive-dir-addto control if directory should be added recursively, off by default - Complete rework of the cheatsheet with for a nicer, cleaner look (thanks @Ni-g-3l !)
- [Linux] Added support for using F3D offscreen without GLX lib being present on the syste
- Added support for identifying non-supported files and not loading them at all
- Added support for skipping unsupported files when loading multiple files
- Added
--remove-empty-file-groupsto control if scene without files should be removed - Added
--watchsupport for yet-to-exists files - Added a
remove_current_file_groupcommand - Added
--axes-gridCLI option to show grid axes (thanks @ArchiePayne !) - Added an bind
Ctrl+Xto control the visibility of grid axes (thanks @YashSaini99 !) - Added proper parsing for transform2D options (thanks @samoncrief !)
- Added
--multi-file-regexCLI option to group files based on their names (thanks @snoyer !) - Added autocompletion in interactive console
- Added a
helpcommand to print information about commands - Added support for SPZ v3 format (thanks @Ni-g-3l !)
- Added
--backdrop-opacityto control the UI backdrop opacity (thanks @armoredvortex !) - Added support for .webp image and textures
- Added support for GroupSkin for .mdl format (thanks @yashnator !)
- Added temporal anti aliasing support
--antialiasing-mode=taa(thanks @AoGao-Kedoka !) - Improve dropzone visuals (thanks @Medyan-Naser !)
- Improved
print_scene_infooutput (thanks @snoyer !) - Improved UI consistency (thanks @Ni-g-3l !)
- Improved rendering performance slightly
- Reworked the website from scratch which now support documentation versionning (thanks @mariami-zedginidze @snoyer @Ni-g-3l @chirag-droid !)
- Removed support for comments in interactive console for better color parsing (thanks @Ni-g-3l !)
- Fixed and improved many documentations issues (thanks @snoyer )
- Fixed an issue with
--watchwhen file is failing to load - Fixed missing frame in .mdl animations (thanks @yashnator !)
- Fixed a potential crash when graphic libraries are not found
- Fixed an issue with the scalar bar not being continuous (thanks @rrhxde !)
For libf3d users:
- Created a npm package to implement libf3d app for the web
- Added event forwarding in order to implement interactions easily with external engines
- Added
ui.drop_zone.custom_bindsoption to control the bindings visible in drop zone (thanks @Medyan-Naser !) - Added
ui.backdrop.opacityto control the UI backdrop opacity (thanks @armoredvortex !)
For F3D packagers:
- F3D does not use libglx directly anymore when using VTK > 9.5
- F3D v3.3.0 will be the last version of F3D supporting vtk v9.2.6, VTK v9.3.1 will be required for the next release
Many thanks to our returning contributors for this release, they are the life of this community!
@samoncrief @Ni-g-3l @Medyan-Naser @snoyer
Thanks to our contributors for this release!
@ArchiePayne @YashSaini99 @armoredvortex @yashnator @AoGao-Kedoka @mariami-zedginidze @chirag-droid @rrhxde
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
- Character Fight by lowPolyBoy
- HDRI by Greg Zaal
v3.3.0-RC6
v3.3.0-RC6
v3.3.0-RC5
v3.3.0-RC5
v3.3.0-RC4
v3.3.0-RC4


