[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-79361":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},79361,"TriSplat","ziplab\u002FTriSplat","ziplab","TriSplat: Simulation-Ready Feed-Forward 3D Scene Reconstruction","http:\u002F\u002Flhmd.top\u002Ftrisplat",null,"Python",307,19,4,1,0,6,33,204,31,3.9,"MIT License",false,"main",[26,27,28],"feed-forward-reconstruction","novel-view-synthesis","triangle-splattiing","2026-06-12 02:03:50","\u003Ch1 align=\"center\">TriSplat: Simulation-Ready Feed-Forward 3D Scene Reconstruction\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.26115\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPaper-B31B1B?style=for-the-badge&logo=arxiv&logoColor=white\" alt=\"Paper\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flhmd.top\u002Ftrisplat\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProject%20Page-000000?style=for-the-badge&logo=googlechrome&logoColor=white\" alt=\"Project Page\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fziplab\u002FTriSplat\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCode-181717?style=for-the-badge&logo=github&logoColor=white\" alt=\"Code\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Flhmd\u002FTriSplat\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FModels-FFD21E?style=for-the-badge&logo=huggingface&logoColor=black\" alt=\"Models\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Flhmd.top\u002F\">Weijie Wang\u003C\u002Fa>\u003Csup>1,*\u003C\u002Fsup> &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FpuLangMu\">Zimu Li\u003C\u002Fa>\u003Csup>1,*\u003C\u002Fsup> &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fchuan-10.github.io\u002F\">Jinchuan Shi\u003C\u002Fa>\u003Csup>1\u003C\u002Fsup> &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fsteve-zeyu-zhang.github.io\u002F\">Zeyu Zhang\u003C\u002Fa>\u003Csup>1\u003C\u002Fsup> &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fbotaoye.github.io\u002F\">Botao Ye\u003C\u002Fa>\u003Csup>2,3\u003C\u002Fsup> \u003Cbr \u002F>\n  \u003Ca href=\"https:\u002F\u002Fpeople.inf.ethz.ch\u002F~pomarc\u002F\">Marc Pollefeys\u003C\u002Fa>\u003Csup>2,4\u003C\u002Fsup> &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fdonydchen.github.io\u002F\">Donny Y. Chen\u003C\u002Fa>\u003Csup>5\u003C\u002Fsup> &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fbohanzhuang.github.io\u002F\">Bohan Zhuang\u003C\u002Fa>\u003Csup>1\u003C\u002Fsup> &nbsp;\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Csup>1\u003C\u002Fsup>Zhejiang University &nbsp; &nbsp;\n  \u003Csup>2\u003C\u002Fsup>ETH Zurich &nbsp; &nbsp;\n  \u003Csup>3\u003C\u002Fsup>ETH AI Center &nbsp; &nbsp;\n  \u003Csup>4\u003C\u002Fsup>Microsoft &nbsp; &nbsp;\n  \u003Csup>5\u003C\u002Fsup>Monash University\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Flhmd.top\u002Ftrisplat\u002Fassets\u002Fimages\u002Fteaser.jpg\" alt=\"TriSplat teaser\" width=\"100%\">\n\u003C\u002Fp>\n\nTriSplat is a feed-forward 3D reconstruction model that predicts simulation-ready triangle meshes from sparse, unposed images. Unlike Gaussian-splatting pipelines that require post-hoc mesh extraction, TriSplat directly predicts oriented triangle primitives, camera poses, point maps, and appearance attributes in one forward pass. We train on RealEstate10K and DL3DV, and evaluate zero-shot generalization on ScanNet with RE10K-trained models.\n\n## Method\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Flhmd.top\u002Ftrisplat\u002Fassets\u002Ffigures\u002Fpipeline2.png\" alt=\"TriSplat pipeline\" width=\"100%\">\n\u003C\u002Fp>\n\nGiven sparse input views, TriSplat predicts dense local point maps, triangle attributes, camera poses, and optional intrinsics. Point-map geometry anchors triangle orientation through geometry normals, a learned normal refiner, and a monocular-normal bootstrap. A differentiable triangle rasterizer renders RGB, depth, and normals, while mesh export only needs opacity filtering, winding correction, and duplicate-vertex merging.\n\n## Installation\n\nCreate the environment:\n\n```bash\nconda create -y -n trisplat python=3.10\nconda activate trisplat\npip install --upgrade pip\n```\n\nInstall PyTorch and Python dependencies:\n\n```bash\npip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 \\\n  --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu118\npip install -r requirements.txt --no-build-isolation\n```\n\nBuild CUDA extensions:\n\n```bash\nbash scripts\u002Fenv\u002Frebuild_extensions.sh\n```\n\nDownload initialization weights used by the model:\n\n```bash\nmkdir -p pretrained_weights\nwget -O pretrained_weights\u002Fpi3.safetensors \\\n  https:\u002F\u002Fhuggingface.co\u002Fyyfz233\u002FPi3\u002Fresolve\u002Fmain\u002Fmodel.safetensors\nwget -O pretrained_weights\u002Fomnidata_dpt_normal_v2.ckpt \\\n  'https:\u002F\u002Fzenodo.org\u002Frecords\u002F10447888\u002Ffiles\u002Fomnidata_dpt_normal_v2.ckpt?download=1'\n```\n\n## Models\n\nDownload released TriSplat checkpoints from [lhmd\u002FTriSplat](https:\u002F\u002Fhuggingface.co\u002Flhmd\u002FTriSplat):\n\n```bash\nmkdir -p checkpoints\nwget -O checkpoints\u002Fre10k_trisplat.ckpt \\\n  https:\u002F\u002Fhuggingface.co\u002Flhmd\u002FTriSplat\u002Fresolve\u002Fmain\u002Fre10k_trisplat.ckpt\nwget -O checkpoints\u002Fdl3dv_trisplat.ckpt \\\n  https:\u002F\u002Fhuggingface.co\u002Flhmd\u002FTriSplat\u002Fresolve\u002Fmain\u002Fdl3dv_trisplat.ckpt\n```\n\n## Datasets\n\nPacked `.torch` datasets default to:\n\n```text\ndata\u002Fre10k\ndata\u002Fdl3dv\n```\n\nYou can also set:\n\n```bash\nexport RE10K_ROOT=\"$PWD\u002Fdata\u002Fre10k\"\nexport DL3DV_ROOT=\"$PWD\u002Fdata\u002Fdl3dv\"\n```\n\nSee [data\u002FREADME.md](data\u002FREADME.md) for dataset layout and conversion notes.\n\n## Training\n\nTrain on RealEstate10K:\n\n```bash\nbash scripts\u002Ftrain\u002Ftrain_re10k.sh --gpus 0,1,2,3,4,5,6,7 --wandb-mode offline\n```\n\nTrain on DL3DV:\n\n```bash\nbash scripts\u002Ftrain\u002Ftrain_dl3dv.sh --gpus 0,1,2,3,4,5,6,7 --wandb-mode offline\n```\n\nExtra arguments after `--` are passed to Hydra. Use `--ckpt` to resume or initialize from a checkpoint.\n\n## Evaluation\n\nEvaluate and render RealEstate10K meshes:\n\n```bash\nbash scripts\u002Feval\u002Feval_re10k_mesh.sh \\\n  --ckpt checkpoints\u002Fre10k_trisplat.ckpt \\\n  --data-root \"$RE10K_ROOT\"\n```\n\nEvaluate and render DL3DV meshes:\n\n```bash\nbash scripts\u002Feval\u002Feval_dl3dv_mesh.sh \\\n  --ckpt checkpoints\u002Fdl3dv_trisplat.ckpt \\\n  --data-root \"$DL3DV_ROOT\"\n```\n\n## Simulation\n\nTriSplat exports ordinary triangle meshes, so the output can be opened directly by common graphics and simulation tools. The evaluation scripts above write per-scene meshes under:\n\n```text\noutputs\u002F\u003Ceval_root>\u002F\u003Crun_name>\u002F\u003Cscene>\u002Fmesh\u002FDIRECT_triangle_mesh.ply\noutputs\u002F\u003Ceval_root>\u002F\u003Crun_name>\u002F\u003Cscene>\u002Fmesh\u002FDIRECT_triangle_mesh.off\noutputs\u002F\u003Ceval_root>\u002F\u003Crun_name>\u002F\u003Cscene>\u002Fmesh\u002FDIRECT_triangle_mesh_post.ply\noutputs\u002F\u003Ceval_root>\u002F\u003Crun_name>\u002F\u003Cscene>\u002Fmesh\u002FDIRECT_triangle_mesh_post.off\n```\n\nThe `_post` mesh is the default rendering and simulation output. It applies connected-component cleanup to the direct mesh, keeping the largest components and removing small disconnected floaters, unreferenced vertices, and degenerate triangles. For example, after running `scripts\u002Feval\u002Feval_re10k_mesh.sh`, use:\n\n```bash\nls outputs\u002Fre10k_mesh_eval\u002Fre10k_mesh_eval\u002F*\u002Fmesh\u002FDIRECT_triangle_mesh_post.ply\n```\n\nThe exported `_post.ply` mesh is vertex-colored and can be imported into [Blender](https:\u002F\u002Fwww.blender.org\u002F), [Open3D](https:\u002F\u002Fwww.open3d.org\u002F), [Isaac Sim](https:\u002F\u002Fdeveloper.nvidia.com\u002Fisaac\u002Fsim), [Unity](https:\u002F\u002Funity.com\u002F), or [PyBullet](https:\u002F\u002Fpybullet.org\u002F) as a static triangle mesh. For simulation, use the `.ply` mesh for visual geometry and generate a collision mesh in your simulator if needed; for example, simplify or convex-decompose it before rigid-body simulation when the raw mesh is too dense.\n\n## Citation\n\nIf you find this repository useful, please cite:\n\n```bibtex\n@article{wang2026trisplat,\n  title={TriSplat: Simulation-Ready Feed-Forward 3D Scene Reconstruction},\n  author={Wang, Weijie and Li, Zimu and Shi, Jinchuan and Zhang, Zeyu and Ye, Botao and Pollefeys, Marc and Chen, Donny Y. and Zhuang, Bohan},\n  journal={arXiv preprint arXiv:2605.26115},\n  year={2026}\n}\n```\n\n## Acknowledgements\n\nThis codebase builds on open-source work including [YoNoSplat](https:\u002F\u002Fgithub.com\u002Fjustimyhxu\u002FYoNoSplat), [MVSplat](https:\u002F\u002Fgithub.com\u002Fdonydchen\u002Fmvsplat), [pixelSplat](https:\u002F\u002Fgithub.com\u002Fdcharatan\u002Fpixelsplat), [CroCo](https:\u002F\u002Fgithub.com\u002Fnaver\u002Fcroco), [DINOv2](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2), [Omnidata](https:\u002F\u002Fgithub.com\u002FEPFL-VILAB\u002Fomnidata), [3D Gaussian Splatting](https:\u002F\u002Fgithub.com\u002Fgraphdeco-inria\u002Fgaussian-splatting), and [Triangle Splatting](https:\u002F\u002Fgithub.com\u002Ftrianglesplatting\u002Ftriangle-splatting).\n","TriSplat 是一个前馈3D场景重建模型，能够从稀疏、未定位的图像中预测出可用于模拟的三角网格。其核心功能包括直接预测定向三角形原语、相机姿态、点图和外观属性，整个过程仅需一次前向传递即可完成，无需像高斯散射管线那样进行后处理的网格提取。该技术特别适用于需要快速且高质量3D重建的应用场景，如虚拟现实环境构建、游戏开发或建筑设计等。项目基于Python开发，并在RealEstate10K和DL3DV数据集上进行了训练，在ScanNet上展示了良好的零样本泛化能力。",2,"2026-06-11 03:57:46","CREATED_QUERY"]