2.5.0 Release
Before release:
- [x] Force fetch origin remote tag with
git fetch origin --tags --force - [x] Write and format release notes from the ongoing changelog, including contributors and packagers
Release Split :
- [x] Create, review and merge a MR from
masterbranch intorelease: https://github.com/f3d-app/f3d/compare/release...master
Release Candidates :
- [x] Commit, review and merge a
v2.5.0-RC2version change in https://github.com/f3d-app/f3dCMakeLists.txtandpyproject.tomlin thereleasebranch - [x] Tag and push to https://github.com/f3d-app/f3d:
git tag v2.5.0-RC2 -m v2.5.0-RC2 - [x] Trigger a release build using https://github.com/f3d-app/f3d-superbuild actions with
v2.5.0-RC2F3D version, superbuildmainbranch and prerelease publishtrue - [x] Download the prerelease from https://github.com/f3d-app/f3d/releases
- [x] Locally test the prerelease on Linux
- [ ] Locally test the prerelease on macOS (Intel)
- [ ] Locally test the prerelease on macOS (Silicon)
- [x] Locally test the prerelease on Windows
- [x] Locally test the python wheels on Linux
- [ ] Locally test the python wheels on macOS (Intel)
- [x] Locally test the python wheels on Windows
- [ ] If it fails, fix the issues in
releasebranch, copy this paragraph and incrementN - [ ] Else proceed to the next part
Release :
- [ ] Commit, review and merge
v2.5.0version change in https://github.com/f3d-app/f3dCMakeLists.txt,pyproject.tomland the multipledoxygen\conf.pyin thereleasebranch - [ ] Tag
v2.5.0and push it to https://github.com/f3d-app/f3d:git tagv2.5.0 -mv2.5.0 - [ ] Commit, review and merge adding
X.Y.Zin https://github.com/f3d-app/f3d-superbuildversions.cmakein themainbranch - [ ] Tag
v2.5.0and push it to https://github.com/f3d-app/f3d-superbuild:git tagv2.5.0 -mv2.5.0 - [ ] Merge F3D release into master: https://github.com/f3d-app/f3d/compare/master...release
- [ ] Trigger a release build using https://github.com/f3d-app/f3d-superbuild actions with
v2.5.0F3D version,v2.5.0sb version and prerelease publish true - [ ] Finalize release note and add them to the release
- [ ] Release
- [ ] Update download links and update changelog in https://github.com/f3d-app/f3d
doc - [ ] Communicate on discord
- [ ] Communicate on reddit
- [ ] Communicate on hackernews
- [ ] Communicate on linkedin
- [ ] Move all issue from current milestone to next milestone, close current roadmap issue and open a next roadmap issue
- [ ] Update
doc/dev/ROADMAPS_AND_RELEASES.mdfor next release - [ ] Create an issue for updating dependencies in CI and superbuild
- [ ] Update
.github/ISSUE_TEMPLATE/new_release.mdin https://github.com/f3d-app/f3d if needed
Linux testing protocol:
- Install F3D-X.Y.Z-RCN-Linux-x86_64-raytracing system wide
f3d testing/data/cow.vtp-> check render, orientation, press R and check raytracingf3d testing/data/f3d.stp-> check render, orientationf3d /path/to/any/new/file.format-> check renderrm -rf ~/.cache/thumbnailspcmanfm(or another supported file manager)- Check that all supported files in testing/data have a generated thumbnails, especially for new file formats if any
- Double click on supported file in testing/data, especially for new file formats if any and check it opens in F3D
- Drag&Drop cow.vtp, Drag&Drop palermo_park.hdr, check render
cd examples/libf3d && mkdir build && cd build && cmake ../ && make./cpp/check-engine/check-engine./cpp/render-interact/render-interact testing/data/cow.vtp
macOS testing protocol:
- Install F3D-X.Y.Z-RCN-macOS-x86_64-raytracing.dmg
- Double click on cow.vtp, check render and orientation, press R and check raytracing (Intel only)
- Double click on f3d.stp, check render and orientation
- Double click on any new supported file.format, check render
- Check all supported file in testing/data directory in finder have the f3d mark, if not, check that "open with" suggest F3D
- Drag&Drop cow.vtp, Drag&Drop palermo_park.hdr, check render
Windows testing protocol:
- Install F3D-X.Y.Z-RCN-Windows-x86_64-raytracing.exe, add F3D to path for all users
- Start -> Disk Cleanup -> select thumbnails -> Ok -> Delete Files
- Open testing/data directory in file manager
- Wait for thumbnails to be generated
- Check that every supported file has a generated thumbnails, except .tif.
- Check that every supported file has a small "f3d" mark, for those that don't check that "Open with" -> "Use another app" suggest F3D.
- Double click on cow.vtp, check render and orientation, press R and check raytracing
- Double click on f3d.stp, check render and orientation
- Double click on any new supported file format, check render
cd examples\libf3d && mkdir build && cd build && cmake ../ && cmake --build . --config Release.\cpp\check-engine\Release\check-engine.\cpp\render-interact\Release\render-interact testing\data\cow.vtp
Python testing protocol:
- Use a venv or make sure f3d is not installed in your python environment
- pip install f3d==X.Y.Z-RCN
- python
import f3d
eng = f3d.Engine(f3d.Window.NATIVE)
eng.loader.load_geometry("/path/to/cow.vtp")
eng.window.render()
eng.interactor.start()
2.5.0 Release
https://github.com/f3d-app/f3d/assets/3129530/49801f18-7b6a-493f-9d5a-6e08ffb11952
🗣 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 looking for sponsors!
We have some expanses mainly related to github and web hosting bills, any help to cover the cost would be highly appreciated.
To thank you, we'll offer preferential support and vote on next feature and bugfix as soon as you start sponsoring.
Much love to our sponsors for this release @parkerstafford @kidharb @Ramalama2 :heart:
🌐 F3D Web
F3D is now available as 3D web viewer!
Thanks to webassembly, you can now use F3D in the comfort of your browser. F3D Web is a simple yet complete application based on the f3d javascript package available at https://f3d.app/web
https://github.com/f3d-app/f3d/assets/3129530/a9b98587-5591-43d7-9b3a-3ffbdcdf91e5
🖼️ Rendering Improvements
Rendering improvements have been added!
F3D now uses Khronos' "PBR Neutral" tone mapping for nicer renderings:
Before:
Now:
You can also now specify your own custom post-processing shader for even fancier effects, using --final-shader option, here using a "negative" shader.
📸 Screenshot
Do you use F3D interactively and wants to take a screenshot at any point?
Just press F12 and a screenshot will be saved on disk.
F3D will name and number the image so you can save many screenshots as you want but you can specify your own filename template using --screenshot-filename if you prefer.
https://github.com/f3d-app/f3d/assets/3129530/974222b9-4562-43a6-b05d-11427a2abe11
📝 Complete changelog
For F3D users:
- Added a Webassembly version available online: https://f3d.app/web
- Added a "neutral" tone mapping feature
- Added an screenshot feature when pressing F12, with its dedicated option,
--screenshot-filename(thanks @snoyer!) - Added a
--final-shaderoption to customize post-processing. - Added a
--grid-coloroption to set the color of the grid - Added a
--animation-progressoption to control if the animation progress bar should be shown (thanks @spevnev!) - Added a
--backface-typeoption to control backface visibility (thanks @KeflerExe!) - Added a concept of filename template for saving screenshots and outputs (thanks @snoyer!)
- Added native menus for macOS
- Improved documentation all around (thanks @kidharb @kathleenhang @Nokse22 @vikaskok @spevnev!)
- Reworked config file logic to avoid duplicating of the default config (thanks @snoyer!)
- Fixed a long standing issue with FBX skinning animation
- Fixed zsh completion (thanks @allemangD!)
- Fixed an opacity blending issue
- Fixed a crash when dropping a HDRI while playing an animation
- Fixed a focus issue on macOS
- Fixed a high DPI issue on Windows
For libf3d users:
- Added an API to control camera pan and zoom (thanks @snoyer!)
- Added a tkinter python example (thanks @JPLost!)
- Exposed log level in the python API (thanks @snoyer!)
For F3D packagers:
- Fixed compatibility with CMake 3.29.1
- Fixed compatibility with OCCT 7_8_0
- Fixed build reproducability by removing a path from the binary
Thanks to all 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 Thanks to all our contributors for this release: @allemangD @snoyer @kathleenhang @shambhupatil @JPLost @KeflerExe @kidharb @vikaskok @spevnev @Meakk @mwestphal @jubalh
Credits:
- Sir Frog - Chrono Trigger by Adrian Carter
- Castel St. Angelo Roof by Andreas Mischok
- Heartfelt shader by BigWIngs
- DamagedHelmet by ctxwing and theblueturtle_
2.5.0-RC1 Linux validated
2.5.0-RC1 Windows validated
2.5.0-RC1 Linux python wheels validated
2.5.0-RC1 Windows python wheels validated
2.5.0-RC1 MacOS -> Everything Perfect :-)
@Ramalama2 I suppose you tested arm64 ?
Validated on macOS arm64.
Double click on cow.vtp, check render and orientation, press R and check raytracing (Intel only)
Works fine on arm64, you can remove (Intel only) from the release testing process.
@Ramalama2 I suppose you tested arm64 ?
Yeah i did. Like Meakk said, but going further, is the intel version necessary at all for MacOS? The thing is, those Laptops are gotten too Old. Its probably helpful for a Hackintosh to have an x86 Version, but Hackintosh is almost dead either and usually those People have nothing todo with Contructions/Designing anyway.
I dont see a reason to remove these builds until they are End Of Life
Posted on /r/webdev, /r/programming, /r/shaders, /r/GraphicsProgramming
F3D package in Flatpak has been update in https://github.com/flathub/io.github.f3d_app.f3d/pull/77
f3d 2.5.0 has been built in Fedora 40 and rawhide, https://bodhi.fedoraproject.org/updates/?packages=f3d