diff --git a/docs/source/api.rst b/docs/source/api.rst index 1b1e4d4..f0b60db 100644 --- a/docs/source/api.rst +++ b/docs/source/api.rst @@ -1,11 +1,8 @@ .. _api_documentation: -API -=== - - -Modules -------- +API Documentation +================= +I can't manage to hide this part. Hopefully it will be hidden in the final documentation. .. autosummary:: :toctree: generated diff --git a/docs/source/conf.py b/docs/source/conf.py index 1788125..26e0fc9 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -6,32 +6,35 @@ import pathlib import sys + sys.path.insert(0, pathlib.Path(__file__).parents[2].resolve().as_posix()) print(pathlib.Path(__file__).parents[2].resolve().as_posix()) import importlib + # -- Project information ----------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information -project = 'pyfmaps' -copyright = '2024, Robin Magnet' -author = 'Robin Magnet' -release = '1.0.0' # importlib.metadata.version("pyFM") +project = "pyfmaps" +copyright = "2024, Robin Magnet" +author = "Robin Magnet" +release = "1.0.0" # importlib.metadata.version("pyFM") # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -extensions = ['sphinx.ext.duration', - 'sphinx.ext.doctest', - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - "sphinx.ext.napoleon", - 'sphinx_math_dollar', - 'sphinx.ext.mathjax', - "myst_parser", - "sphinx_design", - ] +extensions = [ + "sphinx.ext.duration", + "sphinx.ext.doctest", + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.napoleon", + "sphinx_math_dollar", + "sphinx.ext.mathjax", + "myst_parser", + "sphinx_design", +] # mathjax_config = { # 'tex2jax': { @@ -50,28 +53,27 @@ autodoc_mock_imports = ["sklearn"] # autodoc_mock_imports = ["pyFM", "scipy", "numpy", "trimesh", "scipy.linalg", "scipy.sparse", 'potpourri3d', "robust_laplacian"] -autodoc_default_options = { - 'members': True, - 'member-order': 'bysource'} +autodoc_default_options = {"members": True, "member-order": "bysource"} -templates_path = ['_templates'] +templates_path = ["_templates"] exclude_patterns = [] source_suffix = [".rst", ".md"] - +autosummary_generate = True # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output -html_theme = 'furo' -html_static_path = ['_static'] +html_theme = "furo" +html_static_path = ["_static"] from sphinx.ext.autodoc import between + def setup(app): # Register a sphinx.ext.autodoc.between listener to ignore everything # between lines that contain the word IGNORE - app.connect('autodoc-process-docstring', between('^.*IGNORE.*$', exclude=True)) + app.connect("autodoc-process-docstring", between("^.*IGNORE.*$", exclude=True)) return app diff --git a/docs/source/getting_started.md b/docs/source/getting_started.md new file mode 100644 index 0000000..c3ce665 --- /dev/null +++ b/docs/source/getting_started.md @@ -0,0 +1,2 @@ +Getting Started +=============== \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index d4b9a47..66abc80 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -3,18 +3,58 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Welcome to pyfmaps's documentation! -=================================== +Python Bindings for Functional Map Computations ! +================================================= -pyFM is a pure python implementation of multiple tools used for Functional Maps computations. Namely, it implements shape signatures, functional map optimization and refinement algorithm, and above all an easy-to-use interface for using functional maps. +pyFM (or pyfmaps) is a Python library designed for computing and using functional maps, a powerful framework in shape analysis and geometry processing. +Functional maps provide a compact and robust way to represent correspondences between shapes by transforming point-to-point mappings into small matrices. + +This package implements shape signatures, functional map optimization and refinement algorithms, and above all an easy-to-use interface for using functional maps. The package is now in **v1.0.0** as it has been stable for quite a long time. It had been released on PyPI. +Key Features +------------ -API ---- -.. toctree:: +- **Spectral Analysis**: Automatically compute Laplace-Beltrami eigenfunctions for shapes, enabling efficient computations in the spectral domain. + +- **Differential Geometry Tools**: Implements a variety of differential geometry tools directly in Python for advanced shape analysis workflows. + +- **Functional Map Computation**: Straightforward tools to calculate or refine functional maps using descriptors, landmarks, or initial blurry correspondences. + +- **Pointwise Correspondences**: Functions for navigating between point-to-point maps and functional maps. + + +Why pyFM? +--------- + +pyFM has been originally designed as a way to incorporate existing Matlab code into Python workflows. +It has now grown beyond that, with a variety of tools and utilities for shape analysis and geometry processing. +In short, `pyFM` is designed to be + +- **User-Friendly:** With clear APIs and detailed documentation, `pyFM` is accessible to both beginners and experts in shape analysis. +- **Efficient:** Built with performance in mind, avoiding slow python loops. +- **Extensible:** Highly modular. Most functions can be easily extracted from the package and used in other projects, as they usually only require `numpy` arrays as input. +- **Research-Oriented:** Inspired by state-of-the-art research in geometry processing, making it a great choice for prototyping and academic projects. +Whether you are an academic researcher exploring functional map theory or an industry professional working on advanced shape analysis tasks, I hope `pyFM` can be a valuable tool in your experiments. + + +What’s Next? +------------ + +To get started with `pyFM`, check out the example notebook for a quick overview of the package’s capabilities. + +.. To get started with `pyFM`, check out the [Installation Guide](#installation) and the [Quickstart Tutorial](#getting-started) for a hands-on introduction. For a deeper dive, explore the [API Reference](#detailed-api-reference) and [Tutorials](#tutorials) to learn more about advanced features and workflows. + +.. Let’s unlock the potential of functional maps together with `pyFM`! + +Table of Contents +----------------- +.. toctree:: install.md + getting_started.md examples.md + +.. toctree:: api \ No newline at end of file