[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73302":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":16,"starSnapshotCount":16,"syncStatus":32,"lastSyncTime":33,"discoverSource":34},73302,"brush","ArthurBrussee\u002Fbrush","ArthurBrussee","3D Reconstruction for all","",null,"Rust",4706,264,63,23,0,4,24,597,20,29.27,"Apache License 2.0",false,"main",[26,27,28],"gaussian-splatting","graphics","reconstruction","2026-06-12 02:03:11","# Brush\n\n\u003Cvideo src=https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F5756967a-846c-44cf-bde9-3ca4c86f1a4d>A video showing various Brush features and scenes\u003C\u002Fvideo>\n\n\u003Cp align=\"center\">\n  \u003Ci>\n    Massive thanks to \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@gradeeterna\">@GradeEterna\u003C\u002Fa> for the beautiful scenes\n  \u003C\u002Fi>\n\u003C\u002Fp>\n\nBrush is a 3D reconstruction engine using [Gaussian splatting](https:\u002F\u002Frepo-sam.inria.fr\u002Ffungraph\u002F3d-gaussian-splatting\u002F). It works on a wide range of systems: **macOS\u002Fwindows\u002Flinux**, **AMD\u002FNvidia\u002FIntel** cards, **Android**, and in a **browser**. To achieve this, it uses WebGPU compatible tech and the [Burn](https:\u002F\u002Fgithub.com\u002Ftracel-ai\u002Fburn) machine learning framework.\n\nMachine learning for real time rendering has tons of potential, but most ML tools don't work well with it: Rendering requires realtime interactivity, usually involve dynamic shapes & computations, don't run on most platforms, and it can be cumbersome to ship apps with large CUDA deps. Brush on the other hand produces simple dependency free binaries, runs on nearly all devices, without any setup.\n\n[**Try the web demo** \u003Cimg src=\"https:\u002F\u002Fcdn-icons-png.flaticon.com\u002F256\u002F888\u002F888846.png\" alt=\"chrome logo\" width=\"24\"\u002F>\n](https:\u002F\u002Farthurbrussee.github.io\u002Fbrush-demo)\n_NOTE: Only works on Chrome and Edge. Firefox and Safari are hopefully supported soon)_\n\n[![](https:\u002F\u002Fdcbadge.limes.pink\u002Fapi\u002Fserver\u002Fhttps:\u002F\u002Fdiscord.gg\u002FTbxJST2BbC)](https:\u002F\u002Fdiscord.gg\u002FTbxJST2BbC)\n\n# Features\n\n## Training\n\nBrush takes in COLMAP data or datasets in the Nerfstudio format. Training is fully supported natively, on mobile, and in a browser. While training you can interact with the scene and see the training dynamics live, and compare the current rendering to input views as the training progresses.\n\nIt also supports masking images:\n- Images with transparency. This will force the final splat to match the transparency of the input.\n- A folder of images called 'masks'. This ignores parts of the image that are masked out.\n\n## Viewer\nBrush also works well as a splat viewer, including on the web. It can load .ply & .compressed.ply files. You can stream in data from a URL (for a web app, simply append `?url=`).\n\nBrush also can load .zip of splat files to display them as an animation, or a special ply that includes delta frames (see [cat-4D](https:\u002F\u002Fcat-4d.github.io\u002F) and [Cap4D](https:\u002F\u002Ffelixtaubner.github.io\u002Fcap4d\u002F)!).\n\n## CLI\nBrush can be used as a CLI. Run `brush --help` to get an overview. Every CLI command can work with `--with-viewer` which also opens the UI, for easy debugging.\n\n## Rerun\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ff679fec0-935d-4dd2-87e1-c301db9cdc2c\n\nWhile training, additional data can be visualized with the excellent [rerun](https:\u002F\u002Frerun.io\u002F). To install rerun on your machine, please follow their [instructions](https:\u002F\u002Frerun.io\u002Fdocs\u002Fgetting-started\u002Finstalling-viewer). Open the .\u002Fbrush_blueprint.rbl in the viewer for best results.\n\n## Building Brush\nFirst install rust 1.88+. You can run tests with `cargo test --all`. Brush uses the wonderful [rerun](https:\u002F\u002Frerun.io\u002F) for additional visualizations while training, run `cargo install rerun-cli` if you want to use it.\n\n### Windows\u002FmacOS\u002FLinux\nUse `cargo run --release` from the workspace root to make an optimized build. Use `cargo run` to run a debug build. \n\n### Web\nBrush can be compiled to WASM. Run `npm run dev` to start the demo website using Next.js, see the web directory in app\u002Fbrush-app\u002Fweb.\n\nBrush uses [`wasm-pack`](https:\u002F\u002Fdrager.github.io\u002Fwasm-pack\u002F) to build the WASM bundle. You can also use it without a bundler, see [wasm-pack's documentation](https:\u002F\u002Fdrager.github.io\u002Fwasm-pack\u002Fbook\u002F).\n\nWebGPU is still an upcoming standard, and as such, only Chrome 134+ on Windows and macOS is currently supported.\n\n### Android\n\nAs a one time setup, make sure you have the Android SDK & NDK installed.\n- Check if ANDROID_NDK_HOME and ANDROID_HOME are set\n- Add the Android target to rust `rustup target add aarch64-linux-android`\n- Install cargo-ndk to manage building a lib `cargo install cargo-ndk`\n\nEach time you change the rust code, run\n- `cargo ndk -t arm64-v8a -o crates\u002Fbrush-app\u002Fapp\u002Fsrc\u002Fmain\u002FjniLibs\u002F build`\n- Nb:  Nb, for best performance, build in release mode. This is separate\n  from the Android Studio app build configuration.\n- `cargo ndk -t arm64-v8a -o crates\u002Fbrush-app\u002Fapp\u002Fsrc\u002Fmain\u002FjniLibs\u002F  build --release`\n\nYou can now either run the project from Android Studio (Android Studio does NOT build the rust code), or run it from the command line:\n```\n.\u002Fgradlew build\n.\u002Fgradlew installDebug\nadb shell am start -n com.splats.app\u002F.MainActivity\n```\n\nYou can also open this folder as a project in Android Studio and run things from there. Nb: Running in Android Studio does _not_ rebuild the rust code automatically.\n\n## Benchmarks\n\nRendering and training are generally faster than gsplat. You can run benchmarks of some of the kernels using `cargo bench`.\n\n# Acknowledgements\n\n[**gSplat**](https:\u002F\u002Fgithub.com\u002Fnerfstudio-project\u002Fgsplat), for their reference version of the kernels\n\n**Peter Hedman, George Kopanas & Bernhard Kerbl**, for the many discussions & pointers.\n\n**The Burn team**, for help & improvements to Burn along the way\n\n**Raph Levien**, for the [original version](https:\u002F\u002Fgithub.com\u002Fgooglefonts\u002Fcompute-shader-101\u002Fpull\u002F31) of the GPU radix sort.\n\n**GradeEterna**, for feedback and their scenes.\n\n# Disclaimer\n\nThis is *not* an official Google product. This repository is a forked public version of [the google-research repository](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fgoogle-research\u002Ftree\u002Fmaster\u002Fbrush_splat)\n","Brush 是一个面向所有用户的3D重建引擎，使用高斯点云技术实现。它支持多种操作系统（macOS、Windows、Linux）、各类显卡（AMD、NVIDIA、Intel）以及Android和浏览器环境，通过采用WebGPU兼容技术和Burn机器学习框架，确保了广泛的兼容性和便捷性。核心功能包括从COLMAP数据或Nerfstudio格式的数据集中进行训练，并且在训练过程中可以实时交互查看场景变化；同时作为一个高效的点云查看器，能够加载.ply等格式的文件并展示动画效果。适用于需要跨平台3D内容创建与展示的应用场景，如虚拟现实、增强现实项目开发及教育演示等。",2,"2026-06-11 03:44:56","high_star"]