Awesome
<br/> <div align="center"> <img src="resources/xrprimer-logo.png" width="600"/> </div> <br/> <div align="left"> </div>Introduction
English | 简体中文
XRPrimer is a fundational library for XR-related algorithms. The XRPrimer provides reusable data structures, efficient operaters and extensible interfaces both in C++ and Python.
Major Features
- Various camera models and conversion tools (Pinhole, Fisheye, Omni etc.)
- Basic 3D operations (Triangulation, Projection etc.)
- Multi-camera extrinsic calibration tools
- Rendering and visualization tools
Operation Systems
It currently supports the following systems.
- Linux
- iOS
Installation
Python
If using xrprimer in a Python project, it can be installed by:
pip install xrprimer
If you want to use the latest updates of xrprimer, please refer to Python Installation for detailed installation.
C++
If using xrprimer in a C++ project, please refer to C++ Installation for compilation and test.
Getting started
Use XRPrimer in Python projects
The below code is supposed to run successfully upon you finish the installation.
python -c "import xrprimer; print(xrprimer.__version__)"
Use XRPrimer in C++ projects
An example is given below to show how to link xrprimer in C++ projects. More details can be found here.
cmake_minimum_required(VERSION 3.16)
project(sample)
# set path for find XRPrimer package (config mode)
set(XRPrimer_DIR "<package_path>/lib/cmake")
find_package(XRPrimer REQUIRED)
add_executable(sample sample.cpp)
target_link_libraries(sample XRPrimer::xrprimer)
FAQ
If you face some installation issues, you may first refer to this Frequently Asked Questions.
License
The license of our codebase is Apache-2.0. Note that this license only applies to code in our library, the dependencies of which are separate and individually licensed. We would like to pay tribute to open-source implementations to which we rely on. Please be aware that using the content of dependencies may affect the license of our codebase. Refer to LICENSE to view the full license.
Citation
If you find this project useful in your research, please consider cite:
@misc{xrprimer,
title={OpenXRLab Foundational Library for XR-related Algorithms},
author={XRPrimer Contributors},
howpublished = {\url{https://github.com/openxrlab/xrprimer}},
year={2022}
}
Contributing
We appreciate all contributions to improve XRPrimer. Please refer to CONTRIBUTING.md for the contributing guideline.
Acknowledgement
XRPrimer is an open source project that is contributed by researchers and engineers from both the academia and the industry. We appreciate all the contributors who implement their methods or add new features, as well as users who give valuable feedbacks. We wish that the toolbox and benchmark could serve the growing research community by providing a flexible toolkit to reimplement existing methods and develop their own new models.
Projects in OpenXRLab
- XRPrimer: OpenXRLab foundational library for XR-related algorithms.
- XRSLAM: OpenXRLab Visual-inertial SLAM Toolbox and Benchmark.
- XRSfM: OpenXRLab Structure-from-Motion Toolbox and Benchmark.
- XRLocalization: OpenXRLab Visual Localization Toolbox and Server.
- XRMoCap: OpenXRLab Multi-view Motion Capture Toolbox and Benchmark.
- XRMoGen: OpenXRLab Human Motion Generation Toolbox and Benchmark.
- XRNeRF: OpenXRLab Neural Radiance Field (NeRF) Toolbox and Benchmark.