Là một công cụ AI, manyfold3d/manyfold đã đạt 2.1k sao trên GitHub, ngôn ngữ Ruby. A self-hosted digital asset manager for 3d print files.
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
Manyfold is an open source, self-hosted web application for managing a collection of 3d models, particularly focused on 3d printing.
Visit manyfold.app for more details, installation instructions, and user and administration guides! Or, to have a go straight away, try our demo at try.manyfold.app.
Help and Support
There are a few routes to get help:
GitHub issues is the best place to report bugs.
Live chat to the "team" on Matrix (an open Discord/Slack-like chat system).
Get in touch with our social media presence in the Fediverse (Mastodon, etc).
And, if you want to contribute financially to development efforts...
Developer Documentation
Manyfold is open source software, and we encourage contributions! If you want to get involved, follow the guidance below, which explains how to get up and running. Then take a look at our good first issue tag for tasks that might suit newcomers to the codebase, or take a look at our development roadmap.
Application architecture
The application is built in Ruby on Rails, and tries to follow the best practices of that framework wherever possible. If you're not familiar with Rails, their Getting Started guide is a good first introduction.
In general, Manyfold is a server-side app that uses plain old HTTP requests. We don't have any code using XHR, Websockets, or other more interactive comms yet (though could do in future).
The application consists of the application server itself, plus a background job runner using Sidekiq for asynchronous tasks.
There are a few other major components that we build with:
Bootstrap 5 provides the frontend CSS / JS
THREE.js (via TypeScript) is used for the client-side 3D rendering
Mittsu, a Ruby port of THREE.js, is used for server-side 3D code
PostgreSQL is the production database, though sqlite3 is used in dev
Running locally
To run the app yourself, you'll need the following installed:
Ruby 3.4
Bundler 2.6+
Node.js 24.18.1 (and run corepack enable)
Yarn 3.8+
Foreman or another Procfile runner
libarchive (for upload support)
imagemagick (for image thumbnail generation)
ngrok (for ActivityPub development)
assimp (for model file analysis)
To run the application once you've cloned this repo, you should be able to just run bin/dev; that should set up the database, perform migrations, install dependencies, and then make the application available at http://127.0.0.1:3214.
If you want to configure optional features, set the appropriate environment variables in a file called .env.development.local. See env.example for a template file. Note that the required environment variables in the documentation are not needed in development mode, due to the use of SQLite instead of PostgreSQL.
ngrok
Running bin/dev also expects to be able to start a pre-configured ngrok tunnel called "manyfold", to enable ActivityPub federation in development. If you don't want to use this, you can remove the line from Procfile.dev, though please don't commit it!
To configure the tunnel, add this to your ngrok config file:
To simplify the development environment setup, Manyfold includes a devcontainer configuration. This allows you to use Visual Studio Code's Remote - Containers extension to develop inside a container.
Prerequisites
Docker installed on your machine
Visual Studio Code with the Remote - Containers extension
Steps
Clone the repository:
git clone https://github.com/manyfold3d/manyfold.git
cd manyfold
Open the repository in Visual Studio Code:
code .
When prompted by Visual Studio Code, click on "Reopen in Container". This will build the devcontainer and open the project inside it.
Once the container is running, you can use the integrated terminal in Visual Studio Code to run commands as usual.
Coding standards
We use Rubocop to monitor adherence to coding standards in Ruby code. We use StandardRB rules along with some other rulesets for specific libraries and frameworks.
You can run the linter with bundle exec rubocop.
We also have linters for ERB and Typescript files. You can run these with: bundle exec erb_lint --lint-all and yarn run lint respectively.
Code linting is automatically performed by our GitHub Actions test runners, but if you set up Husky, it will also execute as a pre-commit hook.
Testing
We want to produce well-tested code; it's not 100%, but we aim to increase test coverage with each new bit of code.
You can run the test suite as a one off with the command bundle exec rake, or you can start a continuous test runner with bundle exec guard that will automatically run tests as you code.
Tests are run automatically when pushed to our repository using GitHub Actions.
Generation of screenshots for the documentation is made with system specs and is not run by default.
To generate screenshots, set DOC_SCREENSHOT=true:
# All specs and documentation
DOC_SCREENSHOT=true bundle exec rspec
# Only documentation specs
DOC_SCREENSHOT=true bundle exec rspec -t @documentation
Internationalisation & Translation
Manyfold uses Rails' I18n framework to handle all text content.
You can check the validity of locale files with bundle exec i18n-tasks health. This is also run as part of our test pipeline, so will be enforced on new code.
Translations are also available in client-side Javascript; they are built from the Rails locale files as part of the asset pipeline, using i18n-js. If you need to run an export manually, do bundle exec i18n export -c config/i18n-js.yml.
We are using Translation.io to manage translations into other languages. If you want to help out on that, sign up on the site and send us username on a GitHub issue for the language you're interested in.
To synchronise with Translation.io, run rake translation:clobber_and_sync:{locale} where {locale} is a supported code, such as de.
Building Docker images
The application is distributed as a multi-platform docker image (built by Depot); see our Docker Compose instructions for full details.
If you want to build your own version of the Docker image, you can do so by running docker build -f docker/default.dockerfile . in the root directory of this repository.
Funding
This project is funded through NGI0 Entrust, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.
This project is also funded by you! Make a donation to support long-term development at OpenCollective:
Popularity
Down the bottom because they're cool, but not important, here are some stats!
manyfold3d/manyfold thuộc nhóm AI Tools trên TopGit, cùng 10 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về manyfold3d/manyfold ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/manyfold3d/manyfold là nguồn chính thức.
manyfold3d/manyfold có phải mã nguồn mở không?
Có — manyfold3d/manyfold phát hành theo license AGPL-3.0, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/manyfold3d/manyfold.
manyfold3d/manyfold có trang demo không?
Dự án có trang chủ ở https://manyfold.app. Tab "Readme" ở trang này thường có ảnh chụp và hướng dẫn bắt đầu nhanh.
manyfold3d/manyfold dùng license gì?
manyfold3d/manyfold phát hành theo license AGPL-3.0. Nên mở file LICENSE trên GitHub để xác nhận — license metadata đôi khi lệch với thực tế dự án.
manyfold3d/manyfold là gì?
manyfold3d/manyfold (manyfold3d/manyfold) là dự án Ruby trên GitHub. Theo mô tả gốc: A self-hosted digital asset manager for 3d print files.
Vì sao manyfold3d/manyfold được xếp vào nhóm AI Tools?
TopGit xếp manyfold3d/manyfold vào nhóm AI Tools dựa trên GitHub topics và mô tả của repo (gắn thẻ: "3d-printing", "dam", "digital-asset-management"). Việc phân loại dựa trên metadata thật của repo, không phải đoán theo cảm tính biên tập.
Đọc đầy đủ README ở tab phía trên.
manyfold có đáng để bạn bỏ thời gian?
ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về manyfold.