Metadata-Version: 2.4
Name: adobe-lagrange
Version: 6.43.0
Summary: A robust geometry processing engine
Maintainer-Email: Lagrange Core Team <lagrange-core@adobe.com>
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE.txt
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
Project-URL: documentation, https://opensource.adobe.com/lagrange-docs
Project-URL: repository, https://github.com/adobe/lagrange
Requires-Python: >=3.10
Requires-Dist: colorama>=0.4.4; platform_system != "Windows"
Requires-Dist: colorama>=0.4.6; platform_system == "Windows"
Requires-Dist: numpy>=1.25
Requires-Dist: scipy>=1.13.0
Provides-Extra: docs
Requires-Dist: furo==2025.9.25; python_version >= "3.12" and extra == "docs"
Requires-Dist: sphinx==8.2.3; python_version >= "3.12" and extra == "docs"
Requires-Dist: sphinx-autoapi==3.6.1; python_version >= "3.12" and extra == "docs"
Requires-Dist: sphinx-autodoc-typehints==3.5.2; python_version >= "3.12" and extra == "docs"
Provides-Extra: scripts
Requires-Dist: pillow>=10.0.0; extra == "scripts"
Requires-Dist: pyexr>=0.5.0; extra == "scripts"
Requires-Dist: pymcubes==0.1.6; extra == "scripts"
Requires-Dist: torch>=2.2.0; extra == "scripts"
Description-Content-Type: text/markdown

# About Project Lagrange

Project Lagrange is an initiative to bring the power of robust geometry processing to Adobe products. It bridges cutting edge research works with cutting edge products. Project Lagrange is built on the following design principles:

### Modular design

Large features should be decomposed into smaller single functionality modules that are as decoupled as possible from each other. Modular design enables unit testing, prevents small changes from propagating widely in the code base, and makes adding new functionalities easy.

### Preconditions + guarantees

Algorithmic correctness should be rigorously enforced. This is achieved by clearly documenting and checking the precise precondition and the corresponding guarantees of each module. Algorithms relying on input-dependent parameter tuning should be avoided.

### Interface + compute engine

The interface of a functionality should be decoupled from the computation algorithms. This makes swapping out an algorithm with a better algorithm possible and ideally should not require changes in client codes.

### Large scale testing

Large scale, empirical testing on major functionalities should be carried out periodically to ensure their correctness and robustness. Let data speak for itself.

## Contributing

Contributions are welcomed! Read the [Contributing Guide](./.github/CONTRIBUTING.md) for more information.

## Licensing

This project is licensed under the Apache 2.0 License. See [LICENSE](LICENSE) for more information.
