diff --git a/README.md b/README.md
index 61d4d38..829b215 100644
--- a/README.md
+++ b/README.md
@@ -1,56 +1,46 @@
-# ROBIN
-
-ROBIN is a library for outlier rejection based on compatibility graphs.
-
-If you find this library helpful or use it in your projects, please cite:
-```bibtex
-@InProceedings{Shi21icra-robin,
- title={{ROBIN:} a Graph-Theoretic Approach to Reject Outliers in Robust Estimation using Invariants},
- author={J. Shi and H. Yang and L. Carlone},
- booktitle={IEEE Intl. Conf. on Robotics and Automation (ICRA)},
- note = {arXiv preprint: 2011.03659},
- pdf={https://arxiv.org/pdf/2011.03659.pdf},
- year={2021}
-}
-```
-and
-```bibtex
-@article{Shi22arxiv-PACE,
- author = {J. Shi and H. Yang and L. Carlone},
- title = {Optimal and Robust Category-level Perception: Object Pose and Shape Estimation from {2D and 3D} Semantic Keypoints},
- journal = {arXiv preprint: 2206.12498},
- pdf = {https://arxiv.org/pdf/2206.12498.pdf},
- Year = {2022}
-}
-```
-
-If you are interested in more works from us, please visit our lab page [here](http://web.mit.edu/sparklab/).
+
---
# :gear: Build & Installation
-## :package: Dependency
+## :package: Dependencies
ROBIN has the following dependencies:
1. OpenMP
2. Eigen3
-Thus, follow the below commandline:
+Thus, run the following command:
```bash
sudo apt-get install gcc g++ build-essential libeigen3-dev cmake python3-pip python3-dev git ninja-build -y
```
-## C++ Installation
+## [](#) C++ Installation
+
+Run the following commands to build the library using CMake (inside the repository root directory):
-Run the following to build the library using CMake (inside the repo root directory):
```bash
mkdir build && cd build
cmake .. && make
sudo make install
```
+
The following CMake options are provided:
+
```
BUILD_DOCS: Build documentation. Default: OFF
BUILD_TESTS: Enable testing with ctest. Default: ON
@@ -59,18 +49,33 @@ USE_ASAN: Enable address sanitizer. Default: OFF
ENABLE_DIAGNOSTIC_PRINT: Enable printing of diagnostic messages. Default: OFF
```
-## Python Installation
+## [](#) Python Installation
+
+It's simple! To install Python bindings, we need basic packages as follows:
-It's simple! To install Python bindings, just run:
+```
+pip3 install --upgrade pip setuptools wheel scikit-build-core ninja cmake build
+```
+
+And then, just run in out-of-the-box (the `--verbose` option is only for tracking purposes):
+
+```bash
+pip3 install "git+https://github.com/MIT-SPARK/ROBIN.git#subdirectory=python" --verbose
+```
+
+Using this repository, you can run the following command:
```bash
pip3 install -e python/
```
+Please refer to `python/example.py` for usage instructions.
+
---
# Third-party Data
-Some of the testing data are from the [Network Repository](http://networkrepository.com/index.php).
+
+Some test data are from the [Network Repository](http://networkrepository.com/index.php).
For more information, please refer to:
Rossi, Ryan, and Nesreen Ahmed. "The network data repository with interactive graph analytics and visualization." Twenty-Ninth AAAI Conference on Artificial Intelligence. 2015.
@@ -84,12 +89,37 @@ Rossi, Ryan, and Nesreen Ahmed. "The network data repository with interactive gr
- License: Boost (https://github.com/catchorg/Catch2/blob/devel/LICENSE.txt)
# Known Issues
-For errors in MATLAB with missing CXXABI:
+
+To fix missing CXXABI errors in MATLAB:
+
```
export LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so
```
-# FAQ
-* How to fix errors like "ModuleNotFoundError: No module named 'robin_py.robin_py'"?
- This might be caused by a mismatch between the Python interpreter versions the binding is built for and the interpreter
- that the binding is installed on. Make sure to activate the correct virtual environment when calling `cmake ..`
+---
+
+# Citations
+
+If you find this library helpful or use it in your projects, please cite:
+```bibtex
+@InProceedings{Shi21icra-robin,
+ title={{ROBIN:} a Graph-Theoretic Approach to Reject Outliers in Robust Estimation using Invariants},
+ author={J. Shi and H. Yang and L. Carlone},
+ booktitle={IEEE Intl. Conf. on Robotics and Automation (ICRA)},
+ note = {arXiv preprint: 2011.03659},
+ pdf={https://arxiv.org/pdf/2011.03659.pdf},
+ year={2021}
+}
+```
+and
+```bibtex
+@article{Shi22arxiv-PACE,
+ author = {J. Shi and H. Yang and L. Carlone},
+ title = {Optimal and Robust Category-level Perception: Object Pose and Shape Estimation from {2D and 3D} Semantic Keypoints},
+ journal = {arXiv preprint: 2206.12498},
+ pdf = {https://arxiv.org/pdf/2206.12498.pdf},
+ Year = {2022}
+}
+```
+
+If you are interested in more works from us, please visit our lab page [here](http://web.mit.edu/sparklab/).