Skip to content

Commit

Permalink
update documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
RobinMagnet committed Jan 13, 2025
1 parent c1dbeaa commit ffca44a
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 34 deletions.
9 changes: 3 additions & 6 deletions docs/source/api.rst
Original file line number Diff line number Diff line change
@@ -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
Expand Down
46 changes: 24 additions & 22 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -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': {
Expand All @@ -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
2 changes: 2 additions & 0 deletions docs/source/getting_started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Getting Started
===============
52 changes: 46 additions & 6 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit ffca44a

Please sign in to comment.