Skip to content

Commit 326a673

Browse files
committed
doc
1 parent 9813c9d commit 326a673

File tree

2 files changed

+84
-6
lines changed

2 files changed

+84
-6
lines changed

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- [InterpolatePy](#interpolatepy)
1111
- [Table of Contents](#table-of-contents)
1212
- [Overview](#overview)
13+
- [Future Implementations](#future-implementations)
1314
- [Key Features](#key-features)
1415
- [Spline Interpolation](#spline-interpolation)
1516
- [B-Splines](#b-splines)
@@ -42,13 +43,29 @@
4243
- [Contributing](#contributing)
4344
- [License](#license)
4445
- [Acknowledgments](#acknowledgments)
46+
- [Citation](#citation)
4547

4648
## Overview
4749

4850
InterpolatePy is a comprehensive Python library for generating smooth trajectories and curves with precise control over position, velocity, acceleration, and jerk profiles. Designed for robotics, motion planning, computer graphics, and scientific computing applications, it provides a wide range of interpolation techniques from simple linear interpolation to advanced B-splines and motion profiles.
4951

5052
Whether you need to generate smooth robotic joint motions, create path planning for autonomous vehicles, or design animation curves with specific dynamic properties, InterpolatePy offers the tools to create trajectories that maintain continuity while adhering to physical constraints.
5153

54+
## Future Implementations
55+
56+
InterpolatePy is continuously evolving, with several exciting features planned for future releases:
57+
58+
- [ ] **Bezier Curves**: Implementation of parametric Bezier curves with arbitrary degree control
59+
- [ ] **Linear Interpolation with Polynomial Blend**: Enhanced linear interpolation using quintic Bezier curves for smooth transitions between line segments
60+
- [ ] **Linear Interpolation with Parabolic Blends**: An alternative blending approach using parabolic segments for smooth connections
61+
- [ ] **Spherical Path**: Tools for interpolation along great circles and spherical paths
62+
- [ ] **LERP (Linear Interpolation)**: More comprehensive linear interpolation functions for quaternions
63+
- [ ] **SLERP (Spherical Linear Interpolation)**: Algorithms for smooth interpolation between orientations represented as quaternions
64+
- [ ] **SQUAD (Spherical and Quadrangle)**: Advanced spherical interpolation with cubic-like smoothness for quaternion interpolation
65+
- [ ] **B-spline Quaternion Curves**: Extension of B-spline techniques to quaternion space for smooth orientation interpolation
66+
67+
These implementations will significantly enhance InterpolatePy's capabilities for orientation interpolation and complex curve generation, particularly for robotic applications, character animation, and camera path planning.
68+
5269
## Key Features
5370

5471
### Spline Interpolation
@@ -368,3 +385,18 @@ InterpolatePy implements algorithms and mathematical concepts primarily from the
368385
The library's implementation draws heavily from the theoretical frameworks, mathematical formulations, and algorithms presented in these works.
369386

370387
I express my gratitude to these authors for their significant contributions to the field of trajectory planning and robotics, which have made this library possible.
388+
389+
## Citation
390+
391+
If you use InterpolatePy in your research or project, please cite it as follows:
392+
393+
```bibtex
394+
@software{InterpolatePy,
395+
author = {Medico, Giorgio},
396+
title = {InterpolatePy: A Comprehensive Python Library for Trajectory Planning and Interpolation},
397+
year = {2025},
398+
url = {https://github.com/GiorgioMedico/InterpolatePy}
399+
}
400+
```
401+
402+
For specific methods or algorithms implemented in InterpolatePy, please also consider citing the original research papers or textbooks referenced in the documentation and acknowledgments section.

pyproject.toml

Lines changed: 52 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,34 @@
11
[build-system]
2-
requires = ["setuptools", "setuptools-scm", "numpy>=2.0.0", "scipy>=1.15.2"]
2+
requires = ["setuptools>=68.2.2", "setuptools-scm>=7.1.0", "wheel>=0.41.2"]
33
build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "InterpolatePy"
77
authors = [{ name = "Giorgio Medico", email = "giorgio.medico11@gmail.com" }]
8-
description = "This is a lib on interpolations in python."
8+
maintainers = [
9+
{ name = "Giorgio Medico", email = "giorgio.medico11@gmail.com" },
10+
]
11+
description = "A comprehensive Python library for generating smooth trajectories and curves with precise control over position, velocity, acceleration, and jerk profiles"
912
readme = "README.md"
10-
license = "MIT"
13+
license = { text = "MIT" }
1114
requires-python = ">=3.11"
15+
keywords = [
16+
"interpolation",
17+
"trajectory planning",
18+
"motion profiles",
19+
"robotics",
20+
"b-splines",
21+
"cubic splines",
22+
"frenet frames",
23+
"path generation",
24+
"motion control",
25+
]
1226
classifiers = [
27+
"Development Status :: 4 - Beta",
28+
"Intended Audience :: Science/Research",
29+
"Intended Audience :: Developers",
30+
"Intended Audience :: Education",
31+
"License :: OSI Approved :: MIT License",
1332
"Programming Language :: Python :: 3",
1433
"Programming Language :: Python :: 3.11",
1534
"Programming Language :: Python :: 3.12",
@@ -18,18 +37,45 @@ classifiers = [
1837
"Operating System :: POSIX",
1938
"Operating System :: Unix",
2039
"Operating System :: MacOS",
40+
"Topic :: Scientific/Engineering",
41+
"Topic :: Scientific/Engineering :: Mathematics",
42+
"Topic :: Scientific/Engineering :: Physics",
43+
"Topic :: Scientific/Engineering :: Visualization",
44+
"Topic :: Software Development :: Libraries",
45+
"Topic :: Software Development :: Libraries :: Python Modules",
2146
]
2247
dependencies = ["numpy>=2.0.0", "matplotlib>=3.10.1", "scipy>=1.15.2"]
2348
dynamic = ["version"]
2449

50+
[project.urls]
51+
"Homepage" = "https://github.com/GiorgioMedico/InterpolatePy"
52+
"Bug Tracker" = "https://github.com/GiorgioMedico/InterpolatePy/issues"
53+
"Repository" = "https://github.com/GiorgioMedico/InterpolatePy.git"
54+
"Documentation" = "https://github.com/GiorgioMedico/InterpolatePy#readme"
55+
2556
[project.optional-dependencies]
26-
test = ["pytest", "pytest-cov", "codecov", "pre-commit"]
27-
dev = ["black", "isort", "mypy", "pre-commit", "ruff"]
57+
test = [
58+
"pytest>=7.3.1",
59+
"pytest-cov>=4.1.0",
60+
"pytest-benchmark>=4.0.0",
61+
"codecov>=2.1.13",
62+
"pre-commit>=4.1.0",
63+
]
64+
dev = [
65+
"black>=23.11.0",
66+
"isort>=5.12.0",
67+
"mypy>=1.6.1",
68+
"pre-commit>=4.1.0",
69+
"ruff>=0.1.5",
70+
"pyright>=1.1.335",
71+
"build>=1.0.3",
72+
"twine>=4.0.2",
73+
]
2874
all = ["interpolatepy[test,dev]"]
2975

3076
[tool.setuptools]
3177
platforms = ["unix", "linux", "osx", "cygwin", "win32"]
32-
packages = ["interpolatepy"] # optional
78+
packages = ["interpolatepy"]
3379

3480
[tool.setuptools.dynamic]
3581
version = { attr = "interpolatepy.__version__" }

0 commit comments

Comments
 (0)