{"id":27635813,"url":"https://github.com/windingwind/seal-3d","last_synced_at":"2026-03-12T07:34:39.453Z","repository":{"id":184351108,"uuid":"602008231","full_name":"windingwind/seal-3d","owner":"windingwind","description":"The official implementation of the paper Seal-3D: Interactive Pixel-Level Editing for Neural Radiance Fields, the first interactive pixel-level NeRF editing tool.","archived":false,"fork":false,"pushed_at":"2023-10-23T03:31:15.000Z","size":1249,"stargazers_count":166,"open_issues_count":3,"forks_count":8,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-23T20:35:10.838Z","etag":null,"topics":["3d","editing","iccv2023","instant-ngp","interactive","nerf","tensorf"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/windingwind.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-02-15T09:56:46.000Z","updated_at":"2025-02-03T01:16:45.000Z","dependencies_parsed_at":"2023-07-28T04:00:46.763Z","dependency_job_id":"3b031cb4-37d2-4c3e-b827-54d195f69c2c","html_url":"https://github.com/windingwind/seal-3d","commit_stats":null,"previous_names":["windingwind/seal-3d"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/windingwind/seal-3d","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/windingwind%2Fseal-3d","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/windingwind%2Fseal-3d/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/windingwind%2Fseal-3d/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/windingwind%2Fseal-3d/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/windingwind","download_url":"https://codeload.github.com/windingwind/seal-3d/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/windingwind%2Fseal-3d/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30418166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T07:30:13.030Z","status":"ssl_error","status_checked_at":"2026-03-12T07:29:54.885Z","response_time":114,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","editing","iccv2023","instant-ngp","interactive","nerf","tensorf"],"created_at":"2025-04-23T20:27:37.426Z","updated_at":"2026-03-12T07:34:39.439Z","avatar_url":"https://github.com/windingwind.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Seal-3D: Interactive Pixel-Level Editing for Neural Radiance Fields\n\n![teaser](https://github.com/windingwind/seal-3d/assets/33902321/15e4898e-7658-4e46-8d90-96401340f4b2)\n\nThe official implementation of the paper [Seal-3D: Interactive Pixel-Level Editing for Neural Radiance Fields](), the first interactive pixel-level NeRF editing tool.\n\nAccepted by ICCV 2023.\n\n[Project Page](https://windingwind.github.io/seal-3d/) ｜ \n[Paper](https://openaccess.thecvf.com/content/ICCV2023/html/Wang_Seal-3D_Interactive_Pixel-Level_Editing_for_Neural_Radiance_Fields_ICCV_2023_paper.html) ｜ \n[ArXiv](https://arxiv.org/abs/2307.15131) ｜ \n[Code](https://github.com/windingwind/seal-3d)\n\nThis project is built on [ashawkey/torch-ngp](https://github.com/ashawkey/torch-ngp)'s NGP and TensoRF implementation.\n\n## Installation\n\nTo find more details about the development environment setup, please refer to [torch-ngp#install](https://github.com/ashawkey/torch-ngp#install).\n\n```bash\ngit clone --recursive https://github.com/windingwind/seal-3d.git\ncd seal-3d\n```\n\n### Install with pip\n\n```bash\npip install -r requirements.txt\n\n# (optional) install the tcnn backbone\npip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch\n```\n\n### Install with conda\n\n```bash\nconda env create -f environment.yml\nconda activate torch-ngp\n```\n\n### Build extension (optional)\n\nBy default, we use [`load`](https://pytorch.org/docs/stable/cpp_extension.html#torch.utils.cpp_extension.load) to build the extension at runtime.\nHowever, this may be inconvenient sometimes.\nTherefore, we also provide the `setup.py` to build each extension:\n\n```bash\n# install all extension modules\nbash scripts/install_ext.sh\n\n# if you want to install manually, here is an example:\ncd raymarching\npython setup.py build_ext --inplace # build ext only, do not install (only can be used in the parent directory)\npip install . # install to python path (you still need the raymarching/ folder, since this only install the built extension.)\n```\n\n## Dataset\n\nWe use the same data format as instant-ngp. Please download and put them under `./data`.\n\nTo find more details about the supported dataset, please refer to [torch-ngp#usage](https://github.com/ashawkey/torch-ngp#usage).\n\n## Usage\n\n### Code Structure\n\nBased on the implementation of the repo, we slightly modified the files in `nerf` (the NGP implementation) and `tensoRF` (the TensoRF implementation) to fit our needs.\n\nThe main entrances are `main_SealNeRF.py` (NGP backbone) and `main_SealTensoRF.py` (TensoRF backbone).\n\nIn `SealNeRF`:\n\n- `trainer.py` defines the trainer class dynamically depending on the backbone and character (student/teacher).\n\n- `network.py` defines the network class dynamically depending on the backbone and character (student/teacher).\n\n- `provider.py` defines the dataset update strategy under our two-stage local-global teacher-student framework.\n\n- `seal_utils.py` defines the proxy functions we proposed in the paper.\n\n- `renderer.py` defines how the proxy functions are applied to our pipeline.\n\n### Train\n\nFollow the steps below to apply the editing operation on an existing NeRF model:\n\n1. Train an NGP/TensoRF model following the instructions of [torch-ngp#usage](https://github.com/ashawkey/torch-ngp#usage). For example:\n\n```bash\n# NGP backbone, Lego\npython main_nerf.py data/nerf_synthetic/lego/ --workspace exps/lego_ngp -O --bound 1.0 --scale 0.8 --dt_gamma 0\n```\n\n2. Train Seal3D on the model you get in the previous step (headless mode).\n\n```bash\n# Headless mode, bounding shape editing, NGP backbone, Lego\n# pretraining_epochs: pretraining stage epochs\n# extra_epochs: total epochs (pretraining + finetuning)\n# pretraining_*_point_step: pretraining sample step\n# ckpt: the input student model checkpoint\n# teacher_workspace: teacher model workspace\n# teacher_ckpt: teacher model checkpoint\n# seal_config: the editing config directory used in headless mode. the config file is $seal_config/seal.json.\n# eval_interval \u0026 eval_count: control eval behavior\npython main_SealNeRF.py data/nerf_synthetic/lego/\\\n    --workspace exps/lego_ngp_bbox -O --bound 1.0 --scale 0.8 --dt_gamma 0\\\n    --pretraining_epochs 100 --extra_epochs 150\\\n    --pretraining_local_point_step 0.005 --pretraining_surrounding_point_step -1\\\n    --pretraining_lr 0.05 --ckpt exps/lego_ngp/checkpoints/ngp_ep0300.pth\\\n    --teacher_workspace exps/lego_ngp --teacher_ckpt exps/lego_ngp/checkpoints/ngp_ep0300.pth\\\n    --seal_config data/seal/lego_bbox/\\\n    --eval_interval 100 --eval_count 10\n```\n\nThe `seal_config` files used by examples in the paper can be downloaded from [Google Drive link](https://drive.google.com/file/d/1PWTtO9EqOas5Qh-sRccYVRiJO6wgHoN7/view?usp=sharing). The explanation for the parameters of `seal_config` can be found in the corresponding class of the proxy function in [SealNeRF/seal_utils](SealNeRF/seal_utils.py).\n\nThe full argument list and descriptions can be found in the corresponding entrance file (`main_*.py`).\n\nTo start in GUI mode, use `--gui`.\n\n\u003e Currently, GUI mode supports *Color*, *Anchor*, *Brush*, and *Texture* editing.\n\n## BibTeX\n\n```bibtex\n@misc{wang2023seal3d,\n      title={Seal-3D: Interactive Pixel-Level Editing for Neural Radiance Fields}, \n      author={Xiangyu Wang and Jingsen Zhu and Qi Ye and Yuchi Huo and Yunlong Ran and Zhihua Zhong and Jiming Chen},\n      year={2023},\n      eprint={2307.15131},\n      archivePrefix={arXiv},\n      primaryClass={cs.CV}\n}\n```\n\n## Acknowledgement\n\nUse this code under the MIT License. No warranties are provided. Keep the laws of your locality in mind!\n\nPlease refer to [torch-ngp#acknowledgement](https://github.com/ashawkey/torch-ngp#acknowledgement) for the acknowledgment of the original repo.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwindingwind%2Fseal-3d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwindingwind%2Fseal-3d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwindingwind%2Fseal-3d/lists"}