[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-NVIDIA--warp":3,"tool-NVIDIA--warp":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":120,"forks":121,"last_commit_at":122,"license":123,"difficulty_score":10,"env_os":124,"env_gpu":125,"env_ram":126,"env_deps":127,"category_tags":136,"github_topics":137,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":145,"updated_at":146,"faqs":147,"releases":178},2655,"NVIDIA\u002Fwarp","warp","A Python framework for accelerated simulation, data generation and spatial computing.","Warp 是 NVIDIA 推出的一款高性能 Python 框架，专为加速物理模拟、数据生成及空间计算而设计。它巧妙地将开发者编写的普通 Python 函数，通过即时编译（JIT）技术自动转化为能在 CPU 或 GPU 上高效运行的底层内核代码。这一机制有效解决了传统仿真开发中性能瓶颈显著、跨硬件部署困难以及难以与机器学习流程衔接等痛点，让用户无需深入掌握复杂的 CUDA 编程即可释放硬件算力。\n\nWarp 特别适合从事物理仿真、机器人研发、计算机图形学及几何处理领域的开发者与研究人员使用。其独特亮点在于内置了丰富的空间计算原语，大幅降低了编写复杂仿真程序的门槛；同时，Warp 生成的内核天然支持微分运算，能够无缝对接 PyTorch、JAX 等主流深度学习框架，轻松构建端到端的可微分仿真管线。无论是需要快速验证算法的研究人员，还是追求极致性能的工程师，Warp 都能提供灵活且强大的技术支持，帮助您在 Windows、Linux 及 macOS 平台上高效完成从原型设计到生产部署的全过程。","[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fwarp-lang.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fwarp-lang)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n![GitHub commit activity](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcommit-activity\u002Fm\u002FNVIDIA\u002Fwarp?link=https%3A%2F%2Fgithub.com%2FNVIDIA%2Fwarp%2Fcommits%2Fmain)\n[![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_7f61fe5ecbf6.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fwarp-lang)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fgraph\u002Fbadge.svg?token=7O1KSM79FG)](https:\u002F\u002Fcodecov.io\u002Fgithub\u002FNVIDIA\u002Fwarp)\n![GitHub - CI](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)\n\n# NVIDIA Warp\n\n**[Documentation](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002F)** | [Changelog](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002FCHANGELOG.md)\n\nWarp is a Python framework for writing high-performance simulation and graphics code. Warp takes\nregular Python functions and JIT compiles them to efficient kernel code that can run on the CPU or GPU.\n\nWarp is designed for [spatial computing](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSpatial_computing)\nand comes with a rich set of primitives that make it easy to write\nprograms for physics simulation, perception, robotics, and geometry processing. In addition, Warp kernels\nare differentiable and can be used as part of machine-learning pipelines with frameworks such as PyTorch, JAX and Paddle.\n\n\u003Cdiv align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_c6febb37f0d8.jpg\">\n    \u003Cp>\u003Ci>A selection of physical simulations computed with Warp\u003C\u002Fi>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n## Installing\n\nPython version 3.9 or newer is required. Warp can run on x86-64 and ARMv8 CPUs on Windows and Linux, and on Apple Silicon (ARMv8) on macOS.\nGPU support requires a CUDA-capable NVIDIA GPU and driver (minimum GeForce GTX 9xx).\n\nThe easiest way to install Warp is from [PyPI](https:\u002F\u002Fpypi.org\u002Fproject\u002Fwarp-lang\u002F):\n\n```text\npip install warp-lang\n```\n\nYou can also use `pip install warp-lang[examples]` to install additional dependencies for running examples and USD-related features.\n\nFor nightly builds, conda, CUDA 13 builds, building from source, and CUDA driver requirements, see the\n[Installation Guide](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fuser_guide\u002Finstallation.html).\n\n## Tutorial Notebooks\n\nThe [NVIDIA Accelerated Computing Hub](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Faccelerated-computing-hub) contains the current,\nactively maintained set of Warp tutorials:\n\n| Notebook | Colab Link |\n|----------|------------|\n| [Introduction to NVIDIA Warp](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Faccelerated-computing-hub\u002Fblob\u002F32fe3d5a448446fd52c14a6726e1b867cbfed2d9\u002FAccelerated_Python_User_Guide\u002Fnotebooks\u002FChapter_12_Intro_to_NVIDIA_Warp.ipynb) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Faccelerated-computing-hub\u002Fblob\u002F32fe3d5a448446fd52c14a6726e1b867cbfed2d9\u002FAccelerated_Python_User_Guide\u002Fnotebooks\u002FChapter_12_Intro_to_NVIDIA_Warp.ipynb) |\n| [GPU-Accelerated Ising Model Simulation in NVIDIA Warp](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Faccelerated-computing-hub\u002Fblob\u002F32fe3d5a448446fd52c14a6726e1b867cbfed2d9\u002FAccelerated_Python_User_Guide\u002Fnotebooks\u002FChapter_12.1_IsingModel_In_Warp.ipynb) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Faccelerated-computing-hub\u002Fblob\u002F32fe3d5a448446fd52c14a6726e1b867cbfed2d9\u002FAccelerated_Python_User_Guide\u002Fnotebooks\u002FChapter_12.1_IsingModel_In_Warp.ipynb) |\n\nAdditionally, several notebooks in the [notebooks](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Ftree\u002Fmain\u002Fnotebooks) directory\nprovide additional examples and cover key Warp features:\n\n| Notebook | Colab Link |\n|----------|------------|\n| [Warp Core Tutorial: Basics](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_01_basics.ipynb) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_01_basics.ipynb) |\n| [Warp Core Tutorial: Generics](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_02_generics.ipynb) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_02_generics.ipynb) |\n| [Warp Core Tutorial: Points](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_03_points.ipynb) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_03_points.ipynb) |\n| [Warp Core Tutorial: Meshes](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_04_meshes.ipynb) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_04_meshes.ipynb) |\n| [Warp Core Tutorial: Volumes](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_05_volumes.ipynb) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_05_volumes.ipynb) |\n| [Warp PyTorch Tutorial: Basics](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fpytorch_01_basics.ipynb) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fpytorch_01_basics.ipynb) |\n| [Warp PyTorch Tutorial: Custom Operators](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fpytorch_02_custom_operators.ipynb) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fpytorch_02_custom_operators.ipynb) |\n\n## Running Examples\n\nThe [warp\u002Fexamples](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Ftree\u002Fmain\u002Fwarp\u002Fexamples) directory contains a number of scripts categorized under subdirectories\nthat show how to implement various simulation methods using the Warp API.\nMost examples will generate USD files containing time-sampled animations in the current working directory.\nBefore running examples, install the optional example dependencies using:\n\n```text\npip install warp-lang[examples]\n```\n\nOn Linux aarch64 systems (e.g., NVIDIA DGX Spark), the `[examples]` extra automatically installs\n[`usd-exchange`](https:\u002F\u002Fpypi.org\u002Fproject\u002Fusd-exchange\u002F) instead of `usd-core` as a drop-in replacement,\nsince `usd-core` wheels are not available for that platform.\n\nExamples can be run from the command-line as follows:\n\n```text\npython -m warp.examples.\u003Cexample_subdir>.\u003Cexample>\n```\n\nTo browse the example source code, you can open the directory where the files are located like this:\n\n```text\npython -m warp.examples.browse\n```\n\nMost examples can be run on either the CPU or a CUDA-capable device, but a handful require a CUDA-capable device. These are marked at the top of the example script.\n\nUSD files can be viewed or rendered inside [NVIDIA Omniverse](https:\u002F\u002Fdeveloper.nvidia.com\u002Fomniverse), Pixar's UsdView, and Blender. Note that Preview in macOS is not recommended as it has limited support for time-sampled animations.\n\nBuilt-in unit tests can be run from the command-line as follows:\n\n```text\npython -m warp.tests\n```\n\n### warp\u002Fexamples\u002Fcore\n\n\u003Ctable>\n    \u003Ctbody>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_dem.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_970a8a65e5c8.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_fluid.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_9c03b574fc74.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_graph_capture.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_5d8d3232c08b.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_marching_cubes.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_7114aae2f14b.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">dem\u003C\u002Ftd>\n            \u003Ctd align=\"center\">fluid\u003C\u002Ftd>\n            \u003Ctd align=\"center\">graph capture\u003C\u002Ftd>\n            \u003Ctd align=\"center\">marching cubes\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_mesh.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_522d85a3824d.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_nvdb.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_f370f12bbd83.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_raycast.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_ceba8f76b540.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_raymarch.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_e95c2c14e054.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">mesh\u003C\u002Ftd>\n            \u003Ctd align=\"center\">nvdb\u003C\u002Ftd>\n            \u003Ctd align=\"center\">raycast\u003C\u002Ftd>\n            \u003Ctd align=\"center\">raymarch\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_sample_mesh.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_a10682b333e4.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_sph.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_1be7b4cfff66.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_torch.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_19025141736c.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_wave.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_ea4303999b65.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">sample mesh\u003C\u002Ftd>\n            \u003Ctd align=\"center\">sph\u003C\u002Ftd>\n            \u003Ctd align=\"center\">torch\u003C\u002Ftd>\n            \u003Ctd align=\"center\">wave\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_fft_poisson_navier_stokes_2d.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_6114f2a47261.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">2-D incompressible turbulence in a periodic box\u003C\u002Ftd>\n        \u003C\u002Ftr>\n    \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n### warp\u002Fexamples\u002Ffem\n\n\u003Ctable>\n    \u003Ctbody>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_diffusion_3d.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_b6fec7d54503.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_mixed_elasticity.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_be42784a760a.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_apic_fluid.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_89a880f9b97e.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_streamlines.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_c824a14ba66c.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">diffusion 3d\u003C\u002Ftd>\n            \u003Ctd align=\"center\">mixed elasticity\u003C\u002Ftd>\n            \u003Ctd align=\"center\">apic fluid\u003C\u002Ftd>\n            \u003Ctd align=\"center\">streamlines\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_distortion_energy.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_97a3c19a9684.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_taylor_green.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_3d964f997f9c.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_kelvin_helmholtz.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_93a6d9136253.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_magnetostatics.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_3b3c6f3a1b0a.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">distortion energy\u003C\u002Ftd>\n            \u003Ctd align=\"center\">taylor green\u003C\u002Ftd>\n            \u003Ctd align=\"center\">kelvin helmholtz\u003C\u002Ftd>\n            \u003Ctd align=\"center\">magnetostatics\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_adaptive_grid.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_de5631c3a78b.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_nonconforming_contact.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_b9b643a2cbfc.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_darcy_ls_optimization.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_362175912366.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_elastic_shape_optimization.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_7dbd1513c216.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">adaptive grid\u003C\u002Ftd>\n            \u003Ctd align=\"center\">nonconforming contact\u003C\u002Ftd>\n            \u003Ctd align=\"center\">darcy level-set optimization\u003C\u002Ftd>\n            \u003Ctd align=\"center\">elastic shape optimization\u003C\u002Ftd>\n        \u003C\u002Ftr>\n    \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n### warp\u002Fexamples\u002Foptim\n\n\u003Ctable>\n    \u003Ctbody>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Foptim\u002Fexample_diffray.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_5b58723e3b57.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Foptim\u002Fexample_fluid_checkpoint.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_9de395705a56.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Foptim\u002Fexample_particle_repulsion.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_634445ac4914.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Foptim\u002Fexample_navier_stokes_perturbation.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_03e7b7fc0fa9.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">diffray\u003C\u002Ftd>\n            \u003Ctd align=\"center\">fluid checkpoint\u003C\u002Ftd>\n            \u003Ctd align=\"center\">particle repulsion\u003C\u002Ftd>\n            \u003Ctd align=\"center\">navier-stokes perturbation\u003C\u002Ftd>\n        \u003C\u002Ftr>\n    \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n### warp\u002Fexamples\u002Ftile\n\n\u003Ctable>\n    \u003Ctbody>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ftile\u002Fexample_tile_mlp.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_540ae4483f0d.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ftile\u002Fexample_tile_nbody.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_7ec240f25b3b.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ftile\u002Fexample_tile_mcgp.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_3220411ef548.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">mlp\u003C\u002Ftd>\n            \u003Ctd align=\"center\">nbody\u003C\u002Ftd>\n            \u003Ctd align=\"center\">mcgp\u003C\u002Ftd>\n            \u003Ctd align=\"center\">\u003C\u002Ftd>\n        \u003C\u002Ftr>\n    \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n## Learn More\n\nPlease see the following resources for additional background on Warp:\n\n* [Product Page](https:\u002F\u002Fdeveloper.nvidia.com\u002Fwarp-python)\n* [SIGGRAPH 2024 Course Slides](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.1145\u002F3664475.3664543)\n* [GTC 2024 Presentation](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fon-demand\u002Fsession\u002Fgtc24-s63345\u002F)\n* [GTC 2022 Presentation](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fon-demand\u002Fsession\u002Fgtcspring22-s41599)\n* [GTC 2021 Presentation](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fon-demand\u002Fsession\u002Fgtcspring21-s31838)\n* [SIGGRAPH Asia 2021 Differentiable Simulation Course](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fabs\u002F10.1145\u002F3476117.3483433)\n\n## Support\n\nSee the [FAQ](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fuser_guide\u002Ffaq.html) for common questions.\n\nProblems, questions, and feature requests can be opened on [GitHub Issues](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues).\n\nFor inquiries not suited for GitHub Issues, please email \u003Cwarp-python@nvidia.com>.\n\n## Contributing\n\nContributions and pull requests from the community are welcome.\nPlease see the [Contribution Guide](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fuser_guide\u002Fcontribution_guide.html) for more\ninformation on contributing to the development of Warp.\n\n## License\n\nWarp is provided under the Apache License, Version 2.0.\nPlease see [LICENSE.md](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002FLICENSE.md) for full license text.\n\nThis project will download and install additional third-party open source software projects.\nReview the license terms of these open source projects before use.\n\n## Publications & Citation\n\n### Research Using Warp\n\nOur [PUBLICATIONS.md](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002FPUBLICATIONS.md) file lists academic and research\npublications that leverage the capabilities of Warp.\nWe encourage you to add your own published work using Warp to this list.\n\n### Citing Warp\n\nIf you use Warp in your research, please use the \"Cite this repository\" button on the\n[GitHub repository](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp) page or refer to the\n[CITATION.cff](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002FCITATION.cff) file for citation information.\n","[![PyPI版本](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fwarp-lang.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fwarp-lang)\n[![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n![GitHub提交活动](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcommit-activity\u002Fm\u002FNVIDIA\u002Fwarp?link=https%3A%2F%2Fgithub.com%2FNVIDIA%2Fwarp%2Fcommits%2Fmain)\n[![下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_7f61fe5ecbf6.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fwarp-lang)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fgraph\u002Fbadge.svg?token=7O1KSM79FG)](https:\u002F\u002Fcodecov.io\u002Fgithub\u002FNVIDIA\u002Fwarp)\n![GitHub - CI](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)\n\n# NVIDIA Warp\n\n**[文档](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002F)** | [变更日志](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002FCHANGELOG.md)\n\nWarp 是一个用于编写高性能仿真和图形代码的 Python 框架。Warp 可以将普通的 Python 函数即时编译为高效的内核代码，这些代码可以在 CPU 或 GPU 上运行。\n\nWarp 专为 [空间计算](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSpatial_computing) 设计，并提供丰富的原语，使编写物理仿真、感知、机器人和几何处理程序变得简单。此外，Warp 内核是可微分的，可以作为 PyTorch、JAX 和 Paddle 等机器学习框架的一部分使用。\n\n\u003Cdiv align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_c6febb37f0d8.jpg\">\n    \u003Cp>\u003Ci>使用 Warp 计算的一系列物理仿真\u003C\u002Fi>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n## 安装\n\n需要 Python 3.9 或更高版本。Warp 可以在 Windows 和 Linux 上的 x86-64 和 ARMv8 CPU 上运行，也可以在 macOS 上的 Apple Silicon (ARMv8) 上运行。GPU 支持需要具备 CUDA 功能的 NVIDIA GPU 和驱动程序（最低要求为 GeForce GTX 9xx）。\n\n安装 Warp 最简单的方式是从 [PyPI](https:\u002F\u002Fpypi.org\u002Fproject\u002Fwarp-lang\u002F) 进行：\n\n```text\npip install warp-lang\n```\n\n您还可以使用 `pip install warp-lang[examples]` 来安装运行示例和 USD 相关功能所需的额外依赖项。\n\n有关 nightly 构建、conda、CUDA 13 构建、从源码构建以及 CUDA 驱动程序要求，请参阅\n[安装指南](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fuser_guide\u002Finstallation.html)。\n\n## 教程笔记本\n\n[NVIDIA 加速计算中心](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Faccelerated-computing-hub) 包含当前正在积极维护的 Warp 教程集合：\n\n| 笔记本 | Colab 链接 |\n|----------|------------|\n| [NVIDIA Warp 入门](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Faccelerated-computing-hub\u002Fblob\u002F32fe3d5a448446fd52c14a6726e1b867cbfed2d9\u002FAccelerated_Python_User_Guide\u002Fnotebooks\u002FChapter_12_Intro_to_NVIDIA_Warp.ipynb) | [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Faccelerated-computing-hub\u002Fblob\u002F32fe3d5a448446fd52c14a6726e1b867cbfed2d9\u002FAccelerated_Python_User_Guide\u002Fnotebooks\u002FChapter_12_Intro_to_NVIDIA_Warp.ipynb) |\n| [NVIDIA Warp 中的 GPU 加速伊辛模型仿真](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Faccelerated-computing-hub\u002Fblob\u002F32fe3d5a448446fd52c14a6726e1b867cbfed2d9\u002FAccelerated_Python_User_Guide\u002Fnotebooks\u002FChapter_12.1_IsingModel_In_Warp.ipynb) | [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Faccelerated-computing-hub\u002Fblob\u002F32fe3d5a448446fd52c14a6726e1b867cbfed2d9\u002FAccelerated_Python_User_Guide\u002Fnotebooks\u002FChapter_12.1_IsingModel_In_Warp.ipynb) |\n\n此外，[notebooks](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Ftree\u002Fmain\u002Fnotebooks) 目录中的几个笔记本提供了更多示例，并涵盖了 Warp 的关键特性：\n\n| 笔记本 | Colab 链接 |\n|----------|------------|\n| [Warp 核心教程：基础](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_01_basics.ipynb) | [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_01_basics.ipynb) |\n| [Warp 核心教程：泛型](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_02_generics.ipynb) | [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_02_generics.ipynb) |\n| [Warp 核心教程：点](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_03_points.ipynb) | [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_03_points.ipynb) |\n| [Warp 核心教程：网格](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_04_meshes.ipynb) | [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_04_meshes.ipynb) |\n| [Warp 核心教程：体积](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_05_volumes.ipynb) | [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fcore_05_volumes.ipynb) |\n| [Warp PyTorch 教程：基础](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fpytorch_01_basics.ipynb) | [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fpytorch_01_basics.ipynb) |\n| [Warp PyTorch 教程：自定义算子](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fpytorch_02_custom_operators.ipynb) | [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fnotebooks\u002Fpytorch_02_custom_operators.ipynb) |\n\n## 运行示例\n\n[warp\u002Fexamples](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Ftree\u002Fmain\u002Fwarp\u002Fexamples) 目录包含多个脚本，这些脚本按子目录分类，展示了如何使用 Warp API 实现各种仿真方法。\n大多数示例会在当前工作目录中生成包含时间采样动画的 USD 文件。\n在运行示例之前，请使用以下命令安装可选的示例依赖项：\n\n```text\npip install warp-lang[examples]\n```\n\n在 Linux aarch64 系统（例如 NVIDIA DGX Spark）上，`[examples]` 附加包会自动安装 [`usd-exchange`](https:\u002F\u002Fpypi.org\u002Fproject\u002Fusd-exchange\u002F) 而不是 `usd-core` 作为直接替换，因为该平台没有可用的 `usd-core` 轮子包。\n\n可以通过以下命令行运行示例：\n\n```text\npython -m warp.examples.\u003Cexample_subdir>.\u003Cexample>\n```\n\n要浏览示例源代码，可以这样打开文件所在的目录：\n\n```text\npython -m warp.examples.browse\n```\n\n大多数示例可以在 CPU 或支持 CUDA 的设备上运行，但少数示例需要支持 CUDA 的设备。这些示例会在脚本顶部标明。\n\nUSD 文件可以在 [NVIDIA Omniverse](https:\u002F\u002Fdeveloper.nvidia.com\u002Fomniverse)、Pixar 的 UsdView 和 Blender 中查看或渲染。请注意，不建议使用 macOS 自带的预览应用，因为它对时间采样动画的支持有限。\n\n内置单元测试可以通过以下命令行运行：\n\n```text\npython -m warp.tests\n```\n\n### warp\u002Fexamples\u002Fcore\n\n\u003Ctable>\n    \u003Ctbody>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_dem.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_970a8a65e5c8.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_fluid.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_9c03b574fc74.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_graph_capture.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_5d8d3232c08b.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_marching_cubes.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_7114aae2f14b.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">DEM\u003C\u002Ftd>\n            \u003Ctd align=\"center\">流体\u003C\u002Ftd>\n            \u003Ctd align=\"center\">图捕获\u003C\u002Ftd>\n            \u003Ctd align=\"center\"> marching cubes\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_mesh.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_522d85a3824d.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_nvdb.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_f370f12bbd83.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_raycast.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_ceba8f76b540.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_raymarch.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_e95c2c14e054.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">网格\u003C\u002Ftd>\n            \u003Ctd align=\"center\">NVDB\u003C\u002Ftd>\n            \u003Ctd align=\"center\">光线投射\u003C\u002Ftd>\n            \u003Ctd align=\"center\">光线步进\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_sample_mesh.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_a10682b333e4.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_sph.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_1be7b4cfff66.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_torch.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_19025141736c.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_wave.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_ea4303999b65.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">采样网格\u003C\u002Ftd>\n            \u003Ctd align=\"center\">SPH\u003C\u002Ftd>\n            \u003Ctd align=\"center\">PyTorch\u003C\u002Ftd>\n            \u003Ctd align=\"center\">波\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Fcore\u002Fexample_fft_poisson_navier_stokes_2d.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_6114f2a47261.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">周期性边界条件下的二维不可压缩湍流\u003C\u002Ftd>\n        \u003C\u002Ftr>\n    \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n### warp\u002F示例\u002Ffem\n\n\u003Ctable>\n    \u003Ctbody>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_diffusion_3d.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_b6fec7d54503.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_mixed_elasticity.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_be42784a760a.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_apic_fluid.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_89a880f9b97e.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_streamlines.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_c824a14ba66c.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">三维扩散\u003C\u002Ftd>\n            \u003Ctd align=\"center\">混合弹性\u003C\u002Ftd>\n            \u003Ctd align=\"center\">APIC流体\u003C\u002Ftd>\n            \u003Ctd align=\"center\">流线\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_distortion_energy.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_97a3c19a9684.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_taylor_green.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_3d964f997f9c.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_kelvin_helmholtz.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_93a6d9136253.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_magnetostatics.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_3b3c6f3a1b0a.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">畸变能\u003C\u002Ftd>\n            \u003Ctd align=\"center\">泰勒-格林\u003C\u002Ftd>\n            \u003Ctd align=\"center\">开尔文-亥姆霍兹\u003C\u002Ftd>\n            \u003Ctd align=\"center\">静磁学\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_adaptive_grid.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_de5631c3a78b.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_nonconforming_contact.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_b9b643a2cbfc.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_darcy_ls_optimization.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_362175912366.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ffem\u002Fexample_elastic_shape_optimization.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_7dbd1513c216.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">自适应网格\u003C\u002Ftd>\n            \u003Ctd align=\"center\">非协调接触\u003C\u002Ftd>\n            \u003Ctd align=\"center\">达西水平集优化\u003C\u002Ftd>\n            \u003Ctd align=\"center\">弹性形状优化\u003C\u002Ftd>\n        \u003C\u002Ftr>\n    \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n### warp\u002F示例\u002Foptim\n\n\u003Ctable>\n    \u003Ctbody>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Foptim\u002Fexample_diffray.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_5b58723e3b57.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Foptim\u002Fexample_fluid_checkpoint.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_9de395705a56.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Foptim\u002Fexample_particle_repulsion.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_634445ac4914.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Foptim\u002Fexample_navier_stokes_perturbation.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_03e7b7fc0fa9.png\">\u003C\u002Fa>\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">迪弗雷\u003C\u002Ftd>\n            \u003Ctd align=\"center\">流体检查点\u003C\u002Ftd>\n            \u003Ctd align=\"center\">粒子排斥\u003C\u002Ftd>\n            \u003Ctd align=\"center\">纳维-斯托克斯扰动\u003C\u002Ftd>\n        \u003C\u002Ftr>\n    \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n### warp\u002F示例\u002Ftile\n\n\u003Ctable>\n    \u003Ctbody>\n        \u003Ctr>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ftile\u002Fexample_tile_mlp.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_540ae4483f0d.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ftile\u002Fexample_tile_nbody.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_7ec240f25b3b.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Ftile\u002Fexample_tile_mcgp.py\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_readme_3220411ef548.png\">\u003C\u002Fa>\u003C\u002Ftd>\n            \u003Ctd width=\"25%\">\u003C\u002Ftd>\n        \u003C\u002Ftr>\n        \u003Ctr>\n            \u003Ctd align=\"center\">MLP\u003C\u002Ftd>\n            \u003Ctd align=\"center\">N体问题\u003C\u002Ftd>\n            \u003Ctd align=\"center\">MCGP\u003C\u002Ftd>\n            \u003Ctd align=\"center\">\u003C\u002Ftd>\n        \u003C\u002Ftr>\n    \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n## 了解更多\n\n请参阅以下资源，以获取关于 Warp 的更多背景信息：\n\n* [产品页面](https:\u002F\u002Fdeveloper.nvidia.com\u002Fwarp-python)\n* [SIGGRAPH 2024 课程幻灯片](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.1145\u002F3664475.3664543)\n* [GTC 2024 演讲](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fon-demand\u002Fsession\u002Fgtc24-s63345\u002F)\n* [GTC 2022 演讲](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fon-demand\u002Fsession\u002Fgtcspring22-s41599)\n* [GTC 2021 演讲](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fon-demand\u002Fsession\u002Fgtcspring21-s31838)\n* [SIGGRAPH Asia 2021 可微仿真课程](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fabs\u002F10.1145\u002F3476117.3483433)\n\n## 支持\n\n常见问题请参阅 [FAQ](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fuser_guide\u002Ffaq.html)。\n\n如遇问题、疑问或功能请求，请在 [GitHub Issues](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues) 上提交。\n\n对于不适合在 GitHub Issues 上讨论的咨询，请发送邮件至 \u003Cwarp-python@nvidia.com>。\n\n## 贡献\n\n我们欢迎社区的贡献和拉取请求。有关如何参与 Warp 开发的更多信息，请参阅 [贡献指南](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fuser_guide\u002Fcontribution_guide.html)。\n\n## 许可证\n\nWarp 根据 Apache License, Version 2.0 提供。完整的许可证文本请参阅 [LICENSE.md](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002FLICENSE.md)。\n\n本项目会下载并安装其他第三方开源软件项目。使用前请仔细阅读这些开源项目的许可条款。\n\n## 出版物与引用\n\n### 使用 Warp 的研究\n\n我们的 [PUBLICATIONS.md](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002FPUBLICATIONS.md) 文件列出了利用 Warp 功能的学术和研究出版物。我们鼓励您将自己使用 Warp 发表的工作添加到此列表中。\n\n### 引用 Warp\n\n如果您在研究中使用了 Warp，请使用 [GitHub 仓库](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp) 页面上的“引用此仓库”按钮，或参考 [CITATION.cff](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002FCITATION.cff) 文件中的引用信息。","# NVIDIA Warp 快速上手指南\n\nNVIDIA Warp 是一个用于编写高性能仿真和图形代码的 Python 框架。它能将普通的 Python 函数即时编译（JIT）为高效的内核代码，支持在 CPU 或 GPU 上运行，特别适用于物理仿真、感知、机器人学和几何处理等空间计算领域。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：\n    *   Windows 或 Linux (支持 x86-64 和 ARMv8 架构)\n    *   macOS (支持 Apple Silicon\u002FARMv8)\n*   **Python 版本**：3.9 或更高版本\n*   **GPU 支持（可选但推荐）**：\n    *   需要支持 CUDA 的 NVIDIA GPU\n    *   最低要求：GeForce GTX 9xx 系列或更高\n    *   需安装对应的 NVIDIA 显卡驱动\n*   **运行示例额外依赖**：若需运行官方示例或处理 USD 文件，建议安装额外依赖包。\n\n## 安装步骤\n\n### 1. 基础安装\n使用 pip 从 PyPI 安装核心库：\n\n```bash\npip install warp-lang\n```\n\n> **提示**：国内用户如遇下载速度慢，可添加国内镜像源加速：\n> ```bash\n> pip install warp-lang -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n### 2. 安装示例依赖（可选）\n如果您希望运行官方提供的仿真示例或使用 USD 相关功能，请安装包含示例依赖的版本：\n\n```bash\npip install warp-lang[examples]\n```\n\n> **注意**：在 Linux aarch64 系统（如 NVIDIA DGX Spark）上，该命令会自动安装 `usd-exchange` 以替代不可用的 `usd-core`。\n\n## 基本使用\n\nWarp 的核心用法非常简单：只需导入 `warp` 模块，使用 `@wp.kernel` 装饰器标记函数，然后调用 `wp.launch` 即可在并行设备上执行。\n\n以下是一个最简单的向量加法示例：\n\n```python\nimport warp as wp\nimport numpy as np\n\n# 初始化 Warp (自动检测并初始化 CUDA 设备)\nwp.init()\n\n# 定义一个 Warp 内核函数\n@wp.kernel\ndef vector_add(a: wp.array(dtype=float), b: wp.array(dtype=float), c: wp.array(dtype=float)):\n    # 获取当前线程的全局索引\n    tid = wp.tid()\n    c[tid] = a[tid] + b[tid]\n\n# 准备数据 (使用 NumPy 数组)\nsize = 1024\na_np = np.ones(size, dtype=np.float32)\nb_np = np.ones(size, dtype=np.float32) * 2.0\n\n# 将数据复制到设备 (GPU\u002F_CPU)\na_dev = wp.array(a_np)\nb_dev = wp.array(b_np)\nc_dev = wp.array(np.zeros(size, dtype=np.float32))\n\n# 启动内核 (指定启动的线程数)\nwp.launch(kernel=vector_add, dim=size, inputs=[a_dev, b_dev, c_dev])\n\n# 将结果复制回主机并打印前 5 个元素\nresult = c_dev.numpy()\nprint(f\"Result (first 5): {result[:5]}\") \n# 输出应为: [3. 3. 3. 3. 3.]\n```\n\n### 运行官方示例\n\n安装 `[examples]` 依赖后，您可以直接通过命令行运行内置的仿真示例（如流体、网格变形等）：\n\n```bash\n# 运行流体仿真示例\npython -m warp.examples.core.example_fluid\n\n# 浏览所有可用示例的代码目录\npython -m warp.examples.browse\n```\n\n生成的动画通常保存为 USD 文件，可使用 NVIDIA Omniverse、UsdView 或 Blender 查看。","一家自动驾驶初创公司的算法团队正在开发基于物理的传感器仿真系统，需要生成数百万帧带有精确碰撞反馈和雷达回波的训练数据。\n\n### 没有 warp 时\n- **开发效率低下**：工程师必须在 Python 中编写逻辑原型，然后手动重写为 C++\u002FCUDA 代码以获得 GPU 加速，迭代周期长达数天。\n- **性能瓶颈明显**：纯 Python 实现的刚体碰撞检测在处理成千上万个动态物体时帧率极低，无法满足实时仿真需求。\n- **微分支持缺失**：想要通过梯度下降优化场景参数（如摩擦系数）以匹配真实数据时，由于传统仿真器不可微，只能依赖低效的黑盒优化方法。\n- **生态割裂严重**：仿真数据生成流程与 PyTorch 训练管道分离，数据需落地磁盘再读取，增加了 I\u002FO 开销和工程复杂度。\n\n### 使用 warp 后\n- **单一语言全流程**：团队直接使用 Python 编写核心物理逻辑，warp 自动将其即时编译（JIT）为高效的 CPU\u002FGPU 内核，无需切换语言，功能迭代从“天”级缩短至“小时”级。\n- **极致并行性能**：利用 warp 内置的空间计算原语，大规模粒子系统和刚体碰撞在单张 RTX 显卡上即可实现实时运行，吞吐量提升数十倍。\n- **原生可微分能力**：warp 内核天然支持自动微分，团队直接将仿真模块嵌入 PyTorch 训练循环，通过反向传播快速校准物理参数，显著提升了合成数据的真实性。\n- **无缝管线集成**：数据生成与模型训练在同一内存空间完成，消除了繁琐的数据落盘步骤，构建了端到端的加速学习闭环。\n\nwarp 让研究人员能用纯粹的 Python 代码轻松驾驭 GPU 算力，将高保真物理仿真无缝转化为可微分的机器学习生产力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_warp_c6febb37.jpg","NVIDIA","NVIDIA Corporation","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FNVIDIA_7dcf6000.png","",null,"https:\u002F\u002Fnvidia.com","https:\u002F\u002Fgithub.com\u002FNVIDIA",[83,87,91,95,99,103,107,110,113,117],{"name":84,"color":85,"percentage":86},"Python","#3572A5",77.7,{"name":88,"color":89,"percentage":90},"C++","#f34b7d",17.7,{"name":92,"color":93,"percentage":94},"Cuda","#3A4E3A",3.1,{"name":96,"color":97,"percentage":98},"Jupyter Notebook","#DA5B0B",1.1,{"name":100,"color":101,"percentage":102},"Dockerfile","#384d54",0.2,{"name":104,"color":105,"percentage":106},"Shell","#89e051",0.1,{"name":108,"color":109,"percentage":106},"Makefile","#427819",{"name":111,"color":112,"percentage":106},"CMake","#DA3434",{"name":114,"color":115,"percentage":116},"C","#555555",0,{"name":118,"color":119,"percentage":116},"Batchfile","#C1F12E",6469,475,"2026-04-03T06:06:46","Apache-2.0","Windows, Linux, macOS","GPU 支持为可选项（大部分示例支持 CPU 运行，部分需要 CUDA）。若需 GPU，必须为支持 CUDA 的 NVIDIA 显卡（最低要求 GeForce GTX 9xx 系列），需安装对应的 NVIDIA 驱动。具体 CUDA 版本未在此文档明确限定，但提及有 CUDA 13 构建版可供参考。","未说明",{"notes":128,"python":129,"dependencies":130},"该工具是一个将 Python 函数即时编译 (JIT) 为高效内核代码的框架，支持 CPU 和 GPU 运行。在 Linux aarch64 架构（如 NVIDIA DGX Spark）上，安装示例依赖时会自动使用 'usd-exchange' 替代 'usd-core'。生成的 USD 动画文件建议使用 NVIDIA Omniverse、UsdView 或 Blender 查看，不建议使用 macOS 自带的 Preview。","3.9+",[131,132,133,134,135],"numpy","usd-core (或 Linux aarch64 下的 usd-exchange)","PyTorch (可选，用于机器学习管道)","JAX (可选)","Paddle (可选)",[13,54],[138,139,140,141,142,143,144],"differentiable-programming","python","gpu-acceleration","nvidia","gpu","cuda","nvidia-warp","2026-03-27T02:49:30.150509","2026-04-06T05:16:11.909112",[148,153,158,163,168,173],{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},12292,"为什么在提交 vec\u002Fmat\u002Fquat 自动梯度修复后，内核编译时间显著增加？","该问题已在夜间构建版（nightly-build）及 Warp 1.6+ 版本中修复。Warp 1.6 大幅加快了矩阵分量 `+=` 和 `-=` 操作的编译速度，Warp 1.7 进一步加快了矩阵分量赋值操作。注意：此优化意味着不能再直接重新赋值向量\u002F矩阵的分量（但 `+=` 和 `-=` 操作仍可用）。如果脚本确实需要重新赋值分量，可以使用配置选项回退到旧行为。建议更新代码库以遵循最佳实践并升级 Warp 版本。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F332",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},12293,"Warp 是否支持 Apple M1 (ARM64) 架构？安装时遇到架构不兼容错误怎么办？","Warp 的二进制文件实际上已经包含了通用架构支持（同时支持 x86-64 和 AArch64\u002FARM64），但在某些版本（如 0.10.1）的文件名中标记不正确，导致 pip 误判。如果遇到 `mach-o file, but is an incompatible architecture` 错误，通常是因为使用了标记错误的旧版本 wheel 文件。维护者已确认二进制文件本身是通用的，后续版本已修复文件名标签问题。请尝试安装最新版本的 warp-lang。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F42",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},12294,"如何在 Kernel API 中对 wp.array、wp.matrix 或 wp.vector 进行切片操作或使用动态大小的向量？","目前内核 API 不直接支持传统的切片语法（如 `array[tid][0:3]`）。解决方案是使用解包操作符（`*`）。维护者已合并了对 `*` 操作符的支持，允许从数组切片初始化向量。例如，可以使用解包操作符将数组片段转换为向量类型。这解决了之前必须依赖 Tile API 的限制，使得处理变长数据块更加容易。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F783",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},12295,"遇到 'cuDeviceGetUuid' CUDA 驱动入口点失败错误 (CUDA error 1\u002F36) 如何解决？","此错误通常表示安装的 CUDA 驱动程序过旧，不支持当前 Warp 版本调用的 API（如 `cuDeviceGetUuid`）。报错信息 'API call is not supported in the installed CUDA driver' 明确指出了这一点。解决方法是升级 NVIDIA 显卡驱动程序到最新版本（例如支持 CUDA 12.x 或更高版本的驱动）。如果问题出现在特定测试中，有时也可能是由于缺少必要的资源文件（如未运行 `git lfs pull` 加载 .stl 文件），但在驱动报错的情况下，首要任务是更新驱动。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F940",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},12296,"在调试模式 (debug mode) 下使用 tile_reduce 导致 CUDA 崩溃怎么办？","该问题曾出现在特定的开发版本（如 1.9.0.dev20250813）中，表现为导入 `mujoco_warp` 并调用 `tile_reduce` 时崩溃。根据反馈，该问题在更新到更新的驱动程序版本（如 580.95.05）和 CUDA 版本（13.0）后已解决。如果您遇到此类特定于调试模式或特定版本的崩溃，请尝试升级您的 GPU 驱动程序和 CUDA Toolkit 到最新版本。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F943",{"id":174,"question_zh":175,"answer_zh":176,"source_url":177},12297,"当矩阵维度不是 Tile 形状的整数倍时，如何在使用 tile 操作时处理边界？","虽然提供的 Issue 详情被截断，但此类问题的通用解决方案是在 Kernel 中进行边界检查。在使用 `wp.tid()` 计算索引后，访问数组前应检查索引是否超出矩阵的实际维度（shape）。通常做法是：在加载 Tile 数据前，确保计算的起始索引加上 Tile 大小不超过矩阵边界；或者在循环内部添加条件判断，仅对有效索引执行计算。对于非整数倍的维度，通常需要处理剩余的“边缘”部分，可以通过单独的内核启动或在同一内核中通过条件分支来处理不足一个 Tile 大小的数据块。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F451",[179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264,269,274],{"id":180,"version":181,"summary_zh":182,"released_at":183},62663,"v1.12.0","# Warp v1.12.0\n\nWarp v1.12 在 CUDA GPU 上新增了实验性的硬件加速纹理采样功能，通过逐元素算术运算符和可微分 FFT 扩展了瓦片编程，并借助对 `jax.vmap` 的支持拓宽了与 JAX 的互操作性。此外，该版本还引入了下标风格的类型提示以更好地集成开发环境（IDE），新增了四元数和近似数学内置函数，在 `warp.fem` 中加入了 B 样条形状函数，并提供了一系列实用工具和诊断 API。\n\n## 新特性\n\n### 硬件加速纹理\n\n> **实验性。** 此 API 可能在没有正式弃用周期的情况下发生变化。\n\nWarp v1.12 引入了 `wp.Texture1D`、`wp.Texture2D` 和 `wp.Texture3D` 类，它们利用 CUDA 纹理内存，在 Warp 内核中直接实现硬件加速的插值操作。在 GPU 上，纹理读取会通过专用的纹理单元进行处理，这些单元可以在一条指令中完成过滤查找，因此非常适合用于渲染、体数据采样、符号距离场查询以及模拟查找表等场景。而在 CPU 上，则会使用软件回退方案来提供相同的语义，从而确保同一段内核代码能够在两种设备上运行。\n\n```python\nimport warp as wp\nimport numpy as np\n\nwp.init()\n\n# 64x64 单通道高度图\ndata = np.random.rand(64, 64).astype(np.float32)\n\n# 创建一个具有双线性过滤的 2D 纹理\ntex = wp.Texture2D(data, filter_mode=wp.Texture.FILTER_LINEAR)\n\n@wp.kernel\ndef sample_texture(tex: wp.Texture2D, coords: wp.array[wp.vec2f], out: wp.array[float]):\n    i = wp.tid()\n    # 坐标范围为 [0, 1]；双线性插值自动完成\n    out[i] = wp.texture_sample(tex, coords[i], dtype=float)\n\ncoords = wp.array(np.random.rand(1024, 2).astype(np.float32), dtype=wp.vec2f)\nresult = wp.zeros(1024, dtype=float)\nwp.launch(sample_texture, dim=1024, inputs=[tex, coords, result])\n\nprint(f\"采样了 {result.shape[0]} 个点，范围：[{result.numpy().min():.4f}, {result.numpy().max():.4f}]\")\n# 示例输出：采样了 1024 个点，范围：[0.0069, 0.9793]\n```\n\n主要功能：\n\n- **1D \u002F 2D \u002F 3D** 纹理类（`wp.Texture1D`、`wp.Texture2D`、`wp.Texture3D`），并提供了相应的 `wp.texture_sample()` 重载函数，可接受标量、`vec2f` 或 `vec3f` 坐标。\n- **滤波模式：** `FILTER_POINT` 用于最近邻采样，`FILTER_LINEAR` 用于双线性（2D）或三线性（3D）插值。\n- **寻址模式：** `ADDRESS_WRAP`、`ADDRESS_CLAMP`、`ADDRESS_MIRROR` 和 `ADDRESS_BORDER` 控制如何处理超出范围的纹理坐标，且可按每个轴单独配置。\n- **数组互操作：** 纹理对象提供了 `copy_from_array()` 和 `copy_to_array()` 方法，用于在 `wp.array` 对象与纹理内存之间传输数据。同时，`cuda_surface` 属性暴露了 CUDA 表面句柄，便于高级互操作。\n- **广泛的类型支持：** 纹理支持 1、2 或 4 通道的整型和浮点型数据。读取时，整型数据会自动归一化为浮点数值。\n\n### 下标风格的类型提示\n\n当标注时","2026-03-06T20:21:37",{"id":185,"version":186,"summary_zh":187,"released_at":188},62664,"v1.11.1","# Warp v1.11.1\n\nWarp v1.11.1 是继 v1.11.0 之后的一个错误修复版本。有关完整变更列表，请参阅 [更改日志](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fv1.11.1\u002FCHANGELOG.md)。\n\n## 亮点\n\n此版本主要是错误修复，未引入重大新功能。关键修复包括：\n\n- **分块操作**：修复了在使用 `c = wp.tile_matmul(a, b)` 形式时，`wp.tile_matmul()` 有时会因读取未初始化的输出内存而产生 NaN 结果（#1180）。此外，还修复了当一个操作数为向量或矩阵类型时，与标量常量进行分块乘法的问题（#1175），并在 `wp.tile_map()` 中启用了标量、向量和矩阵类型的参数（#1136）。\n\n- **代码生成**：修复了在内核中用于静态循环展开时，`wp.static()` 错误地将循环变量解析为同名的全局 Python 变量的问题（例如，在 `for i in range(n)` 内部使用 `wp.static(i)` 时，如果存在全局变量 `i`，就会使用该全局变量，而不是循环迭代值）（#1139）。此外，还修复了条件表达式（三元 `if`\u002F`else`）中的段错误：当其中一个分支访问数组元素，而另一个分支被选中时会出现该问题。\n\n- **CUDA 图**：修复了包含多个临时分配的 CUDA 图占用内存过多的问题。此前，在图捕获过程中释放的内存未能正确排序以供后续分配重用，导致内存不断累积（例如，连续三次各 1GB 的分配会消耗 3GB 内存，而不是重复使用同一块 1GB 的内存）。\n\n- **开发者体验**：修复了在 Python 3.10+ 上，使用 `@wp.func` 装饰的函数在 Pyright\u002FPylance 中显示为通用的 `_Wrapped` 类型，而非其实际签名的问题。此外，还修复了 IDE 自动补全存根文件中的多个问题，这些问题曾导致 mypy 和 Pyright 中出现类型检查错误，包括不正确的 `@overload` 使用、被遮蔽的 `bool` 类型引用以及整数类型参数缺少 `Literal[]` 语法等问题。\n\n- **文档**：为整个 API 补充了缺失的文档字符串，涵盖内置函数、类型构造函数、常量以及 `warp.fem` 符号等（#1159）。同时新增了 [`example_particle_repulsion.py`](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002Fwarp\u002Fexamples\u002Foptim\u002Fexample_particle_repulsion.py)，演示如何使用 `wp.grad()`（#1137）。\n\n## 公告\n\n### 即将移除的功能\n\n以下功能已被弃用，将在 **v1.12** 中移除：\n\n- **通过 `wp.matrix()` 从列向量构造矩阵**：在 Python 和内核作用域中，通过将列向量传递给 `wp.matrix()` 来构造矩阵的功能已被弃用。请改用 `wp.matrix_from_cols()`。\n\n- **通过 `wp.matrix()` 从向量构造矩阵**：在 Python 和内核作用域中，通过将向量传递给 `wp.matrix()` 来构造矩阵的功能已被弃用。由于行为不一致，替换方法取决于作用域：\n\n  ```python\n  # 内核作用域（向量被视为列）\n  # 已弃用（将在 v1.12 中移除）：\n  m = wp.mat33(col0, col1, col2)\n  # 请改用：\n  m = wp.matrix_from_cols(col0, col1,","2026-02-03T21:20:35",{"id":190,"version":191,"summary_zh":192,"released_at":193},62665,"v1.11.0","# Warp v1.11.0\n\nWarp v1.11 为多世界工作负载引入了分组感知的空间查询，提供了管理 JIT 编译开销的新选项，并通过 `wp.grad()` 扩展了差异化计算能力。此外，本次发布还增加了对瓦片操作的支持、内核中的解包运算符、C++ 集成示例，以及一次重大的 API 清理，以更清晰地区分公共接口与内部接口。\n\n## 新特性\n\n### 分组感知的空间查询\n\nWarp v1.11 引入了针对 `wp.Bvh` 和 `wp.Mesh` 数据结构的分组感知构建与查询功能，从而能够在多个独立环境中高效地执行空间查询。此功能允许您构建一个包含来自多个世界或场景几何体的单一加速结构，然后独立查询每个世界，而无需遍历其他世界的图元。\n\n在构建 BVH 或 Mesh 时，可以使用 `groups` 参数将每个图元分配到相应的组。Warp 会在统一的结构中为每个组构建隔离的子树：\n\n```python\n# 在 Python 中构建包含多个世界的 BVH\nlowers = wp.array(...)  # 所有世界的形状边界\nuppers = wp.array(...)\nworld_ids = wp.array([0, 0, 1, 1, 2, 2, ...], dtype=int)\n\nbvh = wp.Bvh(lowers, uppers, groups=world_ids)\n\n@wp.kernel\ndef raycast_world(\n    bvh_id: wp.uint64,\n    world_id: int,\n    ray_origin: wp.vec3,\n    ray_dir: wp.vec3\n):\n    # 获取该世界子树的根节点\n    root = wp.bvh_get_group_root(bvh_id, world_id)\n    \n    # 仅查询与该世界几何体相交的部分\n    query = wp.bvh_query_ray(bvh_id, ray_origin, ray_dir, root)\n    \n    # 处理命中结果\n    shape_idx = int(0)\n    while wp.bvh_query_next(query, shape_idx):\n        # 处理与 shape_idx 相交的情况\n        pass\n\n# 启动内核查询世界 2\nwp.launch(raycast_world, dim=1, inputs=[bvh.id, 2, origin, direction])\n```\n\n上述示例为了清晰起见仅展示了单个世界的查询。在实际生产环境中，应并行启动多个线程，每个线程从世界 ID 和光线参数数组中获取其负责的世界进行查询。有关并行多世界光线追踪的实际应用示例，请参阅 [Newton 的光线追踪实现](https:\u002F\u002Fgithub.com\u002Fnewton-physics\u002Fnewton\u002Fblob\u002Fmain\u002Fnewton\u002F_src\u002Fsensors\u002Fwarp_raytrace\u002Fbvh.py)。\n\n#### 核心特性\n\n- **分组构建**：在构建过程中传入 `groups` 数组，即可将图元组织为隔离的子树。\n- **分组限制的查询**：所有查询函数都接受可选的 `root` 参数，用于将遍历范围限制在特定分组内。\n- **辅助函数**：`wp.bvh_get_group_root()` 和 `wp.mesh_get_group_root()` 可分别获取各分组的子树根节点。\n\n*感谢 @StafaH 实现此功能。*\n\n### 几何体查询增强\n\nWarp v1.11 为空间查询新增了几种新函数并进行了多项改进：\n\n- **`wp.mesh_query_ray_anyhit()`**：快速任意命中查询，一旦找到任何相交即立即返回，适用于渲染中的阴影光线计算。\n- *","2026-01-02T13:26:06",{"id":195,"version":196,"summary_zh":197,"released_at":198},62666,"v1.10.1","# Warp v1.10.1\n\nWarp v1.10.1 是继 v1.10.0 之后的一个错误修复版本。有关完整的变更列表，请参阅 [更改日志](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fv1.10.1\u002FCHANGELOG.md)。\n\n## 亮点\n\n此版本主要是错误修复，没有重大新功能。关键修复包括：\n\n- **使用 `module=\"unique\"` 的模块复用**：修复了使用 `@wp.kernel(module=\"unique\")` 的内核在多次定义时能够正确复用现有模块对象的问题，从而避免不必要的模块创建开销。\n- **内核局部数组**：修复了在内核中使用 `wp.zeros()` 创建的数组的多个问题，包括 `.ptr` 访问、子数组索引以及接受单个整数作为 `shape` 参数等问题。\n- **自定义梯度**：修复了一个代码生成顺序相关的错误，该错误可能导致在嵌套函数调用中使用的自定义梯度函数（`@wp.func_grad`）无法编译。\n- **有限元方法改进**：修复了在录制反向传播轨迹时使用 `wp.fem.TemporaryStore` 时出现的无效读取问题，并解决了 `wp.fem.Temporary` 和 `wp.fem.ShapeBasisSpace` 中的引用循环问题。\n\n## 公告\n\n### 即将移除的功能\n\n以下功能已弃用，将在 **v1.11** 中移除（计划于 2026 年 1 月）：\n\n- **`jax_callable()` 中的 `graph_compatible` 参数**：布尔型的 `graph_compatible` 标志已被弃用，取而代之的是新的 `graph_mode` 参数，该参数接受 `GraphMode` 枚举值。请改用 `GraphMode.JAX`、`GraphMode.WARP` 或 `GraphMode.NONE`。\n\n  ```python\n  # 已弃用（v1.10.1，将在 v1.11 中移除）\n  callable = wp.jax_experimental.jax_callable(func, graph_compatible=True)\n  \n  # 请改用\n  from warp.jax_experimental import GraphMode\n  callable = wp.jax_experimental.jax_callable(func, graph_mode=GraphMode.JAX)\n  ```\n\n### 平台支持\n\n- **Python 3.8**：我们计划从 v1.11 开始停止对 Python 3.8 的支持，该版本已于 2024 年 10 月结束生命周期。\n- **CUDA 工具包**：从 v1.11 开始，在 PyPI 上发布的默认预构建轮包将基于 CUDA 工具包 12.9 而不是 12.8 构建。这不会改变驱动程序要求，但将启用新的编译器选项，以在内核编译速度和运行时性能之间进行权衡。我们计划在 2026 年年中再次过渡到 CUDA 工具包 13.x。\n\n## 致谢\n\n我们感谢以下贡献者：\n\n- @mehdiataei 修复了使用 `wp.static()` 表达式进行循环展开时导致某些代码模式无法正确编译的问题。","2025-12-01T13:13:27",{"id":200,"version":201,"summary_zh":202,"released_at":203},62667,"v1.10.0","# Warp v1.10.0\n\nWarp v1.10 扩展了与 JAX 的集成，新增自动微分支持以及对多设备 `jax.pmap()` 的兼容性。同时，瓦片编程模型也得到了增强，引入了按轴的规约、组件级索引，以及用于创建瓦片的便捷函数。\n\n在多个方面，性能得到了显著提升：BVH 操作现支持针对 CUDA 图的就地重建和可配置的叶节点大小；从 Python 调用内置函数的速度最高提升了 70 倍；此外，更多的稀疏矩阵和有限元分析操作现在也可以被纳入 CUDA 图中进行捕捉。\n\n其他易用性改进包括：数组支持负索引和切片操作、原子位运算，以及新增的误差函数和类型转换等内置函数。\n\n**重要提示**：此版本移除了自 v1.8 起已废弃的 `warp.sim` 模块，该模块已被 [Newton 物理引擎](https:\u002F\u002Fgithub.com\u002Fnewton-physics\u002Fnewton) 取代。有关迁移指南及其他即将发生的变化，请参阅下方的公告部分。\n\n如需查看完整的变更列表，请参阅[完整变更日志](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fv1.10.0\u002FCHANGELOG.md)。\n\n## 新特性\n\n### JAX 自动微分（实验性）\n\nWarp 现在支持基于 JAX 的实验性自动微分功能，使内核能够参与 JAX 的自动微分工作流。该功能由 @mehdiataei 贡献，并建立在 @jaro-sevcik 此前工作的基础上。通过将 `enable_backward=True` 传递给 `jax_kernel()`，用户可以使用 `jax.grad()` 计算经过 Warp 内核的梯度。\n\n主要功能包括：\n\n- **单输出和多输出内核**：可为具有一个或多个输出数组的内核计算梯度。\n- **静态输入自动检测**：标量输入会被自动视为静态（不可微）参数。\n- **向量和矩阵数组**：完全支持复合类型数组，例如 `wp.vec2` 或 `wp.mat22`。\n- **多设备执行**：与 `jax.pmap()` 兼容，可在多块 GPU 上分布式地执行前向和反向传播。\n\n```python\nimport jax\nfrom warp.jax_experimental import jax_kernel\n\n@wp.kernel\ndef my_kernel(a: wp.array(dtype=float), out: wp.array(dtype=float)):\n    i = wp.tid()\n    out[i] = a[i] ** 2.0\n\n# 启用自动微分\njax_func = jax_kernel(my_kernel, num_outputs=1, enable_backward=True)\n\n# 通过内核计算梯度\ngrad_fn = jax.grad(lambda a: jax.numpy.sum(jax_func(a)[0]))\ngradient = grad_fn(input_array)  # 梯度：[2*a[0], 2*a[1], ...]\n```\n\n该功能目前仍处于实验阶段，存在一些限制。完整的示例、使用说明及限制详情，请参阅[JAX 自动微分](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Finteroperability.html#jax-automatic-differentiation)文档。\n\n### 支持 `jax.pmap()` 的多设备 JAX 集成\n\n得益于一系列修复，Warp 现在能够正确支持 `jax.pmap()` 和 `jax.shard_map()`，实现多设备并行执行。","2025-11-02T14:11:50",{"id":205,"version":206,"summary_zh":207,"released_at":208},62668,"v1.9.1","# Warp v1.9.1\n\nWarp 1.9.1 是一个错误修复版本，紧随我们最近的功能更新之后。有关所有更改的完整列表，请参阅 [变更日志](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fv1.9.1\u002FCHANGELOG.md)。\n\n## 亮点\n\n- **GPU 兼容性**：在 PyPI 上分发的 Warp 1.9.0 预构建轮子中，无意间移除了对较旧 NVIDIA GPU 架构（Maxwell、Pascal、Volta）的支持。现已将这些架构重新添加回支持列表。\n- **文档改进**：我们已更正了 `wp.mesh_query_aabb()` 和 `wp.mesh_query_aabb_next()` 的文档，增加了一条关于在多 GPU 系统上使用 `__cuda_array_interface__` 的注意事项，并修复了将内置函数错误标记为可微的问题。\n- **修正切片行为**：空切片（例如 `arr[i:i]`）现在在 Python 作用域中能够正确处理，返回空数组而非抛出错误。\n- **Tile 的稳定性和正确性**：修复了一个与共享 Tile 相关的关键内存管理问题，以防止不可预测的崩溃和内存泄漏。此外，`wp.copy()` 和 `wp.where()` 等函数现在可以正确处理 Tile，并计算出正确的梯度（伴随导数）。\n- **元组类型提示**：解决了在 Python 3.9 和 3.10 上，当使用现代元组类型提示（如 `tuple[int, int]`）与 `@wp.func` 装饰的函数一起使用时出现的 `TypeError`。\n\n## 公告\n\n### 已知限制\n\n- **ARM 平台上的 CPU 内核**：在 Linux ARM 系统（如 NVIDIA Jetson Thor 和 Grace Hopper）上启动 CPU 内核可能会导致段错误。此问题的修复计划将在 v1.10 版本中推出。GPU 内核不受影响。\n\n### 即将移除的功能\n\n以下功能已在先前版本中弃用，并将于 v1.10 版本（预计于十一月初）中正式移除：\n\n- `warp.sim` - 请改用 [Newton 引擎](https:\u002F\u002Fgithub.com\u002Fnewton-physics\u002Fnewton)。\n- 使用列向量构造 `wp.matrix()` - 请改用 `wp.matrix_from_rows()` 或 `wp.matrix_from_cols()`。\n- `wp.select()` - 请改用 `wp.where()`（注意：参数顺序不同）。\n- `wp.matrix(pos, quat, scale)` - 请改用 `wp.transform_compose()`。\n\n### 平台支持\n\n- 我们计划在未来的某个版本中（暂定为 v1.10）停止对 Intel macOS（x86-64）平台的支持。\n\n## 致谢\n\n我们感谢以下贡献者为本次发布所做的宝贵贡献：\n\n- @RSchwan：做出了重大贡献，修复了 Tile 的内存管理问题，并使 `wp.copy()` 和 `wp.where()` 等函数能够正确处理 Tile 参数 (#777)。\n- @liblaf：报告了与 GPU 架构兼容性相关的问题 (#960、#966)，以及 `wp.map()` 的代码生成问题 (#953)。","2025-10-01T07:37:06",{"id":210,"version":211,"summary_zh":212,"released_at":213},62669,"v1.9.0","Warp 1.9 带来了重写的 marching cubes 实现、对 CUDA 13 工具包的兼容性，以及用于提前编译模块的新函数。编程模型也得到了增强，包括针对复合类型的更灵活索引、对 `IntEnum` 的直接支持，以及在核函数中初始化局部数组的能力。\n\n## 新特性\n\n### 可微分的 marching cubes\n\n由 @mikacuy 和 @nmwsharp 贡献的完全可微分的 `wp.MarchingCubes` 实现已被加入。该版本完全用 Warp 编写，取代了之前的原生 CUDA C++ 实现，并使其能够在 CPU 和 GPU 设备上运行。此外，该实现还修复了一个长期存在的越界错误 (#324)。更多详情请参阅[更新后的文档](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Fruntime.html#marching-cubes)。\n\n### 模块编译与加载函数\n\n我们新增了 `wp.compile_aot_module()` 和 `wp.load_aot_module()`，以提供更为灵活的提前编译（AOT）功能。\n\n这些函数包含一个 `strip_hash=True` 参数，用于移除已编译模块和函数名称中的唯一哈希值。这一改动使得在不随附原始 Python 源代码的情况下分发预编译模块成为可能。\n\n有关更多详细信息，请参阅关于[提前编译工作流](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fcodegen.html#ahead-of-time-compilation-workflows)的文档。在未来的版本中，我们将继续扩展 Warp 对提前编译工作流的支持。\n\n## CUDA 13 支持\n\n[CUDA 工具包 13.0](https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fwhats-new-and-important-in-cuda-toolkit-13-0\u002F) 于八月初发布。\n\n**PyPI 发布**：PyPI 和 NVIDIA PyPI 上的 Warp wheel 将继续基于 CUDA 12.8 构建，以便为正在升级 CUDA 驱动程序的用户提供过渡期。\n\n**CUDA 13.0 兼容性**：对于需要使用 CUDA 13.x 编译的 Warp 用户，有两种选择：\n\n- 从源码构建 Warp\n- 安装来自 GitHub 发布页面的预构建 wheel\n\n**驱动程序兼容性**：由于 CUDA 的向后兼容性，基于 CUDA 12.8 构建的 Warp wheel 可以在安装了 CUDA 13.x 驱动程序的系统上运行。\n\n## 性能改进\n\n### 可被图捕获的线性求解器\n\n`warp.optim.linear` 中的迭代式线性求解器（CG、BiCGSTAB、GMRES）现已完全兼容 CUDA 图捕获。这增加了通过 `wp.capture_while()` 进行设备端收敛检查的支持，从而在 `check_every=0` 时实现完整的 CUDA 图捕获。用户现在可以在传统的主机端收敛检查与完全可被图捕获的设备端终止条件之间进行选择。\n\n### 稀疏线性代数的自动分块\n\n`warp.sparse` 现在支持任意大小的块，并且可以针对某些矩阵类型利用基于块的计算。系统会根据矩阵特征（块大小、稀疏模式和工作负载维度）采用启发式方法自动选择是否使用分块执行。需要注意的是，用于选择的启发式方法…","2025-09-05T03:54:40",{"id":215,"version":216,"summary_zh":217,"released_at":218},62670,"v1.9.0rc1","Isaac Lab 测试的候选发布版本。","2025-08-20T15:59:11",{"id":220,"version":221,"summary_zh":222,"released_at":223},62671,"v1.8.1","此补丁版本主要包含按预期的错误修复。\n\n然而，为了支持 MuJoCo MJX 物理引擎采用 Warp，它还包含了仅限于 `jax_experimental` 模块的新功能和弃用内容。我们特此指出这一偏离标准版本管理做法的情况，以确保清晰明了。下一次发布将恢复正常的版本管理流程。\n\n## 完整变更日志\n\n### 已弃用\n\n- 这是最后一个提供针对 CUDA 11.x 工具包及驱动程序构建或支持的版本。从 v1.9.0 开始，Warp 将要求使用 CUDA 12.x 或更高版本。\n- 弃用 `jax_callable()` 中的 `graph_compatible` 布尔标志，转而使用带有 `GraphMode` 枚举的新参数 `graph_mode` (#848)。\n\n### 新增\n\n- 添加关于使用 NumPy 创建和操作 Warp 结构化数组的文档 (#852)。\n- 添加关于 `wp.indexedarray()` 的文档 (#468)。\n- 支持 JAX FFI 中的输入输出别名问题 (#815)。\n- 通过新的 `graph_mode` 参数 (`GraphMode.WARP`)，支持使用 Warp 捕获 `jax_callable()`，从而能够捕获包含条件节点且无法作为子图用于 JAX 捕获的图 (#848)。\n\n### 修复\n\n- 修复 `tape.zero()`，使其在嵌套结构体中正确重置梯度数组 (#807)。\n- 修复 `div(scalar, vec)`、`div(scalar, mat)` 和 `div(scalar, quat)` 的伴随值错误，以及其他伴随值相关的杂项问题 (#831)。\n- 修复在声明时无法解析的静态表达式所使用的函数或内核的模块哈希问题 (#830)。\n- 修复模块初始化后未正确应用 `wp.config.mode` 更改的 bug (#856)。\n- 修复在使用条件图节点时可能导致 CUDA 模块过早卸载的 bug。\n- 通过升级至 libmathdx 0.2.2，修复使用矩阵乘法、Cholesky 分解和 FFT 求解器的内核的编译时间回归问题 (#809)。\n- 修复 `wp.tile_sort()` 中潜在的未初始化内存问题 (#836)。\n- 修复 `wp.tile_min()` 和 `wp.tile_argmin()` 在高占用率的大尺寸瓦片上返回不正确值的问题 (#725)。\n- 修复使用共享瓦片时 `wp.tile_sum()` 伴随值相关的代码生成错误 (#822)。\n- 修复由于使用错误版本而导致的 `cuDeviceGetUuid` 驱动程序入口点错误 (#851)。\n- 修复导致 Warp 向 NVRTC 请求为编译器不支持的架构生成 PTX 的问题 (#858)。\n- 修复 `wp.sparse.bsr_from_triplets()` 忽略 `prune_numerical_zeros=False` 设置的回归问题 (#832)。\n- 修复 `wp.sim.VBDIntegrator` 中在 `handle_self_contact=False` 时缺失的布料与刚体接触问题 (#862)。\n- 修复可能导致颜色平衡计算陷入无限循环的 bug (#816)。\n- 通过在最近接近点而非源方盒中心计算接触法向量，修复方盒与方盒的碰撞问题 (#839)。\n- 修复 OpenGL 渲染器无法正确显示方盒形状颜色的 bug (#810)。\n- 修复 `OpenGLRenderer` 中网格具有不同 `scale` 属性时出现的错误。","2025-08-01T17:41:44",{"id":225,"version":226,"summary_zh":227,"released_at":228},62672,"v1.8.0","# 更改日志\n\n## [1.8.0] - 2025-07-01\n\n### 新增功能\n\n- 添加 `wp.map()`，用于对数组应用函数，并为 Warp 数组添加数学运算符（[文档](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Fruntime.html#warp.utils.map)），#694。\n- 在 CUDA 图中添加对动态控制流的支持，参见 `wp.capture_if()` 和 `wp.capture_while()`（[文档](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Fruntime.html#conditional-execution)），#597。\n- 添加 `wp.capture_debug_dot_print()`，用于生成描述捕获的 CUDA 图结构的 DOT 文件（#746）。\n- 添加 `Device.sm_count` 属性，用于获取 CUDA 设备上的流式多处理器数量（#584）。\n- 添加 `wp.block_dim()`，用于在内核内部查询当前线程块中的线程数（#695）。\n- 添加 `wp.atomic_cas()` 和 `wp.atomic_exch()` 内置函数，用于原子比较并交换及原子交换操作（#767）。\n- 添加对使用全局 `wp.config.compile_time_trace` 设置或模块级 `\"compile_time_trace\"` 选项来分析 GPU 运行时模块编译的支持。启用后，将以 Trace Event 格式的 JSON 文件写入内核缓存，这些文件可在类似 `chrome:\u002F\u002Ftracing\u002F` 的查看器中打开（[文档](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fprofiling.html#profiling-module-compilation)），#609。\n- 添加对从原生函数（如 `wp.svd3()` 和 `wp.quat_to_axis_angle()`）返回多个值的支持（#503）。\n- 添加将瓦片传递给用户定义的 `wp.func` 函数的支持（#682）。\n- 添加 `wp.tile_squeeze()`，用于移除长度为 1 的维度（#662）。\n- 添加 `wp.tile_reshape()`，用于重新调整瓦片的形状（#663）。\n- 添加 `wp.tile_astype()`，用于返回具有相同数据但不同数据类型的新的瓦片（#683）。\n- 添加对瓦片就地加法和减法操作的支持（#518）。\n- 添加对瓦片组件就地加法和减法操作的支持（#659）。\n- 添加对使用 `wp.tile_cholesky_solve()` 进行 2D 求解的支持（#773）。\n- 添加 `wp.tile_scan_inclusive()` 和 `wp.tile_scan_exclusive()`，用于对瓦片执行包含性和排除性扫描（#731）。\n- 支持在表达式的右侧对四元数进行属性索引访问（#625）。\n- 添加 `wp.transform_compose()` 和 `wp.transform_decompose()`，用于在变换与包含 3D 缩放信息的 4x4 矩阵之间进行转换（#576）。\n- 添加多种 `wp.transform` 语法操作，用于加载和存储（#710）。\n- 向 `UsdRenderer.render_points()` 添加 `as_spheres` 参数，以选择是使用点实例化器将点渲染为 USD 球体，还是将其渲染为简单的 USD 点（#634）。\n- 添加对 USD 渲染器中对象可见性动画的支持（#598）。\n- 添加 `wp.sim.VBDIntegrator.rebuild_bvh()`，用于重建用于检测自接触的 BVH。\n- 为 `wp.sim.VBDIntegrator` 的碰撞添加阻尼项，其强度由 `Model.soft_contact_kd` 控制。\n- 提高 `wp.fem.lookup()` 算子在不同几何体之间的一致性，并添加过滤参数（#618）。\n- 添加两个示例，演示如何使用 `warp.fem` 进行形状优化：`fem\u002Fexampl","2025-07-01T18:32:18",{"id":230,"version":231,"summary_zh":232,"released_at":233},62673,"v1.7.2.post1","# Changelog\r\n\r\n## [1.7.2] - 2025-05-31\r\n\r\n### Added\r\n\r\n- Add missing adjoint method for tile `assign` operations (#680).\r\n- Add documentation for the fact that `+=` and `-=` invoke `wp.atomic_add()` and `wp.atomic_sub()`, respectively (#505).\r\n- Add a [publications list](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fblob\u002Fmain\u002FPUBLICATIONS.md) of academic and research projects leveraging Warp (#686).\r\n\r\n### Changed\r\n\r\n- Prevent and document that class inheritance is not supported for `wp.struct` (now throws `RuntimeError`) (#656).\r\n- Warn when an incompatible data type conversion is detected when constructing an array using the `__cuda_array_interface__` (#624, #670).\r\n- Relax the exact version requirement in `omni.warp` towards `omni.warp.core` (#702).\r\n- Rename the \"Kernel Reference\" documentation page to \"Built-Ins Reference\", with each built-in now having annotations to denote whether they are accessible only from the kernel scope or also from the Python runtime scope (#532).\r\n\r\n### Fixed\r\n\r\n- Fix an issue where arrays stored in structs could be garbage collected without updating the struct ctype (#720).\r\n- Fix an issue with preserving the base class of nested struct attributes (#574).\r\n- Allow recovering from out-of-memory errors during `wp.Volume` allocation (#611).\r\n- Fix 2D tile load when source array and tile have incompatible strides (#688).\r\n- Fix compilation errors with `wp.tile_atomic_add()` (#681).\r\n- Fix `wp.svd2()` with duplicate singular values and improved accuracy (#679).\r\n- Fix `OpenGLRenderer.update_shape_instance()` not having color buffers created for the shape instances.\r\n- Fix text rendering in `wp.render.OpenGLRenderer` (#704).\r\n- Fix assembly of rigid body inertia in `ModelBuilder.collapse_fixed_joints()` (#631).\r\n- Fix `UsdRenderer.render_points()` erroring out when passed 4 points or less (#708).\r\n- Fix `wp.atomic_*()` built-ins not working with some types (#733).\r\n- Fix garbage-collection issues with JAX FFI callbacks (#711).","2025-05-31T20:37:04",{"id":235,"version":236,"summary_zh":237,"released_at":238},62674,"v1.7.1","# Changelog\r\n\r\n## [1.7.1] - 2025-04-30\r\n\r\n### Added\r\n\r\n- Add example of a distributed Jacobi solver using `mpi4py` in `warp\u002Fexamples\u002Fdistributed\u002Fexample_jacobi_mpi.py` (#475).\r\n\r\n### Changed\r\n\r\n- Improve `repr()` for Warp types, including adding `repr()` for `wp.array`.\r\n- Change the USD renderer to use `framesPerSecond` for time sampling instead of `timeCodesPerSecond` to avoid playback speed issues in some viewers (#617).\r\n- `Model.rigid_contact_tids` are now -1 at non-active contact indices which allows to retrieve the vertex index of a mesh collision, see `test_collision.py` (#623).\r\n- Improve handling of deprecated JAX features (#613).\r\n\r\n### Fixed\r\n\r\n- Fix a code generation bug involving return statements in Warp kernels, which could result in some threads in Warp being skipped when processed on the GPU (#594).\r\n- Fix constructing `DeformedGeometry` from `wp.fem.Trimesh3D` geometries (#614).\r\n- Fix `lookup` operator for `wp.fem.Trimesh3D` (#618).\r\n- Include the block dimension in the LTO file hash for the Cholesky solver (#639).\r\n- Fix tile loads for small tiles with aligned source memory (#622).\r\n- Fix length\u002Fshape matching for vectors and matrices from the Python scope.\r\n- Fix the `dtype` parameter missing for `wp.quaternion()`.\r\n- Fix invalid `dtype` comparison when using the `wp.matrix()`\u002F`wp.vector()`\u002F`wp.quaternion()` constructors with literal values and an explicit `dtype` argument (#651).\r\n- Fix incorrect thread index lookup for the backward pass of `wp.sim.collide()` (#459).\r\n- Fix a bug where `wp.sim.ModelBuilder` adds springs with -1 as vertex indices (#621).\r\n- Fix center of mass, inertia computation for mesh shapes (#251).\r\n- Fix computation of body center of mass to account for shape orientation (#648).\r\n- Fix `show_joints` not working with `wp.sim.render.SimRenderer` set to render to USD (#510).\r\n- Fix the jitter for the `OgnParticlesFromMesh` node not being computed correctly.\r\n- Fix documentation of `atol` and `rtol` arguments to `wp.autograd.gradcheck()` and `wp.autograd.gradcheck_tape()` (#508).","2025-05-01T06:03:12",{"id":240,"version":241,"summary_zh":242,"released_at":243},62675,"v1.7.0","# Changelog\r\n\r\n## [1.7.0] - 2025-03-30\r\n\r\n### Added\r\n\r\n- Support JAX foreign function interface (FFI) ([docs](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Finteroperability.html#jax-foreign-function-interface-ffi), #511).\r\n- Support Python\u002FSASS correlation in Nsight Compute reports by emitting `#line` directives in CUDA-C code. This setting is controlled by `wp.config.line_directives` and is `True` by default. ([docs](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fprofiling.html#nsight-compute-profiling), #437)\r\n- Support `vec4f` grid construction in `wp.Volume.allocate_by_tiles()`.\r\n- Add 2D SVD `wp.svd2()` (#436).\r\n- Add `wp.randu()` for random `uint32` generation.\r\n- Add matrix construction functions `wp.matrix_from_cols()` and `wp.matrix_from_rows()` (#278).\r\n- Add `wp.transform_from_matrix()` to obtain a transform from a 4x4 matrix (#211).\r\n- Add `wp.where()` to select between two arguments conditionally using a more intuitive argument order (`cond`, `value_if_true`, `value_if_false`) (#469).\r\n- Add `wp.get_mempool_used_mem_current()` and `wp.get_mempool_used_mem_high()` to query the respective current and high-water mark memory pool allocator usage (#446 ).\r\n- Add `Stream.is_complete` and `Event.is_complete` properties to query completion status (#435).\r\n- Support timing events inside of CUDA graphs (#556).\r\n- Add LTO cache to speed up compilation times for kernels using MathDx-based tile functions. Use `wp.clear_lto_cache()` to clear the LTO cache (#507).\r\n- Add example demonstrating gradient checkpointing for fluid optimization in `warp\u002Fexamples\u002Foptim\u002Fexample_fluid_checkpoint.py`.\r\n- Add a hinge-angle-based bending force to `wp.sim.VBDIntegrator`.\r\n- Add an example to show mesh sampling using a CDF (#476).\r\n\r\n### Changed\r\n\r\n- **Breaking:** Remove CUTLASS dependency and `wp.matmul()` functionality (including batched version). Users should use tile primitives for matrix multiplication operations instead.\r\n- Deprecate constructing a matrix from vectors using `wp.matrix()`.\r\n- Deprecate `wp.select()` in favor of `wp.where()`. Users should update their code to use `wp.where(cond, value_if_true, value_if_false)` instead of `wp.select(cond, value_if_false, value_if_true)`.\r\n- `wp.sim.Control` no longer has a `model` attribute (#487).\r\n- `wp.sim.Control.reset()` is deprecated and now only zeros-out the controls (previously restored controls to initial `model` state). Use `wp.sim.Control.clear()` instead.\r\n- Vector\u002Fmatrix\u002Fquaternion component assignment operations (e.g., `v[0] = x`) now compile and run faster in the backward pass. Note: For correct gradient computation, each component should only be assigned once.\r\n- `@wp.kernel` has now an optional `module` argument that allows passing a `wp.context.Module` to the kernel, or, if set to `\"unique\"` let Warp create a new unique module just for this kernel. The default behavior to use the current module is unchanged.\r\n- Default PTX architecture is now automatically determined by the devices present in the system, ensuring optimal compatibility and performance (#537).\r\n- Structs now have a trivial default constructor, allowing for `wp.tile_reduce()` on tiles with struct data types.\r\n- Extend `wp.tile_broadcast()` to support broadcasting to 1D, 3D, and 4D shapes (in addition to existing 2D support).\r\n- `wp.fem.integrate()` and `wp.fem.interpolate()` may now perform parallel evaluation of quadrature points within elements.\r\n- `wp.fem.interpolate()` can now build Jacobian sparse matrices of interpolated functions with respect to a trial field.\r\n- Multiple `wp.sparse` routines (`bsr_set_from_triplets`, `bsr_assign`, `bsr_axpy`, `bsr_mm`) now accept a `masked` flag to discard any non-zero not already present in the destination matrix.\r\n- `wp.sparse.bsr_assign()` no longer requires source and destination block shapes to evenly divide each other.\r\n- Extend `wp.expect_near()` to support all vectors and quaternions.\r\n- Extend `wp.quat_from_matrix()` to support 4x4 matrices.\r\n- Update the `OgnClothSimulate` node to use the VBD integrator (#512).\r\n- Remove the `globalScale` parameter from the `OgnClothSimulate` node.\r\n\r\n### Fixed\r\n\r\n- Fix an out-of-bounds access bug caused by an unbalanced BVH tree (#536).\r\n- Fix an error of incorrectly adding the offset to -1 elements in `edge_indices` when adding a ModelBuilder to another (#557).","2025-03-30T21:15:20",{"id":245,"version":246,"summary_zh":247,"released_at":248},62676,"v1.6.2","# Changelog\r\n\r\n## [1.6.2] - 2025-03-07\r\n\r\n### Changed\r\n\r\n- Update project license from *NVIDIA Software License* to *Apache License, Version 2.0* (see [LICENSE.md](.\u002FLICENSE.md)).","2025-03-08T00:23:39",{"id":250,"version":251,"summary_zh":252,"released_at":253},62677,"v1.6.1","# Changelog\r\n\r\n## [1.6.1] - 2025-03-03\r\n\r\n### Added\r\n\r\n- Document `wp.Launch` objects ([docs](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Fruntime.html#launch-objects), #428).\r\n- Document how overwriting previously computed results can lead to incorrect gradients ([docs](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Fdifferentiability.html#array-overwrites), #525).\r\n\r\n### Fixed\r\n\r\n- Fix unaligned loads with offset 2D tiles in `wp.tile_load()`.\r\n- Fix FP64 accuracy of thread-level matrix-matrix multiplications (#489).\r\n- Fix `wp.array()` not initializing from arrays defining a CUDA array interface when the target device is CPU (#523).\r\n- Fix `wp.Launch` objects not storing and replaying adjoint kernel launches (#449).\r\n- Fix `wp.config.verify_autograd_array_access` failing to detect overwrites in generic Warp functions (#493).\r\n- Fix an error on Windows when closing an `OpenGLRenderer` app (#488).\r\n- Fix per-vertex colors not being correctly written out to USD meshes when a constant color is being passed (#480).\r\n- Fix an error in capturing the `wp.sim.VBDIntegrator` with CUDA graphs when `handle_self_contact` is enabled (#441).\r\n- Fix an error of AABB computation in `wp.collide.TriMeshCollisionDetector`.\r\n- Fix URDF-imported planar joints not being set with the intended `target_ke`, `target_kd`, and `mode` parameters (#454).\r\n- Fix `ModelBuilder.add_builder()` to use correct offsets for `ModelBuilder.joint_parent` and `ModelBuilder.joint_child` (#432)\r\n- Fix underallocation of contact points for box–sphere and box–capsule collisions.\r\n- Fix `wp.randi()` documentation to show correct output range of `[-2^31, 2^31)`.\r\n","2025-03-03T16:27:00",{"id":255,"version":256,"summary_zh":257,"released_at":258},62678,"v1.6.0","# Changelog\r\n\r\n## [1.6.0] - 2025-02-03\r\n\r\n### Added\r\n\r\n- Add preview of Tile Cholesky factorization and solve APIs through `wp.tile_cholesky()`, `tile_cholesky_solve()`\r\n  and `tile_diag_add()` (preview APIs are subject to change).\r\n- Support for loading tiles from arrays whose shapes are not multiples of the tile dimensions.\r\n  Out-of-bounds reads will be zero-filled and out-of-bounds writes will be skipped.\r\n- Support for higher-dimensional (up to 4D) tile shapes and memory operations.\r\n- Add intersection-free self-contact support in `wp.sim.VDBIntegrator` by passing `handle_self_contact=True`.\r\n  See `warp\u002Fexamples\u002Fsim\u002Fexample_cloth_self_contact.py` for a usage example.\r\n- Add functions `wp.norm_l1()`, `wp.norm_l2()`, `wp.norm_huber()`, `wp.norm_pseudo_huber()`, and `wp.smooth_normalize()`\r\n  for vector types to a new `wp.math` module.\r\n- `wp.sim.SemiImplicitIntegrator` and `wp.sim.FeatherstoneIntegrator` now have an optional `friction_smoothing`\r\n  constructor argument (defaults to 1.0) that controls softness of the friction norm computation.\r\n- Support `assert` statements in kernels ([docs](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fdebugging.html#assertions)).\r\n  Assertions can only be triggered in `\"debug\"` mode ([GH-366](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F336)).\r\n- Support CUDA IPC on Linux. Call the `ipc_handle()` method to get an IPC handle for a `wp.Event` or a `wp.array`,\r\n  and call `wp.from_ipc_handle()` or `wp.event_from_ipc_handle()` in another process to open the handle\r\n  ([docs](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Fruntime.html#interprocess-communication-ipc)).\r\n- Add per-module option to disable fused floating point operations, use `wp.set_module_options({\"fuse_fp\": False})`\r\n  ([GH-379](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F379)).\r\n- Add per-module option to add CUDA-C line information for profiling, use `wp.set_module_options({\"lineinfo\": True})`.\r\n- Support operator overloading for `wp.struct` objects by defining `wp.func` functions\r\n  ([GH-392](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F392)).\r\n- Add built-in function `wp.len()` to retrieve the number of elements for vectors, quaternions, matrices, and arrays\r\n  ([GH-389](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F389)).\r\n- Add `warp\u002Fexamples\u002Foptim\u002Fexample_softbody_properties.py` as an optimization example for soft-body properties\r\n  ([GH-419](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fpull\u002F419)).\r\n- Add `warp\u002Fexamples\u002Ftile\u002Fexample_tile_walker.py`, which reworks the existing `example_walker.py`\r\n  to use Warp's tile API for matrix multiplication.\r\n- Add `warp\u002Fexamples\u002Ftile\u002Fexample_tile_nbody.py` as an example of an N-body simulation using Warp tile primitives.\r\n\r\n### Changed\r\n\r\n- **Breaking:** Change `wp.tile_load()` and `wp.tile_store()` indexing behavior so that indices are now specified in\r\n  terms of *array elements* instead of *tile multiples*.\r\n- **Breaking:** Tile operations now take `shape` and `offset` parameters as tuples,\r\n  e.g.: `wp.tile_load(array, shape=(m,n), offset=(i,j))`.\r\n- **Breaking:** Change exception types and error messages thrown by tile functions for improved consistency.\r\n- Add an implicit tile synchronization whenever a shared memory tile's data is reinitialized (e.g. in dynamic loops).\r\n  This could result in lower performance.\r\n- `wp.Bvh` constructor now supports various construction algorithms via the `constructor` argument, including\r\n  `\"sah\"` (Surface Area Heuristics), `\"median\"`, and `\"lbvh\"` ([docs](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Fruntime.html#warp.Bvh.__init__))\r\n- Improve the query efficiency of `wp.Bvh` and `wp.Mesh`.\r\n- Improve memory consumption, compilation and runtime performance when using in-place vector\u002Fmatrix assignments in\r\n  kernels that have `enable_backward` set to `False` ([GH-332](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F332)).\r\n- Vector\u002Fmatrix\u002Fquaternion component `+=` and `-=` operations compile and run faster in the backward pass\r\n  ([GH-332](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F332)).\r\n- Name files in the kernel cache according to their directory. Previously, all files began with\r\n  `module_codegen` ([GH-431](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F431)).\r\n- Avoid recompilation of modules when changing `block_dim`.\r\n- `wp.autograd.gradcheck_tape()` now has additional optional arguments `reverse_launches` and `skip_to_launch_index`.\r\n- `wp.autograd.gradcheck()`, `wp.autograd.jacobian()`, and `wp.autograd.jacobian_fd()` now also accept\r\n  arbitrary Python functions that have Warp arrays as inputs and outputs.\r\n- `update_vbo_transforms` kernel launches in the OpenGL renderer are no longer recorded onto the tape.\r\n- Skip emitting backward functions\u002Fkernels in the generated C++\u002FCUDA code when `enable_backward` is set to `False`.\r\n- Emit deprecation warnings for the use of the `owner` and `length` keywords in the `wp.array` initializer.\r\n- Emit deprecation warnings for the use of `wp.mlp()`, `wp.matmul()`, and `wp.batched_matmul()`.\r\n  Use tile primitives instead.\r\n\r\n### Fixed\r\n\r\n- Fix unintended modification o","2025-02-03T23:34:00",{"id":260,"version":261,"summary_zh":262,"released_at":263},62679,"v1.5.1","# Changelog\r\n\r\n## [1.5.1] - 2025-01-02\r\n\r\n### Added\r\n\r\n- Add PyTorch basics and custom operators notebooks to the `notebooks` directory.\r\n- Update PyTorch interop docs to include section on custom operators\r\n  ([docs](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Finteroperability.html#pytorch-custom-ops-example)).\r\n\r\n### Fixed\r\n\r\n- warp.sim: Fix a bug in which the color-balancing algorithm was not updating the colorings.\r\n- Fix custom colors being not being updated when rendering meshes with static topology in OpenGL\r\n  ([GH-343](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F343)).\r\n- Fix `wp.launch_tiled()` not returning a `Launch` object when passed `record_cmd=True`.\r\n- Fix default arguments not being resolved for `wp.func` when called from Python's runtime\r\n  ([GH-386](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F386)).\r\n- Array overwrite tracking: Fix issue with not marking arrays passed to `wp.atomic_add()`, `wp.atomic_sub()`,\r\n  `wp.atomic_max()`, or `wp.atomic_min()` as being written to ([GH-378](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F378)).\r\n- Fix for occasional failure to update `.meta` files into Warp kernel cache on Windows.\r\n- Fix the OpenGL renderer not being able to run without a CUDA device available\r\n  ([GH-344](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F344)).\r\n- Fix incorrect CUDA driver function versions ([GH-402](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F402)).","2025-01-03T06:50:31",{"id":265,"version":266,"summary_zh":267,"released_at":268},62680,"v1.5.0","# Changelog\r\n\r\n## [1.5.0] - 2024-12-02\r\n\r\n### Added\r\n\r\n- Support for cooperative tile-based primitives using cuBLASDx and cuFFTDx, please see the tile\r\n  [documentation](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Ftiles.html) for details.\r\n- Expose a `reversed()` built-in for iterators ([GH-311](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F311)).\r\n- Support for saving Volumes into `.nvdb` files with the `save_to_nvdb` method.\r\n- warp.fem: Add `wp.fem.Trimesh3D` and `wp.fem.Quadmesh3D` geometry types for 3D surfaces with new `example_distortion_energy` example.\r\n- warp.fem: Add `\"add\"` option to `wp.fem.integrate()` for accumulating integration result to existing output.\r\n- warp.fem: Add `\"assembly\"` option to `wp.fem.integrate()` for selecting between more memory-efficient or more\r\n  computationally efficient integration algorithms.\r\n- warp.fem: Add Nédélec (first kind) and Raviart-Thomas vector-valued function spaces\r\n  providing conforming discretization of `curl` and `div` operators, respectively.\r\n- warp.sim: Add a graph coloring module that supports converting trimesh into a vertex graph and applying coloring.\r\n  The `wp.sim.ModelBuilder` now includes methods to color particles for use with `wp.sim.VBDIntegrator()`,\r\n  users should call `builder.color()` before finalizing assets.\r\n- warp.sim: Add support for a per-particle radius for soft-body triangle contact using the `wp.sim.Model.particle_radius`\r\n  array ([docs](https:\u002F\u002Fnvidia.github.io\u002Fwarp\u002Fmodules\u002Fsim.html#warp.sim.Model.particle_radius)), replacing the previous\r\n  hard-coded value of 0.01 ([GH-329](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F329)).\r\n- Add a `particle_radius` parameter to `wp.sim.ModelBuilder.add_cloth_mesh()` and `wp.sim.ModelBuilder.add_cloth_grid()`\r\n  to set a uniform radius for the added particles.\r\n- Document `wp.array` attributes ([GH-364](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F364)).\r\n- Document time-to-compile tradeoffs when using vector component assignment statements in kernels.\r\n- Add introductory Jupyter notebooks to the `notebooks` directory.\r\n\r\n### Changed\r\n\r\n- Drop support for Python 3.7; Python 3.8 is now the minimum-supported version.\r\n- Promote the `wp.Int`, `wp.Float`, and `wp.Scalar` generic annotation types to the public API.\r\n- warp.fem: Simplify querying neighboring cell quantities when integrating on sides using new\r\n  `wp.fem.cells()`, `wp.fem.to_inner_cell()`, `wp.fem.to_outer_cell()` operators.\r\n- Show an error message when the type returned by a function differs from its annotation, which would have led to the compilation stage failing.\r\n- Clarify that `wp.randn()` samples a normal distribution of mean 0 and variance 1.\r\n- Raise error when passing more than 32 variadic argument to the `wp.printf()` built-in.\r\n\r\n### Fixed\r\n\r\n- Fix `place` setting of paddle backend.\r\n- warp.fem: Fix tri-cubic shape functions on quadrilateral meshes.\r\n- warp.fem: Fix caching of integrand kernels when changing code-generation options.\r\n- Fix `wp.expect_neq()` overloads missing for scalar types.\r\n- Fix an error when a `wp.kernel` or a `wp.func` object is annotated to return a `None` value.\r\n- Fix error when reading multi-volume, BLOSC-compressed `.nvdb` files.\r\n- Fix `wp.printf()` erroring out when no variadic arguments are passed ([GH-333](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F333)).\r\n- Fix memory access issues in soft-rigid contact collisions ([GH-362](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F362)).\r\n- Fix gradient propagation for in-place addition\u002Fsubtraction operations on custom vector-type arrays.\r\n- Fix the OpenGL renderer's window not closing when clicking the X button.\r\n- Fix the OpenGL renderer's camera snapping to a different direction from the initial camera's orientation when first looking around.\r\n- Fix custom colors being ignored when rendering meshes in OpenGL ([GH-343](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F343)).\r\n- Fix topology updates not being supported by the the OpenGL renderer.","2024-12-03T01:15:07",{"id":270,"version":271,"summary_zh":272,"released_at":273},62681,"v1.4.2","# Changelog\r\n\r\n## [1.4.2] - 2024-11-13\r\n\r\n### Changed\r\n\r\n- Make the output of `wp.print()` in backward kernels consistent for all supported data types.\r\n\r\n### Fixed\r\n\r\n- Fix to relax the integer types expected when indexing arrays (regression in `1.3.0`).\r\n- Fix printing vector and matrix adjoints in backward kernels.\r\n- Fix kernel compile error when printing structs.\r\n- Fix an incorrect user function being sometimes resolved when multiple overloads are available with array parameters with different `dtype` values.\r\n- Fix error being raised when static and dynamic for-loops are written in sequence with the same iteration variable names ([GH-331](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F331)).\r\n- Fix an issue with the `Texture Write` node, used in the Mandelbrot Omniverse sample, sometimes erroring out in multi-GPU environments.\r\n- Code generation of in-place multiplication and division operations (regression introduced in a69d061)([GH-342](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F342)).","2024-11-13T10:34:38",{"id":275,"version":276,"summary_zh":277,"released_at":278},62682,"v1.4.1","# Changelog\r\n\r\n## [1.4.1] - 2024-10-15\r\n\r\n### Fixed\r\n\r\n- Fix `iter_reverse()` not working as expected for ranges with steps other than 1 ([GH-311](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fwarp\u002Fissues\u002F311)).\r\n- Fix potential out-of-bounds memory access when a `wp.sparse.BsrMatrix` object is reused for storing matrices of different shapes.\r\n- Fix robustness to very low desired tolerance in `wp.fem.utils.symmetric_eigenvalues_qr`.\r\n- Fix invalid code generation error messages when nesting dynamic and static for-loops.\r\n- Fix caching of kernels with static expressions.\r\n- Fix `ModelBuilder.add_builder(builder)` to correctly update `articulation_start` and thereby `articulation_count` when `builder` contains more than one articulation.\r\n- Re-introduced the `wp.rand*()`, `wp.sample*()`, and `wp.poisson()` onto the Python scope to revert a breaking change.","2024-10-15T15:20:32"]