[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-NVlabs--instant-ngp":3,"tool-NVlabs--instant-ngp":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",159267,2,"2026-04-17T11:29:14",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":77,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":112,"forks":113,"last_commit_at":114,"license":115,"difficulty_score":10,"env_os":116,"env_gpu":117,"env_ram":118,"env_deps":119,"category_tags":128,"github_topics":130,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":143,"updated_at":144,"faqs":145,"releases":175},8617,"NVlabs\u002Finstant-ngp","instant-ngp","Instant neural graphics primitives: lightning fast NeRF and more","instant-ngp 是一款由 NVIDIA 研发的高效开源工具，旨在以闪电般的速度训练和渲染神经图形基元。它核心支持神经辐射场（NeRF）、有向距离函数（SDF）、神经图像及神经体积等多种技术。传统 NeRF 模型训练往往耗时数小时甚至数天，而 instant-ngp 通过引入多分辨率哈希编码技术，并结合专为 CUDA 优化的 tiny-cuda-nn 框架，将这一过程大幅缩短至秒级。例如，用户仅需不到 5 秒即可基于照片重建出高质量的狐狸 3D 场景，并能实时自由漫游查看细节。\n\n该工具主要解决了三维重建与神经渲染领域长期存在的训练速度慢、交互性差的痛点，让实时探索复杂 3D 场景成为可能。它不仅适合计算机视觉研究人员和开发者进行算法验证与二次开发，也面向设计师和普通技术爱好者开放。软件内置了友好的交互式图形界面，支持 VR 模式预览、相机路径编辑、自动网格提取（将 NeRF\u002FSDF 转换为 3D 模型）以及快照分享等丰富功能。无论是想快速体验前沿 AI 绘图技术的用户，还是需要高效工作流的专业人士，instant-ngp 都能提供流畅且强大的支持，极大地降低了高质量 3D 内容","instant-ngp 是一款由 NVIDIA 研发的高效开源工具，旨在以闪电般的速度训练和渲染神经图形基元。它核心支持神经辐射场（NeRF）、有向距离函数（SDF）、神经图像及神经体积等多种技术。传统 NeRF 模型训练往往耗时数小时甚至数天，而 instant-ngp 通过引入多分辨率哈希编码技术，并结合专为 CUDA 优化的 tiny-cuda-nn 框架，将这一过程大幅缩短至秒级。例如，用户仅需不到 5 秒即可基于照片重建出高质量的狐狸 3D 场景，并能实时自由漫游查看细节。\n\n该工具主要解决了三维重建与神经渲染领域长期存在的训练速度慢、交互性差的痛点，让实时探索复杂 3D 场景成为可能。它不仅适合计算机视觉研究人员和开发者进行算法验证与二次开发，也面向设计师和普通技术爱好者开放。软件内置了友好的交互式图形界面，支持 VR 模式预览、相机路径编辑、自动网格提取（将 NeRF\u002FSDF 转换为 3D 模型）以及快照分享等丰富功能。无论是想快速体验前沿 AI 绘图技术的用户，还是需要高效工作流的专业人士，instant-ngp 都能提供流畅且强大的支持，极大地降低了高质量 3D 内容创作的技术门槛。","# Instant Neural Graphics Primitives ![](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fworkflows\u002FCI\u002Fbadge.svg)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_265e0bc9f560.gif\" height=\"342\"\u002F> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_926e38e40ad1.gif\" height=\"342\"\u002F>\n\nEver wanted to train a NeRF model of a fox in under 5 seconds? Or fly around a scene captured from photos of a factory robot? Of course you have!\n\nHere you will find an implementation of four __neural graphics primitives__, being neural radiance fields (NeRF), signed distance functions (SDFs), neural images, and neural volumes.\nIn each case, we train and render a MLP with multiresolution hash input encoding using the [__tiny-cuda-nn__](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Ftiny-cuda-nn) framework.\n\n> __Instant Neural Graphics Primitives with a Multiresolution Hash Encoding__  \n> [Thomas Müller](https:\u002F\u002Ftom94.net), [Alex Evans](https:\u002F\u002Fresearch.nvidia.com\u002Fperson\u002Falex-evans), [Christoph Schied](https:\u002F\u002Fresearch.nvidia.com\u002Fperson\u002Fchristoph-schied), [Alexander Keller](https:\u002F\u002Fresearch.nvidia.com\u002Fperson\u002Falex-keller)  \n> _ACM Transactions on Graphics (__SIGGRAPH__), July 2022_  \n> __[Project page](https:\u002F\u002Fnvlabs.github.io\u002Finstant-ngp)&nbsp;\u002F [Paper](https:\u002F\u002Fnvlabs.github.io\u002Finstant-ngp\u002Fassets\u002Fmueller2022instant.pdf)&nbsp;\u002F [Video](https:\u002F\u002Fnvlabs.github.io\u002Finstant-ngp\u002Fassets\u002Fmueller2022instant.mp4)&nbsp;\u002F [Presentation](https:\u002F\u002Ftom94.net\u002Fdata\u002Fpublications\u002Fmueller22instant\u002Fmueller22instant-gtc.mp4)&nbsp;\u002F [Real-Time Live](https:\u002F\u002Ftom94.net\u002Fdata\u002Fpublications\u002Fmueller22instant\u002Fmueller22instant-rtl.mp4)&nbsp;\u002F [BibTeX](https:\u002F\u002Fnvlabs.github.io\u002Finstant-ngp\u002Fassets\u002Fmueller2022instant.bib)__\n\nFor business inquiries, please submit the [NVIDIA research licensing form](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fresearch\u002Finquiries\u002F).\n\n\n## Installation\n\nIf you have Windows, download one of the following releases corresponding to your graphics card and extract it. Then, start `instant-ngp.exe`.\n\n- [**RTX 5000 series** and other Blackwell cards](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Freleases\u002Fdownload\u002Fcontinuous\u002FInstant-NGP-for-RTX-5000.zip)\n- [**RTX 3000 & 4000 series, RTX A4000&ndash;A6000**, and other Ampere & Ada cards](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Freleases\u002Fdownload\u002Fcontinuous\u002FInstant-NGP-for-RTX-3000-and-4000.zip)\n- [**RTX 2000 series, Titan RTX, Quadro RTX 4000&ndash;8000**, and other Turing cards](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Freleases\u002Fdownload\u002Fcontinuous\u002FInstant-NGP-for-RTX-2000.zip)\n- [**GTX 1000 series, Titan Xp, Quadro P1000&ndash;P6000**, and other Pascal cards](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Freleases\u002Fdownload\u002Fcontinuous\u002FInstant-NGP-for-GTX-1000.zip)\n\nKeep reading for a guided tour of the application or, if you are interested in creating your own NeRF, watch [the video tutorial](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3TWxO1PftMc) or read the [written instructions](docs\u002Fnerf_dataset_tips.md).\n\nIf you use Linux, or want the [developer Python bindings](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#python-bindings), or if your GPU is not listed above (e.g. Hopper, Volta, or Maxwell generations), you need to [build __instant-ngp__ yourself](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#building-instant-ngp-windows--linux).\n\n\n## Usage\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_662a23863837.png\" width=\"100%\"\u002F>\n\n__instant-ngp__ comes with an interactive GUI that includes many features:\n- [comprehensive controls](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#keyboard-shortcuts-and-recommended-controls) for interactively exploring neural graphics primitives,\n- [VR mode](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#vr-controls) for viewing neural graphics primitives through a virtual-reality headset,\n- saving and loading \"snapshots\" so you can share your graphics primitives on the internet,\n- a camera path editor to create videos,\n- `NeRF->Mesh` and `SDF->Mesh` conversion,\n- camera pose and lens optimization,\n- and many more.\n\n\n### NeRF fox\n\nSimply start `instant-ngp` and drag the `data\u002Fnerf\u002Ffox` folder into the window. Or, alternatively, use the command line:\n\n```sh\ninstant-ngp$ .\u002Finstant-ngp data\u002Fnerf\u002Ffox\n```\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_b5d1930500d2.png\"\u002F>\n\nYou can use __any__ NeRF-compatible dataset, e.g. from [original NeRF](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1JDdLGDruGNXWnM1eqY1FNL9PlStjaKWi), the [SILVR dataset](https:\u002F\u002Fgithub.com\u002FIDLabMedia\u002Flarge-lightfields-dataset), or the [DroneDeploy dataset](https:\u002F\u002Fgithub.com\u002Fnickponline\u002Fdd-nerf-dataset). **To create your own NeRF, watch [the video tutorial](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3TWxO1PftMc) or read the [written instructions](docs\u002Fnerf_dataset_tips.md).**\n\n### SDF armadillo\n\nDrag `data\u002Fsdf\u002Farmadillo.obj` into the window or use the command:\n\n```sh\ninstant-ngp$ .\u002Finstant-ngp data\u002Fsdf\u002Farmadillo.obj\n```\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_57da4996baa5.png\"\u002F>\n\n### Image of Einstein\n\nDrag `data\u002Fimage\u002Falbert.exr` into the window or use the command:\n\n```sh\ninstant-ngp$ .\u002Finstant-ngp data\u002Fimage\u002Falbert.exr\n```\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_879cae2f919e.png\"\u002F>\n\nTo reproduce the gigapixel results, download, for example, [the Tokyo image](https:\u002F\u002Fwww.flickr.com\u002Fphotos\u002Ftrevor_dobson_inefekt69\u002F29314390837) and convert it to `.bin` using the `scripts\u002Fconvert_image.py` script. This custom format improves compatibility and loading speed when resolution is high. Now you can run:\n\n```sh\ninstant-ngp$ .\u002Finstant-ngp data\u002Fimage\u002Ftokyo.bin\n```\n\n\n### Volume renderer\n\nDownload the [nanovdb volume for the Disney cloud](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1SuycSAOSG64k2KLV7oWgyNWyCvZAkafK?usp=sharing), which is derived [from here](https:\u002F\u002Fdisneyanimation.com\u002Fdata-sets\u002F?drawer=\u002Fresources\u002Fclouds\u002F) ([CC BY-SA 3.0](https:\u002F\u002Fmedia.disneyanimation.com\u002Fuploads\u002Fproduction\u002Fdata_set_asset\u002F6\u002Fasset\u002FLicense_Cloud.pdf)). Then drag `wdas_cloud_quarter.nvdb` into the window or use the command:\n\n```sh\ninstant-ngp$ .\u002Finstant-ngp wdas_cloud_quarter.nvdb\n```\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_b7fbb841944f.png\"\u002F>\n\n\n### Keyboard shortcuts and recommended controls\n\nHere are the main keyboard controls for the __instant-ngp__ application.\n\n| Key             | Meaning       |\n| :-------------: | ------------- |\n| WASD            | Forward \u002F pan left \u002F backward \u002F pan right. |\n| Spacebar \u002F C    | Move up \u002F down. |\n| = or + \u002F - or _ | Increase \u002F decrease camera velocity (first person mode) or zoom in \u002F out (third person mode). |\n| E \u002F Shift+E     | Increase \u002F decrease exposure. |\n| Tab             | Toggle menu visibility. |\n| T               | Toggle training. After around two minutes training tends to settle down, so can be toggled off. |\n| { }             | Go to the first\u002Flast training image camera view. |\n| [ ]             | Go to the previous\u002Fnext training image camera view. |\n| R               | Reload network from file. |\n| Shift+R         | Reset camera. |\n| O               | Toggle visualization or accumulated error map. |\n| G               | Toggle visualization of the ground truth. |\n| M               | Toggle multi-view visualization of layers of the neural model. See the paper's video for a little more explanation. |\n| , \u002F .           | Shows the previous \u002F next visualized layer; hit M to escape. |\n| 1-8             | Switches among various render modes, with 2 being the standard one. You can see the list of render mode names in the control interface. |\n\nThere are many controls in the __instant-ngp__ GUI.\nFirst, note that this GUI can be moved and resized, as can the \"Camera path\" GUI (which first must be expanded to be used).\n\nRecommended user controls in __instant-ngp__ are:\n\n* __Snapshot:__ use \"Save\" to save the trained NeRF, \"Load\" to reload.\n* __Rendering -> DLSS:__ toggling this on and setting \"DLSS sharpening\" to 1.0 can often improve rendering quality.\n* __Rendering -> Crop size:__ trim back the surrounding environment to focus on the model. \"Crop aabb\" lets you move the center of the volume of interest and fine tune. See more about this feature in [our NeRF training & dataset tips](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fblob\u002Fmaster\u002Fdocs\u002Fnerf_dataset_tips.md).\n\nThe \"Camera path\" GUI lets you create a camera path for rendering a video.\nThe button \"Add from cam\" inserts keyframes from the current perspective.\nThen, you can render a video `.mp4` of your camera path or export the keyframes to a `.json` file.\nThere is a bit more information about the GUI [in this post](https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fgetting-started-with-nvidia-instant-nerfs\u002F) and [in this video guide to creating your own video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3TWxO1PftMc).\n\n\n### VR controls\n\nTo view the neural graphics primitive in VR, first start your VR runtime. This will most likely be either\n- __OculusVR__ if you have an Oculus Rift or Meta Quest (with link cable) headset, and\n- __SteamVR__ if you have another headset.\n- Any OpenXR-compatible runtime will work.\n\nThen, press the __Connect to VR\u002FAR headset__ button in the __instant-ngp__ GUI and put on your headset.\nBefore entering VR, we **strongly** recommend that you first finish training (press \"Stop training\") or load a pre-trained snapshot for maximum performance.\n\nIn VR, you have the following controls.\n\n| Control                | Meaning       |\n| :--------------------: | ------------- |\n| Left stick \u002F trackpad  | Move |\n| Right stick \u002F trackpad | Turn camera |\n| Press stick \u002F trackpad | Erase NeRF around the hand |\n| Grab (one-handed)      | Drag neural graphics primitive |\n| Grab (two-handed)      | Rotate and zoom (like pinch-to-zoom on a smartphone) |\n\n\n## Building instant-ngp (Windows & Linux)\n\n### Requirements\n\n- An __NVIDIA GPU__; tensor cores increase performance when available. All shown results come from an RTX 3090.\n- A __C++14__ capable compiler. The following choices are recommended and have been tested:\n  - __Windows:__ Visual Studio 2019 or 2022\n  - __Linux:__ GCC\u002FG++ 8 or higher\n- A recent version of __[CUDA](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-toolkit)__. The following choices are recommended and have been tested:\n  - __Windows:__ CUDA 11.5 or higher\n  - __Linux:__ CUDA 10.2 or higher\n- __[CMake](https:\u002F\u002Fcmake.org\u002F) v3.21 or higher__.\n- __(optional) [Python](https:\u002F\u002Fwww.python.org\u002F) 3.8 or higher__ for interactive bindings. Also, run `pip install -r requirements.txt`.\n- __(optional) [OptiX](https:\u002F\u002Fdeveloper.nvidia.com\u002Foptix) 7.6 or higher__ for faster mesh SDF training.\n- __(optional) [Vulkan SDK](https:\u002F\u002Fvulkan.lunarg.com\u002F)__ for DLSS support.\n\n\nIf you are using Debian based Linux distribution, install the following packages\n```sh\nsudo apt-get install build-essential git python3-dev python3-pip libopenexr-dev libxi-dev \\\n                     libglfw3-dev libglew-dev libomp-dev libxinerama-dev libxcursor-dev\n```\n\nAlternatively, if you are using Arch or Arch derivatives, install the following packages\n```sh\nsudo pacman -S cuda base-devel cmake openexr libxi glfw openmp libxinerama libxcursor\n```\n\nWe also recommend installing [CUDA](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-toolkit) and [OptiX](https:\u002F\u002Fdeveloper.nvidia.com\u002Foptix) in `\u002Fusr\u002Flocal\u002F` and adding the CUDA installation to your PATH.\n\nFor example, if you have CUDA 11.4, add the following to your `~\u002F.bashrc`\n```sh\nexport PATH=\"\u002Fusr\u002Flocal\u002Fcuda-11.4\u002Fbin:$PATH\"\nexport LD_LIBRARY_PATH=\"\u002Fusr\u002Flocal\u002Fcuda-11.4\u002Flib64:$LD_LIBRARY_PATH\"\n```\n\n\n### Compilation\n\nBegin by cloning this repository and all its submodules using the following command:\n```sh\n$ git clone --recursive https:\u002F\u002Fgithub.com\u002Fnvlabs\u002Finstant-ngp\n$ cd instant-ngp\n```\n\nThen, use CMake to build the project: (on Windows, this must be in a [developer command prompt](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fcpp\u002Fbuild\u002Fbuilding-on-the-command-line?view=msvc-160#developer_command_prompt))\n```sh\ninstant-ngp$ cmake . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo\ninstant-ngp$ cmake --build build --config RelWithDebInfo -j\n```\n\nIf compilation fails inexplicably or takes longer than an hour, you might be running out of memory. Try running the above command without `-j` in that case.\nIf this does not help, please consult [this list of possible fixes](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#troubleshooting-compile-errors) before opening an issue.\n\nIf the build succeeds, you can now run the code via the `.\u002Finstant-ngp` executable or the `scripts\u002Frun.py` script described below.\n\nIf automatic GPU architecture detection fails, (as can happen if you have multiple GPUs installed), set the `TCNN_CUDA_ARCHITECTURES` environment variable for the GPU you would like to use. The following table lists the values for common GPUs. If your GPU is not listed, consult [this exhaustive list](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-gpus).\n\n| H100 | 40X0 | 30X0 | A100 | 20X0 | TITAN V \u002F V100 | 10X0 \u002F TITAN Xp | 9X0 | K80 |\n|:----:|:----:|:----:|:----:|:----:|:--------------:|:---------------:|:---:|:---:|\n|   90 |   89 |   86 |   80 |   75 |             70 |              61 |  52 |  37 |\n\n\n## Python bindings\n\nAfter you have built __instant-ngp__, you can use its Python bindings to conduct controlled experiments in an automated fashion.\nAll features from the interactive GUI (and more!) have Python bindings that can be easily instrumented.\nFor an example of how the `.\u002Finstant-ngp` application can be implemented and extended from within Python, see `.\u002Fscripts\u002Frun.py`, which supports a superset of the command line arguments that `.\u002Finstant-ngp` does.\n\nIf you would rather build new models from the hash encoding and fast neural networks, consider [__tiny-cuda-nn__'s PyTorch extension](https:\u002F\u002Fgithub.com\u002Fnvlabs\u002Ftiny-cuda-nn#pytorch-extension).\n\nHappy hacking!\n\n\n## Additional resources\n\n- [Getting started with NVIDIA Instant NeRF blog post](https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fgetting-started-with-nvidia-instant-nerfs\u002F)\n- [SIGGRAPH tutorial for advanced NeRF dataset creation](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fon-demand\u002Fsession\u002Fsiggraph2022-sigg22-s-16\u002F).\n\n\n## Frequently asked questions (FAQ)\n\n__Q:__ The NeRF reconstruction of my custom dataset looks bad; what can I do?\n\n__A:__ There could be multiple issues:\n- COLMAP might have been unable to reconstruct camera poses.\n- There might have been movement or blur during capture. Don't treat capture as an artistic task; treat it as photogrammetry. You want _\\*as little blur as possible\\*_ in your dataset (motion, defocus, or otherwise) and all objects must be _\\*static\\*_ during the entire capture. Bonus points if you are using a wide-angle lens (iPhone wide angle works well), because it covers more space than narrow lenses.\n- The dataset parameters (in particular `aabb_scale`) might have been tuned suboptimally. We recommend starting with `aabb_scale=128` and then increasing or decreasing it by factors of two until you get optimal quality.\n- Carefully read [our NeRF training & dataset tips](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fblob\u002Fmaster\u002Fdocs\u002Fnerf_dataset_tips.md).\n\n##\n__Q:__ How can I save the trained model and load it again later?\n\n__A:__ Two options:\n1. Use the GUI's \"Snapshot\" section.\n2. Use the Python bindings `load_snapshot` \u002F `save_snapshot` (see `scripts\u002Frun.py` for example usage).\n\n##\n__Q:__ Can this codebase use multiple GPUs at the same time?\n\n__A:__ Only for VR rendering, in which case one GPU is used per eye. Otherwise, no. To select a specific GPU to run on, use the [CUDA_VISIBLE_DEVICES](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F39649102\u002Fhow-do-i-select-which-gpu-to-run-a-job-on) environment variable. To optimize the _compilation_ for that specific GPU use the [TCNN_CUDA_ARCHITECTURES](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#compilation-windows--linux) environment variable.\n\n##\n__Q:__ How can I run __instant-ngp__ in headless mode?\n\n__A:__ Use `.\u002Finstant-ngp --no-gui` or `python scripts\u002Frun.py`. You can also compile without GUI via `cmake -DNGP_BUILD_WITH_GUI=off ...`\n\n##\n__Q:__ Does this codebase run on [Google Colab](https:\u002F\u002Fcolab.research.google.com\u002F)?\n\n__A:__ Yes. See [this example](.\u002Fnotebooks\u002Finstant_ngp.ipynb) inspired on the notebook created by user [@myagues](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F6#issuecomment-1016397579). Caveat: this codebase requires large amounts of GPU RAM and might not fit on your assigned GPU. It will also run slower on older GPUs.\n\n##\n__Q:__ Is there a [Docker container](https:\u002F\u002Fwww.docker.com\u002F)?\n\n__A:__ Yes. We bundle a [Visual Studio Code development container](https:\u002F\u002Fcode.visualstudio.com\u002Fdocs\u002Fremote\u002Fcontainers), the `.devcontainer\u002FDockerfile` of which you can also use stand-alone. \n\nIf you want to run the container without using VSCode:\n```\ndocker-compose -f .devcontainer\u002Fdocker-compose.yml build instant-ngp\nxhost local:root\ndocker-compose -f .devcontainer\u002Fdocker-compose.yml run instant-ngp \u002Fbin\u002Fbash\n```\nThen run the build commands above as normal.\n\n##\n__Q:__ How can I edit and train the underlying hash encoding or neural network on a new task?\n\n__A:__ Use [__tiny-cuda-nn__'s PyTorch extension](https:\u002F\u002Fgithub.com\u002Fnvlabs\u002Ftiny-cuda-nn#pytorch-extension).\n\n##\n__Q:__ What is the coordinate system convention?\n\n__A:__ See [this helpful diagram](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fdiscussions\u002F153?converting=1#discussioncomment-2187652) by user @jc211.\n\n##\n__Q:__ Why are background colors randomized during NeRF training?\n\n__A:__ Transparency in the training data indicates a desire for transparency in the learned model. Using a solid background color, the model can minimize its loss by simply predicting that background color, rather than transparency (zero density). By randomizing the background colors, the model is _forced_ to learn zero density to let the randomized colors \"shine through\".\n\n##\n__Q:__ How to mask away NeRF training pixels (e.g. for dynamic object removal)?\n\n__A:__ For any training image `xyz.*` with dynamic objects, you can provide a `dynamic_mask_xyz.png` in the same folder. This file must be in PNG format, where _non-zero_ pixel values indicate masked-away regions.\n\n## Troubleshooting compile errors\n\nBefore investigating further, make sure all submodules are up-to-date and try compiling again.\n```sh\ninstant-ngp$ git submodule sync --recursive\ninstant-ngp$ git submodule update --init --recursive\n```\nIf __instant-ngp__ still fails to compile, update CUDA as well as your compiler to the latest versions you can install on your system. It is crucial that you update _both_, as newer CUDA versions are not always compatible with earlier compilers and vice versa.\nIf your problem persists, consult the following table of known issues.\n\n**\\*After each step, delete the `build` folder and let CMake regenerate it before trying again.\\***\n\n| Problem | Resolution |\n|---------|------------|\n| __CMake error:__ No CUDA toolset found \u002F CUDA_ARCHITECTURES is empty for target \"cmTC_0c70f\" | __Windows:__ the Visual Studio CUDA integration was not installed correctly. Follow [these instructions](https:\u002F\u002Fgithub.com\u002Fmitsuba-renderer\u002Fmitsuba2\u002Fissues\u002F103#issuecomment-618378963) to fix the problem without re-installing CUDA. ([#18](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F18)) |\n| | __Linux:__ Environment variables for your CUDA installation are probably incorrectly set. You may work around the issue using ```cmake . -B build -DCMAKE_CUDA_COMPILER=\u002Fusr\u002Flocal\u002Fcuda-\u003Cyour cuda version>\u002Fbin\u002Fnvcc``` ([#28](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F28)) |\n| __CMake error:__ No known features for CXX compiler \"MSVC\" | Reinstall Visual Studio & make sure you run CMake from a developer shell. Make sure you delete the build folder before building again. ([#21](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F21)) |\n| __Compile error:__ A single input file is required for a non-link phase when an outputfile is specified | Ensure there no spaces in the path to __instant-ngp__. Some build systems seem to have trouble with those. ([#39](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F39) [#198](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F198)) |\n| __Compile error:__ undefined references to \"cudaGraphExecUpdate\" \u002F identifier \"cublasSetWorkspace\" is undefined | Update your CUDA installation (which is likely 11.0) to 11.3 or higher. ([#34](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F34) [#41](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F41) [#42](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F42)) |\n| __Compile error:__ too few arguments in function call | Update submodules with the above two `git` commands. ([#37](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F37) [#52](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F52)) |\n| __Python error:__ No module named 'pyngp' | It is likely that CMake did not detect your Python installation and therefore did not build `pyngp`. Check CMake logs to verify this. If `pyngp` was built in a different folder than `build`, Python will be unable to detect it and you have to supply the full path to the import statement. ([#43](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F43)) |\n\nIf you cannot find your problem in the table, try searching [the discussions board](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fdiscussions) and [the issues area](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues?q=is%3Aissue) for help. If you are still stuck, please [open an issue](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002Fnew) and ask for help.\n\n## Thanks\n\nMany thanks to [Jonathan Tremblay](https:\u002F\u002Fresearch.nvidia.com\u002Fperson\u002Fjonathan-tremblay) and [Andrew Tao](https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fauthor\u002Fatao\u002F) for testing early versions of this codebase and to Arman Toorians and Saurabh Jain for the factory robot dataset.\nWe also thank [Andrew Webb](https:\u002F\u002Fgithub.com\u002Fgrey-area) for noticing that one of the prime numbers in the spatial hash was not actually prime; this has been fixed since.\n\nThis project makes use of a number of awesome open source libraries, including:\n* [tiny-cuda-nn](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Ftiny-cuda-nn) for fast CUDA networks and input encodings\n* [tinyexr](https:\u002F\u002Fgithub.com\u002Fsyoyo\u002Ftinyexr) for EXR format support\n* [tinyobjloader](https:\u002F\u002Fgithub.com\u002Ftinyobjloader\u002Ftinyobjloader) for OBJ format support\n* [stb_image](https:\u002F\u002Fgithub.com\u002Fnothings\u002Fstb) for PNG and JPEG support\n* [Dear ImGui](https:\u002F\u002Fgithub.com\u002Focornut\u002Fimgui) an excellent immediate mode GUI library\n* [Eigen](https:\u002F\u002Feigen.tuxfamily.org\u002Findex.php?title=Main_Page) a C++ template library for linear algebra\n* [pybind11](https:\u002F\u002Fgithub.com\u002Fpybind\u002Fpybind11) for seamless C++ \u002F Python interop\n* and others! See the `dependencies` folder.\n\nMany thanks to the authors of these brilliant projects!\n\n## License and Citation\n\n```bibtex\n@article{mueller2022instant,\n    author = {Thomas M\\\"uller and Alex Evans and Christoph Schied and Alexander Keller},\n    title = {Instant Neural Graphics Primitives with a Multiresolution Hash Encoding},\n    journal = {ACM Trans. Graph.},\n    issue_date = {July 2022},\n    volume = {41},\n    number = {4},\n    month = jul,\n    year = {2022},\n    pages = {102:1--102:15},\n    articleno = {102},\n    numpages = {15},\n    url = {https:\u002F\u002Fdoi.org\u002F10.1145\u002F3528223.3530127},\n    doi = {10.1145\u002F3528223.3530127},\n    publisher = {ACM},\n    address = {New York, NY, USA},\n}\n```\n\nCopyright © 2022, NVIDIA Corporation. All rights reserved.\n\nThis work is made available under the Nvidia Source Code License-NC. Click [here](LICENSE.txt) to view a copy of this license.\n","# 即时神经图形基元 ![](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fworkflows\u002FCI\u002Fbadge.svg)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_265e0bc9f560.gif\" height=\"342\"\u002F> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_926e38e40ad1.gif\" height=\"342\"\u002F>\n\n你是否曾想过在不到5秒内训练出一只狐狸的NeRF模型？或者在由工厂机器人照片捕捉的场景中自由穿梭？当然，你一定有过这样的想法！\n\n在这里，你将找到四种__神经图形基元__的实现：神经辐射场（NeRF）、符号距离函数（SDF）、神经图像和神经体积。在每种情况下，我们都使用[__tiny-cuda-nn__](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Ftiny-cuda-nn)框架，通过多分辨率哈希输入编码来训练和渲染一个多层感知机（MLP）。\n\n> __具有多分辨率哈希编码的即时神经图形基元__  \n> [托马斯·穆勒](https:\u002F\u002Ftom94.net), [亚历克斯·埃文斯](https:\u002F\u002Fresearch.nvidia.com\u002Fperson\u002Falex-evans), [克里斯托夫·希德](https:\u002F\u002Fresearch.nvidia.com\u002Fperson\u002Fchristoph-schied), [亚历山大·凯勒](https:\u002F\u002Fresearch.nvidia.com\u002Fperson\u002Falex-keller)  \n> _ACM 计算机图形学汇刊 (__SIGGRAPH__), 2022年7月_  \n> __[项目页面](https:\u002F\u002Fnvlabs.github.io\u002Finstant-ngp)&nbsp;\u002F [论文](https:\u002F\u002Fnvlabs.github.io\u002Finstant-ngp\u002Fassets\u002Fmueller2022instant.pdf)&nbsp;\u002F [视频](https:\u002F\u002Fnvlabs.github.io\u002Finstant-ngp\u002Fassets\u002Fmueller2022instant.mp4)&nbsp;\u002F [演示文稿](https:\u002F\u002Ftom94.net\u002Fdata\u002Fpublications\u002Fmueller22instant\u002Fmueller22instant-gtc.mp4)&nbsp;\u002F [实时演示](https:\u002F\u002Ftom94.net\u002Fdata\u002Fpublications\u002Fmueller22instant\u002Fmueller22instant-rtl.mp4)&nbsp;\u002F [BibTeX](https:\u002F\u002Fnvlabs.github.io\u002Finstant-ngp\u002Fassets\u002Fmueller2022instant.bib)__\n\n如需商务合作，请提交[NVIDIA研究许可申请表](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fresearch\u002Finquiries\u002F)。\n\n\n## 安装\n\n如果你使用的是Windows系统，请根据你的显卡型号下载以下对应版本并解压，然后运行`instant-ngp.exe`。\n\n- [**RTX 5000系列**及其他Blackwell显卡](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Freleases\u002Fdownload\u002Fcontinuous\u002FInstant-NGP-for-RTX-5000.zip)\n- [**RTX 3000 & 4000系列、RTX A4000–A6000**及其他Ampere & Ada显卡](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Freleases\u002Fdownload\u002Fcontinuous\u002FInstant-NGP-for-RTX-3000-and-4000.zip)\n- [**RTX 2000系列、Titan RTX、Quadro RTX 4000–8000**及其他Turing显卡](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Freleases\u002Fdownload\u002Fcontinuous\u002FInstant-NGP-for-RTX-2000.zip)\n- [**GTX 1000系列、Titan Xp、Quadro P1000–P6000**及其他Pascal显卡](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Freleases\u002Fdownload\u002Fcontinuous\u002FInstant-NGP-for-GTX-1000.zip)\n\n继续阅读以获取应用程序的引导教程；如果你有兴趣创建自己的NeRF模型，可以观看[视频教程](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3TWxO1PftMc)或阅读[书面说明](docs\u002Fnerf_dataset_tips.md)。\n\n如果你使用的是Linux系统，或者需要[开发者Python绑定](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#python-bindings)，又或者你的GPU不在上述列表中（例如Hopper、Volta或Maxwell系列），则需要自行[构建__instant-ngp__](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#building-instant-ngp-windows--linux)。\n\n\n## 使用方法\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_662a23863837.png\" width=\"100%\"\u002F>\n\n__instant-ngp__自带一个交互式GUI，包含多项功能：\n- [全面的控制选项](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#keyboard-shortcuts-and-recommended-controls)，用于交互式探索神经图形基元；\n- [VR模式](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#vr-controls)，可通过虚拟现实头显查看神经图形基元；\n- 支持保存和加载“快照”，方便你在互联网上分享你的图形基元；\n- 摄像机路径编辑器，可用于制作视频；\n- 提供`NeRF->Mesh`和`SDF->Mesh`转换功能；\n- 摄像机位姿与镜头优化功能；\n- 以及更多其他功能。\n\n\n### NeRF狐狸\n\n只需启动`instant-ngp`，并将`data\u002Fnerf\u002Ffox`文件夹拖入窗口即可。或者，你也可以使用命令行：\n\n```sh\ninstant-ngp$ .\u002Finstant-ngp data\u002Fnerf\u002Ffox\n```\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_b5d1930500d2.png\"\u002F>\n\n你可以使用__任何__兼容NeRF的数据集，例如来自[原始NeRF](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1JDdLGDruGNXWnM1eqY1FNL9PlStjaKWi)、[SILVR数据集](https:\u002F\u002Fgithub.com\u002FIDLabMedia\u002Flarge-lightfields-dataset)或[DroneDeploy数据集](https:\u002F\u002Fgithub.com\u002Fnickponline\u002Fdd-nerf-dataset)的数据。**要创建自己的NeRF模型，请观看[视频教程](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3TWxO1PftMc)或阅读[书面说明](docs\u002Fnerf_dataset_tips.md)。**\n\n### SDF犰狳\n\n将`data\u002Fsdf\u002Farmadillo.obj`拖入窗口，或使用以下命令：\n\n```sh\ninstant-ngp$ .\u002Finstant-ngp data\u002Fsdf\u002Farmadillo.obj\n```\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_57da4996baa5.png\"\u002F>\n\n### 爱因斯坦图像\n\n将`data\u002Fimage\u002Falbert.exr`拖入窗口，或使用以下命令：\n\n```sh\ninstant-ngp$ .\u002Finstant-ngp data\u002Fimage\u002Falbert.exr\n```\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_879cae2f919e.png\"\u002F>\n\n要复现千兆像素级别的效果，可以下载例如[东京图片](https:\u002F\u002Fwww.flickr.com\u002Fphotos\u002Ftrevor_dobson_inefekt69\u002F29314390837)，并使用`scripts\u002Fconvert_image.py`脚本将其转换为`.bin`格式。这种自定义格式能够在高分辨率下提升兼容性和加载速度。之后，你可以运行：\n\n```sh\ninstant-ngp$ .\u002Finstant-ngp data\u002Fimage\u002Ftokyo.bin\n```\n\n\n### 体积渲染器\n\n下载迪士尼云的[nanovdb体积数据](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1SuycSAOSG64k2KLV7oWgyNWyCvZAkafK?usp=sharing)，该数据源自[此处](https:\u002F\u002Fdisneyanimation.com\u002Fdata-sets\u002F?drawer=\u002Fresources\u002Fclouds\u002F)（[CC BY-SA 3.0](https:\u002F\u002Fmedia.disneyanimation.com\u002Fuploads\u002Fproduction\u002Fdata_set_asset\u002F6\u002Fasset\u002FLicense_Cloud.pdf)）。然后将`wdas_cloud_quarter.nvdb`拖入窗口，或使用以下命令：\n\n```sh\ninstant-ngp$ .\u002Finstant-ngp wdas_cloud_quarter.nvdb\n```\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_readme_b7fbb841944f.png\"\u002F>\n\n### 键盘快捷键和推荐操作\n\n以下是 __instant-ngp__ 应用程序的主要键盘操作。\n\n| 键             | 含义       |\n| :-------------: | ------------- |\n| WASD            | 前进 \u002F 向左平移 \u002F 后退 \u002F 向右平移。 |\n| 空格键 \u002F C    | 上下移动。 |\n| = 或 + \u002F - 或 _ | 增加 \u002F 减少相机速度（第一人称模式）或放大 \u002F 缩小（第三人称模式）。 |\n| E \u002F Shift+E     | 增加 \u002F 减少曝光。 |\n| Tab             | 切换菜单可见性。 |\n| T               | 切换训练。大约两分钟后，训练会趋于稳定，此时可以关闭。 |\n| { }             | 跳转到第一张\u002F最后一张训练图像的相机视图。 |\n| [ ]             | 跳转到上一张\u002F下一张训练图像的相机视图。 |\n| R               | 从文件重新加载网络。 |\n| Shift+R         | 重置相机。 |\n| O               | 切换可视化或累积误差图。 |\n| G               | 切换真实值的可视化。 |\n| M               | 切换神经模型各层的多视角可视化。更多信息请参见论文中的视频。 |\n| , \u002F .           | 显示前一个 \u002F 后一个可视化层；按 M 可退出。 |\n| 1-8             | 在多种渲染模式之间切换，其中 2 是标准模式。渲染模式名称列表可在控制界面中查看。\n\n__instant-ngp__ 的 GUI 中包含许多控件。\n首先，请注意，此 GUI 可以移动和调整大小，同样，“Camera path”GUI 也可以（但必须先展开才能使用）。\n\n__instant-ngp__ 中推荐的用户操作包括：\n\n* __快照：__ 使用“Save”保存训练好的 NeRF，使用“Load”重新加载。\n* __Rendering -> DLSS：__ 打开此选项并将“DLSS sharpening”设置为 1.0，通常可以提高渲染质量。\n* __Rendering -> Crop size：__ 裁剪周围环境，以聚焦于模型。“Crop aabb”允许您移动感兴趣区域的中心并进行微调。有关此功能的更多信息，请参阅[我们的 NeRF 训练与数据集技巧](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fblob\u002Fmaster\u002Fdocs\u002Fnerf_dataset_tips.md)。\n\n“Camera path”GUI 允许您创建用于渲染视频的相机路径。\n“Add from cam”按钮可从当前视角插入关键帧。\n然后，您可以渲染一个 `.mp4` 格式的视频，或将关键帧导出为 `.json` 文件。\n关于此 GUI 的更多信息，请参阅[这篇帖子](https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fgetting-started-with-nvidia-instant-nerfs\u002F)以及[这段创建您自己的视频的视频指南](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3TWxO1PftMc)。\n\n\n### VR 控制\n\n要在 VR 中查看神经图形原语，首先启动您的 VR 运行时。这很可能是：\n- 如果您拥有 Oculus Rift 或 Meta Quest（带连接线）头显，则为 __OculusVR__；\n- 如果您拥有其他头显，则为 __SteamVR__。\n- 任何兼容 OpenXR 的运行时均可使用。\n\n然后，在 __instant-ngp__ GUI 中按下 __Connect to VR\u002FAR headset__ 按钮，并戴上您的头显。\n进入 VR 之前，我们**强烈**建议您先完成训练（按“Stop training”）或加载预先训练好的快照，以获得最佳性能。\n\n在 VR 中，您有以下控制方式。\n\n| 控制                | 含义       |\n| :--------------------: | ------------- |\n| 左摇杆 \u002F 触摸板  | 移动 |\n| 右摇杆 \u002F 触摸板 | 旋转相机 |\n| 按压摇杆 \u002F 触摸板 | 擦除手部周围的 NeRF |\n| 抓取（单手）      | 拖动物理神经图形原语 |\n| 抓取（双手）      | 旋转和缩放（类似于智能手机上的双指缩放） |\n\n\n## 构建 instant-ngp（Windows 和 Linux）\n\n### 需求\n\n- 一块 __NVIDIA GPU__；如果可用，张量核心可提升性能。所有展示的结果均来自 RTX 3090。\n- 一个支持 __C++14__ 的编译器。推荐且经过测试的选择如下：\n  - __Windows：__ Visual Studio 2019 或 2022\n  - __Linux：__ GCC\u002FG++ 8 或更高版本\n- 最近版本的 __[CUDA](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-toolkit)__。推荐且经过测试的选择如下：\n  - __Windows：__ CUDA 11.5 或更高版本\n  - __Linux：__ CUDA 10.2 或更高版本\n- __[CMake](https:\u002F\u002Fcmake.org\u002F) v3.21 或更高版本__。\n- __(可选) [Python](https:\u002F\u002Fwww.python.org\u002F) 3.8 或更高版本__，用于交互式绑定。同时运行 `pip install -r requirements.txt`。\n- __(可选) [OptiX](https:\u002F\u002Fdeveloper.nvidia.com\u002Foptix) 7.6 或更高版本__，用于加速网格 SDF 训练。\n- __(可选) [Vulkan SDK](https:\u002F\u002Fvulkan.lunarg.com\u002F)__，用于支持 DLSS。\n\n\n如果您使用的是基于 Debian 的 Linux 发行版，请安装以下软件包：\n```sh\nsudo apt-get install build-essential git python3-dev python3-pip libopenexr-dev libxi-dev \\\n                     libglfw3-dev libglew-dev libomp-dev libxinerama-dev libxcursor-dev\n```\n\n或者，如果您使用 Arch 或其衍生发行版，请安装以下软件包：\n```sh\nsudo pacman -S cuda base-devel cmake openexr libxi glfw openmp libxinerama libxcursor\n```\n\n我们还建议将 __CUDA__ 和 __OptiX__ 安装在 `\u002Fusr\u002Flocal\u002F` 目录下，并将 CUDA 安装添加到您的 PATH 中。\n例如，如果您安装了 CUDA 11.4，请在 `~\u002F.bashrc` 中添加以下内容：\n```sh\nexport PATH=\"\u002Fusr\u002Flocal\u002Fcuda-11.4\u002Fbin:$PATH\"\nexport LD_LIBRARY_PATH=\"\u002Fusr\u002Flocal\u002Fcuda-11.4\u002Flib64:$LD_LIBRARY_PATH\"\n```\n\n\n### 编译\n\n首先使用以下命令克隆本仓库及其所有子模块：\n```sh\n$ git clone --recursive https:\u002F\u002Fgithub.com\u002Fnvlabs\u002Finstant-ngp\n$ cd instant-ngp\n```\n\n然后使用 CMake 构建项目：（在 Windows 上，必须在[开发者命令提示符](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fcpp\u002Fbuild\u002Fbuilding-on-the-command-line?view=msvc-160#developer_command_prompt)中执行）\n```sh\ninstant-ngp$ cmake . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo\ninstant-ngp$ cmake --build build --config RelWithDebInfo -j\n```\n\n如果编译莫名其妙失败或耗时超过一小时，可能是内存不足。在这种情况下，请尝试不带 `-j` 参数运行上述命令。\n如果仍无效，请在提交问题之前参考[可能的修复方案列表](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#troubleshooting-compile-errors)。\n\n如果构建成功，您现在可以通过 `.\u002Finstant-ngp` 可执行文件或下面描述的 `scripts\u002Frun.py` 脚本运行代码。\n\n如果自动检测 GPU 架构失败（例如，当您安装了多个 GPU 时），请为要使用的 GPU 设置 `TCNN_CUDA_ARCHITECTURES` 环境变量。下表列出了常见 GPU 的值。如果您的 GPU 未列出，请参阅[这份详尽的列表](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-gpus)。\n\n| H100 | 40X0 | 30X0 | A100 | 20X0 | TITAN V \u002F V100 | 10X0 \u002F TITAN Xp | 9X0 | K80 |\n|:----:|:----:|:----:|:----:|:----:|:--------------:|:---------------:|:---:|:---:|\n|   90 |   89 |   86 |   80 |   75 |             70 |              61 |  52 |  37 |\n\n## Python 绑定\n\n在构建完 __instant-ngp__ 后，您可以使用其 Python 绑定以自动化方式开展受控实验。\n交互式 GUI 中的所有功能（以及更多！）都提供了易于集成的 Python 绑定。\n有关如何在 Python 内部实现和扩展 `.\u002Finstant-ngp` 应用程序的示例，请参阅 `.\u002Fscripts\u002Frun.py`，它支持比 `.\u002Finstant-ngp` 更多的命令行参数。\n\n如果您更希望从哈希编码和快速神经网络中构建新模型，请考虑 [__tiny-cuda-nn__ 的 PyTorch 扩展](https:\u002F\u002Fgithub.com\u002Fnvlabs\u002Ftiny-cuda-nn#pytorch-extension)。\n\n祝您编程愉快！\n\n\n## 其他资源\n\n- [NVIDIA Instant NeRF 入门博客文章](https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fgetting-started-with-nvidia-instant-nerfs\u002F)\n- [SIGGRAPH 高级 NeRF 数据集创建教程](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fon-demand\u002Fsession\u002Fsiggraph2022-sigg22-s-16\u002F).\n\n\n## 常见问题解答 (FAQ)\n\n__问：__ 我的自定义数据集的 NeRF 重建效果很差；我该怎么办？\n\n__答：__ 可能存在多种问题：\n- COLMAP 可能未能成功重建相机位姿。\n- 拍摄过程中可能存在运动或模糊。请将拍摄视为摄影测量任务，而非艺术创作。您的数据集中应尽量减少任何类型的模糊（如运动模糊、散焦等），并且所有物体在整个拍摄过程中必须保持静止。如果使用广角镜头（例如 iPhone 的广角镜头效果很好），则会更有优势，因为它能够覆盖比长焦镜头更大的场景范围。\n- 数据集参数（尤其是 `aabb_scale`）可能未经过最佳调整。我们建议从 `aabb_scale=128` 开始，然后按两倍的比例逐步增加或减少，直到获得最佳质量。\n- 请仔细阅读 [我们的 NeRF 训练与数据集技巧](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fblob\u002Fmaster\u002Fdocs\u002Fnerf_dataset_tips.md)。\n\n##\n__问：__ 如何保存训练好的模型并在以后重新加载？\n\n__答：__ 有两种方法：\n1. 使用 GUI 中的“快照”部分。\n2. 使用 Python 绑定中的 `load_snapshot` \u002F `save_snapshot` 函数（示例用法请参阅 `scripts\u002Frun.py`）。\n\n##\n__问：__ 此代码库是否可以同时使用多个 GPU？\n\n__答：__ 仅适用于 VR 渲染，此时每只眼睛使用一个 GPU。其他情况下则不行。要选择特定的 GPU 运行，请使用 [CUDA_VISIBLE_DEVICES](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F39649102\u002Fhow-do-i-select-which-gpu-to-run-a-job-on) 环境变量。若要针对该特定 GPU 优化编译过程，则可使用 [TCNN_CUDA_ARCHITECTURES](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#compilation-windows--linux) 环境变量。\n\n##\n__问：__ 如何以无界面模式运行 __instant-ngp__？\n\n__答：__ 可以使用 `.\u002Finstant-ngp --no-gui` 或 `python scripts\u002Frun.py`。此外，您也可以通过 `cmake -DNGP_BUILD_WITH_GUI=off ...` 来编译不带 GUI 的版本。\n\n##\n__问：__ 此代码库能否在 [Google Colab](https:\u002F\u002Fcolab.research.google.com\u002F) 上运行？\n\n__答：__ 是的。请参阅受用户 [@myagues](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F6#issuecomment-1016397579) 创建的笔记本启发而来的[此示例](.\u002Fnotebooks\u002Finstant_ngp.ipynb)。需要注意的是：此代码库需要大量的 GPU 显存，可能无法适配您分配到的 GPU；同时，在较旧的 GPU 上运行速度也会较慢。\n\n##\n__问：__ 是否有 [Docker 容器](https:\u002F\u002Fwww.docker.com\u002F)？\n\n__答：__ 是的。我们打包了一个 [Visual Studio Code 开发容器](https:\u002F\u002Fcode.visualstudio.com\u002Fdocs\u002Fremote\u002Fcontainers)，其 `.devcontainer\u002FDockerfile` 也可单独使用。\n\n如果您想在不使用 VSCode 的情况下运行该容器：\n```\ndocker-compose -f .devcontainer\u002Fdocker-compose.yml build instant-ngp\nxhost local:root\ndocker-compose -f .devcontainer\u002Fdocker-compose.yml run instant-ngp \u002Fbin\u002Fbash\n```\n随后按照常规步骤执行上述构建命令即可。\n\n##\n__问：__ 如何编辑并训练底层的哈希编码或神经网络以适应新任务？\n\n__答：__ 请使用 [__tiny-cuda-nn__ 的 PyTorch 扩展](https:\u002F\u002Fgithub.com\u002Fnvlabs\u002Ftiny-cuda-nn#pytorch-extension)。\n\n##\n__问：__ 坐标系的约定是什么？\n\n__答：__ 请参阅用户 @jc211 提供的[这张有用的示意图](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fdiscussions\u002F153?converting=1#discussioncomment-2187652)。\n\n##\n__问：__ 为什么在 NeRF 训练过程中会随机化背景颜色？\n\n__答：__ 训练数据中的透明度表示希望学习到的模型也具备透明特性。如果使用纯色背景，模型只需预测该背景颜色即可最小化损失，而无需真正学习透明度（即密度为零）。通过随机化背景颜色，模型会被“强制”学习零密度，从而使随机背景颜色得以显现出来。\n\n##\n__问：__ 如何屏蔽 NeRF 训练中的像素（例如用于移除动态物体）？\n\n__答：__ 对于任何包含动态物体的训练图像 `xyz.*`，您可以在同一文件夹中提供一个名为 `dynamic_mask_xyz.png` 的掩码文件。该文件必须是 PNG 格式，其中非零像素值表示需要被屏蔽的区域。\n\n## 编译错误排查\n\n在进一步调查之前，请确保所有子模块都是最新版本，并再次尝试编译。\n```sh\ninstant-ngp$ git submodule sync --recursive\ninstant-ngp$ git submodule update --init --recursive\n```\n如果 __instant-ngp__ 仍然无法编译，请将 CUDA 和您的编译器都更新到您系统上可以安装的最新版本。务必同时更新两者，因为较新的 CUDA 版本并不总是与旧版编译器兼容，反之亦然。\n\n如果问题仍然存在，请参阅以下已知问题表。\n\n**\\*每完成一步操作后，请删除 `build` 文件夹，并让 CMake 重新生成它后再尝试。\\***\n\n| 问题 | 解决方案 |\n|---------|------------|\n| __CMake 错误：__ 未找到 CUDA 工具集 \u002F 目标 \"cmTC_0c70f\" 的 CUDA_ARCHITECTURES 为空 | __Windows：__ Visual Studio 的 CUDA 集成未正确安装。请按照 [这些说明](https:\u002F\u002Fgithub.com\u002Fmitsuba-renderer\u002Fmitsuba2\u002Fissues\u002F103#issuecomment-618378963) 在不重新安装 CUDA 的情况下修复问题。（[#18](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F18)) |\n| | __Linux：__ 您的 CUDA 安装环境变量可能设置错误。您可以使用 ```cmake . -B build -DCMAKE_CUDA_COMPILER=\u002Fusr\u002Flocal\u002Fcuda-\u003Cyour cuda version>\u002Fbin\u002Fnvcc``` 来绕过此问题。（[#28](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F28)) |\n| __CMake 错误：__ CXX 编译器 \"MSVC\" 没有已知特性 | 重新安装 Visual Studio，并确保从开发者命令行运行 CMake。在再次构建前，请务必删除 build 文件夹。（[#21](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F21)) |\n| __编译错误：__ 当指定了输出文件时，非链接阶段需要单个输入文件 | 确保 __instant-ngp__ 的路径中没有空格。某些构建系统似乎对此存在问题。（[#39](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F39) [#198](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F198)) |\n| __编译错误：__ 对 \"cudaGraphExecUpdate\" 的未定义引用 \u002F 标识符 \"cublasSetWorkspace\" 未定义 | 将您的 CUDA 安装（很可能为 11.0）更新至 11.3 或更高版本。（[#34](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F34) [#41](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F41) [#42](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F42)) |\n| __编译错误：__ 函数调用中的参数太少 | 使用上述两条 `git` 命令更新子模块。（[#37](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F37) [#52](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F52)) |\n| __Python 错误：__ 没有名为 'pyngp' 的模块 | 很可能是 CMake 没有检测到您的 Python 安装，因此未构建 `pyngp`。请检查 CMake 日志以确认这一点。如果 `pyngp` 被构建在与 `build` 不同的目录下，Python 将无法检测到它，您必须在导入语句中提供完整路径。（[#43](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F43)） |\n\n如果您在表格中找不到您的问题，请尝试在 [讨论区](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fdiscussions) 和 [问题页面](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues?q=is%3Aissue) 中搜索帮助。如果您仍然遇到困难，请 [提交一个问题](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002Fnew) 并寻求帮助。\n\n## 致谢\n\n非常感谢 [Jonathan Tremblay](https:\u002F\u002Fresearch.nvidia.com\u002Fperson\u002Fjonathan-tremblay) 和 [Andrew Tao](https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fauthor\u002Fatao\u002F) 测试了该代码库的早期版本，以及 Arman Toorians 和 Saurabh Jain 提供的工厂机器人数据集。\n我们还要感谢 [Andrew Webb](https:\u002F\u002Fgithub.com\u002Fgrey-area) 指出空间哈希中的一个质数实际上并非质数；此问题现已修复。\n\n该项目使用了许多优秀的开源库，包括：\n* [tiny-cuda-nn](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Ftiny-cuda-nn) 用于快速 CUDA 网络和输入编码\n* [tinyexr](https:\u002F\u002Fgithub.com\u002Fsyoyo\u002Ftinyexr) 用于支持 EXR 格式\n* [tinyobjloader](https:\u002F\u002Fgithub.com\u002Ftinyobjloader\u002Ftinyobjloader) 用于支持 OBJ 格式\n* [stb_image](https:\u002F\u002Fgithub.com\u002Fnothings\u002Fstb) 用于支持 PNG 和 JPEG 格式\n* [Dear ImGui](https:\u002F\u002Fgithub.com\u002Focornut\u002Fimgui) 一款出色的即时模式 GUI 库\n* [Eigen](https:\u002F\u002Feigen.tuxfamily.org\u002Findex.php?title=Main_Page) 一个用于线性代数的 C++ 模板库\n* [pybind11](https:\u002F\u002Fgithub.com\u002Fpybind\u002Fpybind11) 用于实现无缝的 C++\u002FPython 互操作\n* 以及其他！详情请参见 `dependencies` 文件夹。\n\n衷心感谢这些优秀项目的作者！\n\n## 许可与引用\n\n```bibtex\n@article{mueller2022instant,\n    author = {Thomas M\\\"uller and Alex Evans and Christoph Schied and Alexander Keller},\n    title = {Instant Neural Graphics Primitives with a Multiresolution Hash Encoding},\n    journal = {ACM Trans. Graph.},\n    issue_date = {July 2022},\n    volume = {41},\n    number = {4},\n    month = jul,\n    year = {2022},\n    pages = {102:1--102:15},\n    articleno = {102},\n    numpages = {15},\n    url = {https:\u002F\u002Fdoi.org\u002F10.1145\u002F3528223.3530127},\n    doi = {10.1145\u002F3528223.3530127},\n    publisher = {ACM},\n    address = {New York, NY, USA},\n}\n```\n\n版权所有 © 2022, NVIDIA Corporation。保留所有权利。\n\n本作品根据 Nvidia 源代码许可协议-NC 提供。点击 [此处](LICENSE.txt) 查看该许可协议的副本。","# Instant-NGP 快速上手指南\n\nInstant-NGP 是 NVIDIA 开源的即时神经图形基元工具，支持在数秒内训练 NeRF（神经辐射场）、SDF（有向距离函数）等模型。本指南帮助中国开发者快速完成环境配置与基础运行。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**：Windows 10\u002F11 或 Linux (推荐 Ubuntu 20.04+)\n- **GPU**：NVIDIA 显卡（支持 CUDA）。\n  - 推荐 RTX 30\u002F40 系列以获得最佳性能（利用 Tensor Cores）。\n  - 支持 GTX 10 系列及更高版本。\n- **编译器**：\n  - Windows: Visual Studio 2019 或 2022 (需包含 C++ 开发组件)\n  - Linux: GCC\u002FG++ 8 或更高版本\n- **构建工具**：CMake v3.21 或更高版本\n- **CUDA Toolkit**：\n  - Windows: CUDA 11.5+\n  - Linux: CUDA 10.2+\n\n### 前置依赖 (Linux)\n若使用 Debian\u002FUbuntu 系列，请安装以下开发库：\n```bash\nsudo apt-get install build-essential git python3-dev python3-pip libopenexr-dev libxi-dev \\\n                     libglfw3-dev libglew-dev libomp-dev libxinerama-dev libxcursor-dev\n```\n若使用 Arch Linux 系列：\n```bash\nsudo pacman -S cuda base-devel cmake openexr libxi glfw openmp libxinerama libxcursor\n```\n*提示：建议将 CUDA 和 OptiX 安装在 `\u002Fusr\u002Flocal\u002F` 并配置环境变量。例如 CUDA 11.4：*\n```bash\nexport PATH=\"\u002Fusr\u002Flocal\u002Fcuda-11.4\u002Fbin:$PATH\"\nexport LD_LIBRARY_PATH=\"\u002Fusr\u002Flocal\u002Fcuda-11.4\u002Flib64:$LD_LIBRARY_PATH\"\n```\n\n## 安装步骤\n\n### 方案 A：Windows 用户（推荐，无需编译）\n直接下载对应显卡架构的预编译包，解压后运行 `instant-ngp.exe` 即可。\n\n- **RTX 40\u002F30 系列 & RTX A 系列**: [下载链接](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Freleases\u002Fdownload\u002Fcontinuous\u002FInstant-NGP-for-RTX-3000-and-4000.zip)\n- **RTX 20 系列 & Titan RTX**: [下载链接](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Freleases\u002Fdownload\u002Fcontinuous\u002FInstant-NGP-for-RTX-2000.zip)\n- **GTX 10 系列**: [下载链接](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Freleases\u002Fdownload\u002Fcontinuous\u002FInstant-NGP-for-GTX-1000.zip)\n\n### 方案 B：Linux 用户或需要自定义编译\n1. **克隆仓库**（包含子模块）：\n   ```bash\n   git clone --recursive https:\u002F\u002Fgithub.com\u002Fnvlabs\u002Finstant-ngp\n   cd instant-ngp\n   ```\n   *注：若国内访问 GitHub 较慢，可配置 Git 代理或使用镜像源克隆。*\n\n2. **编译项目**：\n   ```bash\n   cmake . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo\n   cmake --build build --config RelWithDebInfo -j\n   ```\n   *注意：若编译过程中内存不足导致失败，请移除 `-j` 参数重新运行构建命令。*\n\n3. **(可选) 安装 Python 绑定**：\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n## 基本使用\n\n启动程序后，可通过拖拽数据文件夹到窗口，或使用命令行加载示例数据。\n\n### 1. 运行 NeRF 示例 (狐狸模型)\n这是最经典的演示，展示如何在几秒钟内训练一个场景。\n```bash\n.\u002Finstant-ngp data\u002Fnerf\u002Ffox\n```\n*操作提示：按 `T` 键可开关训练过程；训练约 2 分钟后效果趋于稳定。*\n\n### 2. 运行 SDF 示例 (犰狳模型)\n加载有向距离函数网格数据：\n```bash\n.\u002Finstant-ngp data\u002Fsdf\u002Farmadillo.obj\n```\n\n### 3. 运行高分辨率图像示例\n加载爱因斯坦图像或转换为 `.bin` 格式的超大图（如东京全景图）：\n```bash\n.\u002Finstant-ngp data\u002Fimage\u002Falbert.exr\n# 或者运行转换后的二进制大图\n.\u002Finstant-ngp data\u002Fimage\u002Ftokyo.bin\n```\n\n### 4. 运行体积渲染示例\n下载 Disney Cloud 数据 (`wdas_cloud_quarter.nvdb`) 后运行：\n```bash\n.\u002Finstant-ngp wdas_cloud_quarter.nvdb\n```\n\n### 常用交互控制\n- **移动视角**：`WASD` 移动，`Space`\u002F`C` 升降，鼠标右键旋转。\n- **缩放\u002F速度**：`+`\u002F`-` 键调整。\n- **切换菜单**：`Tab` 键。\n- **保存\u002F加载快照**：在 GUI 界面中使用 \"Save\" 保存训练好的模型，\"Load\" 读取。\n- **视频路径编辑**：展开 \"Camera path\" 面板，点击 \"Add from cam\" 添加关键帧，可导出 MP4 视频。","某电商视觉团队需要在一天内为新款智能机器人拍摄宣传素材，并快速生成可交互的 3D 展示模型供官网使用。\n\n### 没有 instant-ngp 时\n- **训练耗时过长**：传统 NeRF 算法训练一个高质量场景往往需要数小时甚至过夜，无法应对紧急的营销节点。\n- **迭代反馈滞后**：调整拍摄角度或灯光后，需重新等待漫长的渲染过程才能查看效果，严重拖慢创作节奏。\n- **硬件门槛极高**：为了缩短时间，通常需要租用昂贵的云端多卡集群，增加了项目预算压力。\n- **交互体验缺失**：生成的模型难以实时流畅运行，无法直接嵌入网页供用户自由旋转查看细节。\n\n### 使用 instant-ngp 后\n- **秒级模型构建**：利用多分辨率哈希编码技术，仅需几秒钟即可完成机器人模型的训练，真正实现“闪电般”的速度。\n- **实时预览调整**：团队成员可在 GUI 界面中即时飞览场景，随时调整相机路径并立即看到渲染结果，极大提升了创作效率。\n- **单卡轻松运行**：无需庞大集群，仅凭一台配备 RTX 30\u002F40 系列显卡的工作站即可本地高效完成所有计算任务。\n- **无缝交互部署**：支持将训练好的神经图形基元直接转换为网格或快照，轻松集成到 VR 设备或 Web 端实现流畅交互。\n\ninstant-ngp 将原本需要数天的 3D 内容生产流程压缩至分钟级，让高保真神经渲染真正具备了实时落地的商业价值。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVlabs_instant-ngp_662a2386.png","NVlabs","NVIDIA Research Projects","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FNVlabs_fc20d641.jpg","",null,"http:\u002F\u002Fresearch.nvidia.com","https:\u002F\u002Fgithub.com\u002FNVlabs",[81,85,89,93,97,101,104,108],{"name":82,"color":83,"percentage":84},"Cuda","#3A4E3A",74.3,{"name":86,"color":87,"percentage":88},"C++","#f34b7d",14.3,{"name":90,"color":91,"percentage":92},"Python","#3572A5",9.4,{"name":94,"color":95,"percentage":96},"CMake","#DA3434",1.5,{"name":98,"color":99,"percentage":100},"Dockerfile","#384d54",0.2,{"name":102,"color":103,"percentage":100},"Nix","#7e7eff",{"name":105,"color":106,"percentage":107},"Batchfile","#C1F12E",0.1,{"name":109,"color":110,"percentage":111},"Shell","#89e051",0,17361,2057,"2026-04-17T05:41:09","NOASSERTION","Windows, Linux","必需 NVIDIA GPU（支持 Tensor Core 更佳）。预编译包支持 RTX 5000\u002F4000\u002F3000\u002F2000 系列、GTX 1000 系列及 Quadro\u002FTitan 系列。其他架构（如 Hopper, Volta, Maxwell）需自行编译。推荐 CUDA 11.5+ (Windows) 或 10.2+ (Linux)。显存大小未明确说明，但示例基于 RTX 3090。","未说明（编译时若内存不足可能导致失败）",{"notes":120,"python":121,"dependencies":122},"Windows 用户可直接下载对应显卡系列的预编译包运行；Linux 用户或非列表中的显卡需自行从源码编译。编译时需递归克隆子模块。若编译时间过长或失败，可能是内存不足，建议移除并行编译参数 '-j'。VR 模式需要 OculusVR、SteamVR 或兼容 OpenXR 的运行环境。","3.8+ (可选，用于交互式绑定)",[123,124,125,126,127],"C++14 编译器 (VS 2019\u002F2022 或 GCC 8+)","CUDA Toolkit","CMake v3.21+","OptiX 7.6+ (可选，加速 SDF 训练)","Vulkan SDK (可选，支持 DLSS)",[129,14,15],"其他",[131,132,133,134,135,136,137,138,139,140,141,142],"neural-network","machine-learning","cuda","nerf","computer-graphics","computer-vision","3d-reconstruction","signed-distance-functions","function-approximation","real-time","realtime","real-time-rendering","2026-03-27T02:49:30.150509","2026-04-18T02:20:43.947352",[146,151,156,161,166,171],{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},38598,"在 Pop OS 或其他 Linux 系统上构建时遇到 'CMAKE_CUDA_ARCHITECTURES must be valid if set' 错误怎么办？","这个问题通常由较新版本的 CMake（如 3.23+）引起。有两种主要解决方法：\n1. 修改 CMakeLists.txt：在 `if(CUDA_ENABLED AND CUDA_FOUND)` 代码块之前添加 `set(CMAKE_CUDA_ARCHITECTURES \"70\")`（根据你的显卡架构调整数字，例如 70, 75, 80 等）。\n2. 降级 CMake：建议使用 CMake 3.22 版本。\n如果降级后仍报错，请删除 `build` 文件夹或重新克隆仓库以清除旧的缓存文件。","https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F196",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},38599,"编译时出现 'error: parameter packs not expanded with ...' 错误如何解决？","这通常是由于 GCC 版本（如 11.x 或 12.x）与 CUDA 版本（如 11.4, 11.6, 12.x）不兼容导致的。解决方案包括：\n1. 降级 GCC 版本到兼容版本（如 GCC 10）。\n2. 避免升级到特定的 CUDA 版本（有用户反馈避免升级到 11.6 可解决问题）。\n3. 参考相关社区讨论（如 stdgpu issue #337）应用特定的变通方法。\n确保你的 nvcc 和 gcc 版本组合是经过验证可用的。","https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F119",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},38600,"运行时遇到 'Got cutlass error: Error Internal at: 363' 或 'operation not permitted when stream is capturing' 错误是什么原因？","该错误通常与场景大小过大导致显存不足有关，或者是因为 GPU 架构不支持 FullyFusedMLP 而回退到 CutlassMLP 时产生的问题。\n解决方法：\n1. 尝试使用较小的场景数据进行测试。\n2. 检查 GPU 架构设置。如果看到警告 'FullyFusedMLP is not supported for the selected architecture XX'，建议在构建时指定更高的目标架构（如 75+），例如使用命令：`TCNN_CUDA_ARCHITECTURES=70 cmake . -B build`（根据实际显卡调整数值，V100 可用 70，RTX 系列建议 75 或 80）。","https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F219",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},38601,"在 Python 中导入 pyngp 时出现 'undefined symbol' 错误（如 _ZNK3ngp7Testbed16crop_box_cornersEb）怎么办？","这是一个已知的构建链接问题，通常发生在 Google Colab 或无头服务器环境中。官方已经通过 PR #991 修复了此问题。请确保你拉取了包含该修复的最新代码版本并重新构建项目。如果问题依旧，请检查是否使用了正确的分支或应用了相关的补丁。","https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F950",{"id":167,"question_zh":168,"answer_zh":169,"source_url":170},38602,"如何在无头服务器（Headless Server）或 Colab 上仅渲染图像而不启动 GUI？","你可以直接使用 Python API 进行渲染而无需启动图形界面。参考 `scripts\u002Frun.py` 的实现逻辑：\n1. 实例化一个 `testbed` 对象并进行训练（或加载快照）。\n2. 调用 `testbed.render(width, height, spp=8, linear=False)` 方法。\n   - `width`, `height`: 输出图像的分辨率。\n   - `spp`: 每像素采样数（Samples Per Pixel），设为 1 可最快渲染，增加该值可减少噪点并进行抗锯齿。\n   - `linear`: 设为 False 返回 sRGB 颜色（适合直接保存为 PNG\u002FJPG），设为 True 返回线性颜色。\n该方法会返回一个 numpy 数组，可直接用于显示或保存。","https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fissues\u002F6",{"id":172,"question_zh":173,"answer_zh":174,"source_url":160},38603,"如何为没有 GUI 的服务器环境构建 instant-ngp？","在构建时可以禁用 GUI 支持。使用以下 CMake 命令配置构建选项：\n`cmake . -B build -DNGP_BUILD_WITH_GUI=OFF`\n对于特定 GPU 架构（如 V100），还可以结合指定架构参数：\n`TCNN_CUDA_ARCHITECTURES=70 cmake . -B build -DNGP_BUILD_WITH_GUI=OFF`\n然后执行 `cmake --build build --config RelWithDebInfo` 进行编译。",[176,181],{"id":177,"version":178,"summary_zh":179,"released_at":180},314498,"continuous","这是一个根据代码库最新状态自动生成的二进制发布版本。\n\n如果您使用 Windows 且不需要开发者 Python 绑定，可以下载以下其中一个二进制压缩包，然后直接跳转到[使用说明](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#interactive-training-and-rendering)或[从录制数据创建您自己的 NeRF](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp\u002Fblob\u002Fmaster\u002Fdocs\u002Fnerf_dataset_tips.md)。\n\n如果您使用 Linux，或者需要开发者 Python 绑定，又或者您的 GPU 未列在下方，请按照[逐步编译 instant-ngp 的说明](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Finstant-ngp#requirements)进行操作。","2023-01-08T11:19:23",{"id":182,"version":183,"summary_zh":184,"released_at":185},314499,"v2.0","Instant NGP 的渲染速度提升了 5 倍，训练速度提升了 1.5 倍！\n\n这一性能提升得益于 Instant NGP 所基于的神经网络库 tiny-cuda-nn 中的新版即时编译（JIT）编译器；详情请参阅 [tiny-cuda-nn 2.0 发布说明](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Ftiny-cuda-nn\u002Freleases\u002Ftag\u002Fv2.0)。\n\n借助这款新的 JIT 编译器，Instant NGP 将整个 NeRF 光线追踪器以及其他多个核心组件融合进单个 CUDA 内核中。也就是说，这 5 倍的加速主要来自于通过融合进行的优化，而非算法层面的改动。因此，所有现有的快照和配置文件无需修改即可继续正常使用。\n\n## 如何使用新版 Instant NGP 2.0\n\n如果你使用的是 Windows 系统，只需下载 [最新版本](https:\u002F\u002Fgithub.com\u002Fnvlabs\u002Finstant-ngp?tab=readme-ov-file#installation) 即可。\n\n在 Linux 系统上，请拉取最新源代码，确保子模块为最新状态，然后进行编译：\n```sh\n$ git pull\n$ git submodule sync --recursive\n$ git submodule update --init --recursive\n$ \u003C按照 README.md 中的说明进行编译>\n```\n\n要确认你正在运行 Instant NGP 2.0，请检查 GUI 标题栏是否显示“instant-ngp v2.0dev”，并且存在一个名为“JIT 融合”的复选框。具体如图所示：\n![image](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fa27a5b6a-5c6a-407a-8f95-a9a852e99fb1)\n\n勾选“JIT 融合”复选框，即可对比新旧两种实现方式的速度差异。在 RTX 4000 系列（Ada 架构）及更高型号的显卡上，渲染速度应能提升 5 倍以上。\n\n\n## 自上一版本以来的其他新增功能与改进\n\n- 新增了更多相机路径插值模式，并支持关键帧的实时录制；\n- 添加了用于编辑相机路径的 Python 绑定；\n- 增加了对正交相机镜头的支持；\n- 除 `FTheta` 镜头外，所有其他相机镜头类型 now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now now......Instant NGP 的渲染速度提升了 5 倍，训练速度提升了 1.5 倍！\n\n这一性能提升得益于 Instant NGP 所基于的神经网络库 tiny-cuda-nn 中的新版即时编译（JIT）编译器；详情请参阅 [tiny-cuda-nn 2.0 版本发布说明](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Ftiny-cuda-nn\u002Freleases\u002Ftag\u002Fv2.0)。\n\n借助这款新的 JIT 编译器，Instant NGP 将整个 NeRF 光线追踪器以及其他多个核心组件融合进单个 CUDA 内核中。也就是说，这 5 倍的加速主要来自于通过融合优化，而非算法层面的改动。因此，所有现有的快照和配置文件无需修改即可继续正常使用。\n\n## 如何使用新版 Instant NGP 2.0\n\n如果你使用的是 Windows 系统，只需下载 [最新版本](https:\u002F\u002Fgithub.com\u002Fnvlabs\u002Finstant-ngp?tab=readme-ov-file#installation) 即可。\n\n在 Linux 系统上，请拉取最新源码，确保子模块为最新状态，然后进行编译：\n\n```sh\n$ git pull\n$ git submodule sync --recursive\n$ git submodule update --init --recursive\n$ \u003C按照 README.md 中的说明进行编译>\n```\n\n要确认你正在运行 Instant NGP 2.0，请检查 GUI 标题栏是否显示“instant-ngp v2.0dev”，并且存在一个名为“JIT fusion”的复选框。具体如下图所示：\n![image](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fa27a5b6a-5c6a-407a-8f95-a9a852e99fb1)\n\n勾选“JIT fusion”复选框，即可对比新旧两种实现方式的速度差异。在 RTX 4000 系列（Ada 架构）及更高型号的显卡上，渲染速度应能提升至 5 倍以上。\n\n## 自上一版本以来的其他新增与改进\n\n- 新增了更多相机路径插值模式，并支持关键帧的实时录制；\n- 添加了用于编辑相机路径的 Python 绑定；\n- 支持正交投影相机镜头；\n- 除 `FTheta` 镜头外，所有其他类型的相机镜头 now 都支持 DLSS；\n- 所有类型的相机镜头 now 都可在 SDF、图像和体积模式下使用（而不仅限于 NeRF 模式）；\n- 修复了构建系统及 Instant NGP 本身中的各类小 bug；\n- 已移除发光效果。","2025-07-08T12:06:02"]