Manyfold
Self-hosted digital asset manager for 3D print files
Alternative to: thingiverse, myminifactory, cults3d
v0.110.0
2025-05-19Because of some medical issues (don’t get old, folks), it’s been an unusually long time between releases. But, that just means that this is a big one! And oh boy, it’s a big one.
Downloads
First off, we’ve got improvements to downloads; you now get a visual hint that your download zipfile will need to be created, and when you click, it’ll update the button state when it’s ready. There are also options for site admins to proactively create ZIP downloads and set how long they’re kept; if you’re running a site with lots of downloading, you might want them instantly available, at the cost of disk space of course!
Faster page loading
Next, we’ve got some new client-side technology that enables the live updates; using Hotwire, using your instance should now feel much faster, and act more like a client-side app. That also means that you’ll see updates to models live as they happen; if you rescan, or upload some files, they’ll appear in the page without you having to reload.
New “original” rendering mode
Manyfold is seeing use not just in 3D printing, but in the game development world, and in that case, showing an untextured model isn’t really right. Our new “original” rendering mode uses the textures and materials from the file itself, so complex formats like glTF, FBX, and more, will show the model as it really should look, while falling back to the usual preferences for models that don’t have any of that stuff. This also comes with indexing of .bin files for glTF, and preview rendering for DRACO, FBX, and 3DS.
GCODE previews
Rest assured we’ve not forgotten about print though; we’ve also added rendering for GCode files!
Better search
Finally, there’s a whole new search syntax, with powerful boolean operations, the ability to search specific fields, and more. Under the search box you’ll see a new “search syntax” link, which will bring up a help box that explains it all. Search now also includes model descriptions and captions, and even filenames!
What’s Changed
✨ New Features ✨
- Show download readiness state on download buttons by @Floppy in https://github.com/manyfold3d/manyfold/pull/4121
- Add options to admin UI for pregenerating downloads, and how long to keep them. by @Floppy in https://github.com/manyfold3d/manyfold/pull/4126
- Add file URLs that include the original filename by @Floppy in https://github.com/manyfold3d/manyfold/pull/4151
- Add support for .bin files (just as basic octet streams) by @Floppy in https://github.com/manyfold3d/manyfold/pull/4153
- Add setting to render the actual materials defined in a file by @Floppy in https://github.com/manyfold3d/manyfold/pull/4152
- Show filename on cards in model view by @Floppy in https://github.com/manyfold3d/manyfold/pull/4158
- DRACO compression support for loading glTF files by @Floppy in https://github.com/manyfold3d/manyfold/pull/4159
- Index and render DRACO drc files by @Floppy in https://github.com/manyfold3d/manyfold/pull/4160
- Add render support for 3DS, FBX and GCode files by @Floppy in https://github.com/manyfold3d/manyfold/pull/4162
- Automatically refresh model page when download becomes ready by @Floppy in https://github.com/manyfold3d/manyfold/pull/4164
- More powerful search syntax by @Floppy in https://github.com/manyfold3d/manyfold/pull/4177
- Match model notes and captions in searches by @Floppy in https://github.com/manyfold3d/manyfold/pull/4179
- Match model filenames for search by @Floppy in https://github.com/manyfold3d/manyfold/pull/4181
- Add search syntax help modal by @Floppy in https://github.com/manyfold3d/manyfold/pull/4186
🐛 Bug Fixes 🐛
- Fx potential nil error in ArchiveDownloadService by @Floppy in https://github.com/manyfold3d/manyfold/pull/4120
- Fix links in creator and collection cards by @Floppy in https://github.com/manyfold3d/manyfold/pull/4130
- Adjust CSP to allow the turbo progress bar to be displayed by @Floppy in https://github.com/manyfold3d/manyfold/pull/4133
- Various UI fixes for Turbo by @Floppy in https://github.com/manyfold3d/manyfold/pull/4139
- Fix upload initialization under Turbo by @Floppy in https://github.com/manyfold3d/manyfold/pull/4145
- Fix relative-path asset loading by @Floppy in https://github.com/manyfold3d/manyfold/pull/4155
- Fix bin file indexing by @Floppy in https://github.com/manyfold3d/manyfold/pull/4154
- Fix loading by filename by @Floppy in https://github.com/manyfold3d/manyfold/pull/4161
- Ensure special characters work in searches by @Floppy in https://github.com/manyfold3d/manyfold/pull/4173
- Use DISTINCT ON for joining tables during search on PostgreSQL by @Floppy in https://github.com/manyfold3d/manyfold/pull/4189
- Fix where clause in ModelSearchService on postgres by @Floppy in https://github.com/manyfold3d/manyfold/pull/4191
- Reconnect tag select UI on morph by @Floppy in https://github.com/manyfold3d/manyfold/pull/4194
- Fix random search test failure caused by fake captions by @Floppy in https://github.com/manyfold3d/manyfold/pull/4201
🌍 Sustainability & Performance 🌍
- Enhanced page performance using Turbo page morphing by @Floppy in https://github.com/manyfold3d/manyfold/pull/4131
- Live refreshing for model, file, creator and collection pages using Turbo by @Floppy in https://github.com/manyfold3d/manyfold/pull/4132
🛠️ Other Improvements 🛠️
- Change from ViewComponents to Phlex by @Floppy in https://github.com/manyfold3d/manyfold/pull/4119
- Move download archive creation into background job by @Floppy in https://github.com/manyfold3d/manyfold/pull/4122
- Reorganise queues by priority by @Floppy in https://github.com/manyfold3d/manyfold/pull/4127
- Remove unnecessary explicit render? check for phlex components by @Floppy in https://github.com/manyfold3d/manyfold/pull/4140
- Add a helper for rendering collections of Phlex components by @Floppy in https://github.com/manyfold3d/manyfold/pull/4144
- Complete refactoring of frontend code to use Stimulus controllers by @Floppy in https://github.com/manyfold3d/manyfold/pull/4150
- Set turbo stream priority to critical by @Floppy in https://github.com/manyfold3d/manyfold/pull/4156
- Automatically find new files in subfolders on model check if there aren’t any nested models by @Floppy in https://github.com/manyfold3d/manyfold/pull/4157
- Better search query parsing, including “quoted terms for multiword matching” by @Floppy in https://github.com/manyfold3d/manyfold/pull/4169
- Minor search refactoring by @Floppy in https://github.com/manyfold3d/manyfold/pull/4175
- Remove direct dependency on ransack by @Floppy in https://github.com/manyfold3d/manyfold/pull/4182
- Remove parslet-based search syntax by @Floppy in https://github.com/manyfold3d/manyfold/pull/4183
- Alias “notes” internal field to “description” in search to match UI by @Floppy in https://github.com/manyfold3d/manyfold/pull/4187
- Display error if search syntax was bad by @Floppy in https://github.com/manyfold3d/manyfold/pull/4188
- Add Fediverse search syntax to help modal by @Floppy in https://github.com/manyfold3d/manyfold/pull/4200
Full Changelog: https://github.com/manyfold3d/manyfold/compare/v0.109.2…v0.110.0