{"owner":"isl-org","repo":"Open3D","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"Open3D is a cross-platform (Windows, Linux, macOS and x86_64, arm64, CUDA and\noneAPI platforms) C++17 and Python library for 3D data processing,\nvisualization, reconstruction, registration, and ML-related workflows. Other\nfunctionality is out of scope.\n\n## Coding and PR review directions\n\n- For any change, first research existing code and prepare a plan with definite goal, requirements, implementation steps, test method, risks and mitigations. **Lock the goal, requirements and test method, and keep the implementation steps with a log of status and decisions made.** Add plan summary to the PR description. \n- Store intermediate live research and progress reports with important findings in .md files and refer to them as needed.\n- Use subagents for major steps. \n- Create new git branches when you explore implementation options - go back to previous code as required. \n- Prioritize human readability and maintainability.\n- **AVOID REDUNDANT IMPLEMENTATION** when similar functionality already exists - refactor and reuse instead.\n- Keep changes focused and small. Avoid broad refactors unless requested.\n- Read the relevant C++ / Python / docs files together and identify whether bindings, docs, and tests must change with the source change.\n- **Debugging:** Test root cause hypothesis with logging before trying fixes. Validate with logging afterwards. Undo failed fixes.\n- Developer docs: Document the code with brief (2-3 lines) comments (Why and What is the code doing?), typically for each function and file. Ensure code and docs are consistent.\n- User docs: Update `docs`, Doxygen docs in C++ headers and Google Sphinx RST docs in Python bindings for new / changed code behavior.  Add / update an example function use snippet in the docs.\n- For new functionality, docs and examples, prefer Tensor implementations that work on CPU+CUDA+SYCL. \n- Use the Eigen library for Math operations and oneAPI TBB for multithreading. Avoid: OpenMP, stdgpu.\n- Add unit tests for new behavior and bug fixes (if needed).  Add or update both C++ and Python tests when the feature is exposed in both layers.\n- Keep dependencies minimal. Reuse functionality from existing dependencies if needed. Do not update 3rdparty code with patches.\n- Preserve existing public APIs unless the task explicitly requires API changes.\n- Avoid unnecessary compiler warnings, build breakages, and unrelated cleanup.\n- Ensure smallest set of relevant tests run correctly locally. The full CI must pass for all supported SW and HW platforms in Github.\n\n## Repository map\n\n- Core algorithms/data structures: `cpp/open3d/` \n- New CPU+CUDA+SYCL (Tensor based) implementations: `cpp/open3d/{core,t}`\n- Legacy CPU only (Eigen based) data structures and algorithms: `cpp/open3d/{camera,geometry,io,pipelines}`\n- GUI visualization (based on GLFW + Dear ImGUI + Filament renderer): `cpp/open3d/visualization/{app,gui,rendering,visualizer}`\n- Legacy OpenGL + GLFW visualization: `cpp/open3d/visualization/visualizer`\n- C++ tests: `cpp/tests/`\n- Python bindings: `cpp/pybind/`\n- Python tests: `python/test/`\n- Examples: `examples/`\n- Build logic: `CMakeLists.txt`, `3rdparty/find_dependencies.txt`\n- Tooling/style/CI helpers: `util/`\n- Docs: `docs/` and inline docs in C++ headers (Doxygen) and Python bindings.\n\n## Build\n\n- `mkdir -p build && cd build`\n- Configure: `cmake -S .. -B . -D OPTION=VALUE...`\n- Build: `cmake --build . --parallel $NPROC --target TARGET` (NPROC = numn CPUs) \n- Install: `cmake --build . --target install`\n\nIf Python bindings are required, use an activated virtual environment or set\n`-DPython3_ROOT=/path/to/python`.  \n\n### Useful CMake options (specify `=ON` or `=OFF`):\n\n- `BUILD_UNIT_TESTS`\n- `BUILD_PYTHON_MODULE`\n- `BUILD_[CUDA|SYCL|ISPC]_MODULE`\n- `BUILD_EXAMPLES`\n- `BUILD_SHARED_LIBS`\n\n### Useful targets:\n- Python package targets: `python-package|pip-package|install-pip-package`\n- C++ tests: `tests`\n- C++ Binary library package: `package`\n- Viewer: `Open3DViewer`\n- Examples: By example name.\n\n## Test\n\n### C++\n\n- `./bin/tests --gtest_list_tests`\n- `./bin/tests --gtest_filter=*TEST_NAME*`\n\n### Python\n\n- `pip install -r python/requirements_test.txt`\n- `cmake --build build --target install-pip-package`\n- `pytest ../python/test/SPECIFIC/TEST_FILE.PY`\n\n## Style and formatting\n\n- C++ follows Google-style conventions with Open3D-specific rules.\n- Use 4 spaces, no tabs.\n- Use `#pragma once` for header guards.\n- Prefer smart pointers over naked pointers.\n- Use C++17, not C++20+.\n- Python follows Google Python style.\n\nUse the repository's own formatting tools and pinned versions.\n\n- `pip install -r python/requirements_style.txt`\n- `python util/check_style.py --apply` or `cmake --build build --target apply-style --parallel`"},"files":{"AGENTS.md":"Open3D is a cross-platform (Windows, Linux, macOS and x86_64, arm64, CUDA and\noneAPI platforms) C++17 and Python library for 3D data processing,\nvisualization, reconstruction, registration, and ML-related workflows. Other\nfunctionality is out of scope.\n\n## Coding and PR review directions\n\n- For any change, first research existing code and prepare a plan with definite goal, requirements, implementation steps, test method, risks and mitigations. **Lock the goal, requirements and test method, and keep the implementation steps with a log of status and decisions made.** Add plan summary to the PR description. \n- Store intermediate live research and progress reports with important findings in .md files and refer to them as needed.\n- Use subagents for major steps. \n- Create new git branches when you explore implementation options - go back to previous code as required. \n- Prioritize human readability and maintainability.\n- **AVOID REDUNDANT IMPLEMENTATION** when similar functionality already exists - refactor and reuse instead.\n- Keep changes focused and small. Avoid broad refactors unless requested.\n- Read the relevant C++ / Python / docs files together and identify whether bindings, docs, and tests must change with the source change.\n- **Debugging:** Test root cause hypothesis with logging before trying fixes. Validate with logging afterwards. Undo failed fixes.\n- Developer docs: Document the code with brief (2-3 lines) comments (Why and What is the code doing?), typically for each function and file. Ensure code and docs are consistent.\n- User docs: Update `docs`, Doxygen docs in C++ headers and Google Sphinx RST docs in Python bindings for new / changed code behavior.  Add / update an example function use snippet in the docs.\n- For new functionality, docs and examples, prefer Tensor implementations that work on CPU+CUDA+SYCL. \n- Use the Eigen library for Math operations and oneAPI TBB for multithreading. Avoid: OpenMP, stdgpu.\n- Add unit tests for new behavior and bug fixes (if needed).  Add or update both C++ and Python tests when the feature is exposed in both layers.\n- Keep dependencies minimal. Reuse functionality from existing dependencies if needed. Do not update 3rdparty code with patches.\n- Preserve existing public APIs unless the task explicitly requires API changes.\n- Avoid unnecessary compiler warnings, build breakages, and unrelated cleanup.\n- Ensure smallest set of relevant tests run correctly locally. The full CI must pass for all supported SW and HW platforms in Github.\n\n## Repository map\n\n- Core algorithms/data structures: `cpp/open3d/` \n- New CPU+CUDA+SYCL (Tensor based) implementations: `cpp/open3d/{core,t}`\n- Legacy CPU only (Eigen based) data structures and algorithms: `cpp/open3d/{camera,geometry,io,pipelines}`\n- GUI visualization (based on GLFW + Dear ImGUI + Filament renderer): `cpp/open3d/visualization/{app,gui,rendering,visualizer}`\n- Legacy OpenGL + GLFW visualization: `cpp/open3d/visualization/visualizer`\n- C++ tests: `cpp/tests/`\n- Python bindings: `cpp/pybind/`\n- Python tests: `python/test/`\n- Examples: `examples/`\n- Build logic: `CMakeLists.txt`, `3rdparty/find_dependencies.txt`\n- Tooling/style/CI helpers: `util/`\n- Docs: `docs/` and inline docs in C++ headers (Doxygen) and Python bindings.\n\n## Build\n\n- `mkdir -p build && cd build`\n- Configure: `cmake -S .. -B . -D OPTION=VALUE...`\n- Build: `cmake --build . --parallel $NPROC --target TARGET` (NPROC = numn CPUs) \n- Install: `cmake --build . --target install`\n\nIf Python bindings are required, use an activated virtual environment or set\n`-DPython3_ROOT=/path/to/python`.  \n\n### Useful CMake options (specify `=ON` or `=OFF`):\n\n- `BUILD_UNIT_TESTS`\n- `BUILD_PYTHON_MODULE`\n- `BUILD_[CUDA|SYCL|ISPC]_MODULE`\n- `BUILD_EXAMPLES`\n- `BUILD_SHARED_LIBS`\n\n### Useful targets:\n- Python package targets: `python-package|pip-package|install-pip-package`\n- C++ tests: `tests`\n- C++ Binary library package: `package`\n- Viewer: `Open3DViewer`\n- Examples: By example name.\n\n## Test\n\n### C++\n\n- `./bin/tests --gtest_list_tests`\n- `./bin/tests --gtest_filter=*TEST_NAME*`\n\n### Python\n\n- `pip install -r python/requirements_test.txt`\n- `cmake --build build --target install-pip-package`\n- `pytest ../python/test/SPECIFIC/TEST_FILE.PY`\n\n## Style and formatting\n\n- C++ follows Google-style conventions with Open3D-specific rules.\n- Use 4 spaces, no tabs.\n- Use `#pragma once` for header guards.\n- Prefer smart pointers over naked pointers.\n- Use C++17, not C++20+.\n- Python follows Google Python style.\n\nUse the repository's own formatting tools and pinned versions.\n\n- `pip install -r python/requirements_style.txt`\n- `python util/check_style.py --apply` or `cmake --build build --target apply-style --parallel`"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"Open3D is a cross-platform (Windows, Linux, macOS and x86_64, arm64, CUDA and\noneAPI platforms) C++17 and Python library for 3D data processing,\nvisualization, reconstruction, registration, and ML-related workflows. Other\nfunctionality is out of scope.\n\n## Coding and PR review directions\n\n- For any change, first research existing code and prepare a plan with definite goal, requirements, implementation steps, test method, risks and mitigations. **Lock the goal, requirements and test method, and keep the implementation steps with a log of status and decisions made.** Add plan summary to the PR description. \n- Store intermediate live research and progress reports with important findings in .md files and refer to them as needed.\n- Use subagents for major steps. \n- Create new git branches when you explore implementation options - go back to previous code as required. \n- Prioritize human readability and maintainability.\n- **AVOID REDUNDANT IMPLEMENTATION** when similar functionality already exists - refactor and reuse instead.\n- Keep changes focused and small. Avoid broad refactors unless requested.\n- Read the relevant C++ / Python / docs files together and identify whether bindings, docs, and tests must change with the source change.\n- **Debugging:** Test root cause hypothesis with logging before trying fixes. Validate with logging afterwards. Undo failed fixes.\n- Developer docs: Document the code with brief (2-3 lines) comments (Why and What is the code doing?), typically for each function and file. Ensure code and docs are consistent.\n- User docs: Update `docs`, Doxygen docs in C++ headers and Google Sphinx RST docs in Python bindings for new / changed code behavior.  Add / update an example function use snippet in the docs.\n- For new functionality, docs and examples, prefer Tensor implementations that work on CPU+CUDA+SYCL. \n- Use the Eigen library for Math operations and oneAPI TBB for multithreading. Avoid: OpenMP, stdgpu.\n- Add unit tests for new behavior and bug fixes (if needed).  Add or update both C++ and Python tests when the feature is exposed in both layers.\n- Keep dependencies minimal. Reuse functionality from existing dependencies if needed. Do not update 3rdparty code with patches.\n- Preserve existing public APIs unless the task explicitly requires API changes.\n- Avoid unnecessary compiler warnings, build breakages, and unrelated cleanup.\n- Ensure smallest set of relevant tests run correctly locally. The full CI must pass for all supported SW and HW platforms in Github.\n\n## Repository map\n\n- Core algorithms/data structures: `cpp/open3d/` \n- New CPU+CUDA+SYCL (Tensor based) implementations: `cpp/open3d/{core,t}`\n- Legacy CPU only (Eigen based) data structures and algorithms: `cpp/open3d/{camera,geometry,io,pipelines}`\n- GUI visualization (based on GLFW + Dear ImGUI + Filament renderer): `cpp/open3d/visualization/{app,gui,rendering,visualizer}`\n- Legacy OpenGL + GLFW visualization: `cpp/open3d/visualization/visualizer`\n- C++ tests: `cpp/tests/`\n- Python bindings: `cpp/pybind/`\n- Python tests: `python/test/`\n- Examples: `examples/`\n- Build logic: `CMakeLists.txt`, `3rdparty/find_dependencies.txt`\n- Tooling/style/CI helpers: `util/`\n- Docs: `docs/` and inline docs in C++ headers (Doxygen) and Python bindings.\n\n## Build\n\n- `mkdir -p build && cd build`\n- Configure: `cmake -S .. -B . -D OPTION=VALUE...`\n- Build: `cmake --build . --parallel $NPROC --target TARGET` (NPROC = numn CPUs) \n- Install: `cmake --build . --target install`\n\nIf Python bindings are required, use an activated virtual environment or set\n`-DPython3_ROOT=/path/to/python`.  \n\n### Useful CMake options (specify `=ON` or `=OFF`):\n\n- `BUILD_UNIT_TESTS`\n- `BUILD_PYTHON_MODULE`\n- `BUILD_[CUDA|SYCL|ISPC]_MODULE`\n- `BUILD_EXAMPLES`\n- `BUILD_SHARED_LIBS`\n\n### Useful targets:\n- Python package targets: `python-package|pip-package|install-pip-package`\n- C++ tests: `tests`\n- C++ Binary library package: `package`\n- Viewer: `Open3DViewer`\n- Examples: By example name.\n\n## Test\n\n### C++\n\n- `./bin/tests --gtest_list_tests`\n- `./bin/tests --gtest_filter=*TEST_NAME*`\n\n### Python\n\n- `pip install -r python/requirements_test.txt`\n- `cmake --build build --target install-pip-package`\n- `pytest ../python/test/SPECIFIC/TEST_FILE.PY`\n\n## Style and formatting\n\n- C++ follows Google-style conventions with Open3D-specific rules.\n- Use 4 spaces, no tabs.\n- Use `#pragma once` for header guards.\n- Prefer smart pointers over naked pointers.\n- Use C++17, not C++20+.\n- Python follows Google Python style.\n\nUse the repository's own formatting tools and pinned versions.\n\n- `pip install -r python/requirements_style.txt`\n- `python util/check_style.py --apply` or `cmake --build build --target apply-style --parallel`","category":"root","tokens":1183}]}