# đĻĢ Capybarish
[](https://badge.fury.io/py/capybarish)
[](https://pypi.org/project/capybarish/)
[](https://opensource.org/licenses/Apache-2.0)
[](https://arxiv.org/abs/2505.00784)
**Capybarish** is a lightweight communication middleware designed for cloud-based robotics controllers. This MVP (Minimum Viable Product) was developed to support research on [reconfigurable legged metamachines](https://arxiv.org/abs/2505.00784) - modular robots that can dynamically reconfigure their morphology using autonomous modular legs.
## đŦ Research Context
This package supports the research presented in ["Reconfigurable legged metamachines that run on autonomous modular legs"](https://arxiv.org/abs/2505.00784) by Chen Yu et al. The middleware enables real-time communication between cloud-based controllers and distributed modular robot components, facilitating the coordination of autonomous modular legs that can form complex legged metamachines.
## đ Quick Start
### Installation
```bash
pip install capybarish
```
### Basic Usage
```python
from capybarish.interface import Interface
from capybarish.utils import load_cfg
import numpy as np
# Load configuration
config = load_cfg("default")
# Initialize the interface
interface = Interface(config)
# Basic control loop for modular robot communication
for i in range(100):
# Receive sensor data from robot modules
interface.receive_module_data()
# Get observable data
data = interface.get_observable_data()
# Send control commands to modular legs
action = np.array([0.1 * np.sin(i * 0.1)])
interface.send_action(action, kps=np.array([10.0]), kds=np.array([1.0]))
```
### Configuration
Create a YAML configuration file in the `config/` directory:
```yaml
# config/default.yaml
interface:
module_ids: [1, 2, 3] # IDs of your modular robot components
communication:
protocol: "udp"
timeout: 0.1
dashboard:
enabled: true
port: 6667
```
## đī¸ Architecture
Capybarish provides a modular middleware architecture with:
- **Interface**: Main control interface for robot communication
- **Communication Manager**: UDP-based real-time communication
- **Dashboard Server**: Data visualization and monitoring
- **Plugin System**: Extensible architecture for custom components
- **Configuration Management**: Flexible YAML-based setup
## đ Requirements
- Python 3.8+
- NumPy >= 1.20.0
- OmegaConf >= 2.1.0
- MessagePack >= 1.0.0
- Rich >= 10.0.0 (for UI)
- PyYAML >= 5.4.0
## đ§ Development Status
**This is an MVP under active development.** The package is being continuously updated and generalized as part of ongoing PhD research at Northwestern University. Features and APIs may change as the research progresses.
### Roadmap
- Enhanced plugin system for more sensors
- Improved cloud-robotics integration
- Performance optimizations for real-time control
## đ¤ Contributing
This project is primarily research-focused, but contributions are welcome! Please feel free to:
- Report issues or bugs
- Suggest improvements
- Submit pull requests
## đ Citation
If you use this software in your research, you are welcomed cite:
```bibtex
@software{metamachine2024,
title={Capybarish: A lightweight communication middleware designed for cloud-based robotics controllers},
author={Chen Yu},
year={2025},
url={https://github.com/chenaah/capybarish}
}
```
```bibtex
@article{yu2025reconfigurable,
title={Reconfigurable legged metamachines that run on autonomous modular legs},
author={Yu, Chen and Matthews, David and Wang, Jingxian and Gu, Jing and Blackiston, Douglas and Rubenstein, Michael and Kriegman, Sam},
journal={arXiv preprint arXiv:2505.00784},
year={2025}
}
```
## đ License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
## đ Contact
**Chen Yu**
PhD Student, Northwestern University
Email: chenyu@u.northwestern.edu
---
*This middleware is part of ongoing research on evolutionary modular robots. Updates and improvements will be released as the research progresses.*
Raw data
{
"_id": null,
"home_page": null,
"name": "capybarish",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Chen Yu <chenyu@u.northwestern.edu>",
"keywords": "robotics, middleware, communication, modular-robots, udp, real-time, cloud-robotics, distributed-systems",
"author": null,
"author_email": "Chen Yu <chenyu@u.northwestern.edu>",
"download_url": "https://files.pythonhosted.org/packages/c6/88/16e6062b53847a236074df5ff665b5c693425cab569ca1a6757d1b704c22/capybarish-0.1.0.tar.gz",
"platform": null,
"description": "# \ud83e\uddab Capybarish\n\n[](https://badge.fury.io/py/capybarish)\n[](https://pypi.org/project/capybarish/)\n[](https://opensource.org/licenses/Apache-2.0)\n[](https://arxiv.org/abs/2505.00784)\n\n**Capybarish** is a lightweight communication middleware designed for cloud-based robotics controllers. This MVP (Minimum Viable Product) was developed to support research on [reconfigurable legged metamachines](https://arxiv.org/abs/2505.00784) - modular robots that can dynamically reconfigure their morphology using autonomous modular legs.\n\n## \ud83d\udd2c Research Context\n\nThis package supports the research presented in [\"Reconfigurable legged metamachines that run on autonomous modular legs\"](https://arxiv.org/abs/2505.00784) by Chen Yu et al. The middleware enables real-time communication between cloud-based controllers and distributed modular robot components, facilitating the coordination of autonomous modular legs that can form complex legged metamachines.\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install capybarish\n```\n\n### Basic Usage\n\n```python\nfrom capybarish.interface import Interface\nfrom capybarish.utils import load_cfg\nimport numpy as np\n\n# Load configuration\nconfig = load_cfg(\"default\")\n\n# Initialize the interface\ninterface = Interface(config)\n\n# Basic control loop for modular robot communication\nfor i in range(100):\n # Receive sensor data from robot modules\n interface.receive_module_data()\n \n # Get observable data\n data = interface.get_observable_data()\n \n # Send control commands to modular legs\n action = np.array([0.1 * np.sin(i * 0.1)])\n interface.send_action(action, kps=np.array([10.0]), kds=np.array([1.0]))\n```\n\n### Configuration\n\nCreate a YAML configuration file in the `config/` directory:\n\n```yaml\n# config/default.yaml\ninterface:\n module_ids: [1, 2, 3] # IDs of your modular robot components\n communication:\n protocol: \"udp\"\n timeout: 0.1\n dashboard:\n enabled: true\n port: 6667\n```\n\n## \ud83c\udfd7\ufe0f Architecture\n\nCapybarish provides a modular middleware architecture with:\n\n- **Interface**: Main control interface for robot communication\n- **Communication Manager**: UDP-based real-time communication\n- **Dashboard Server**: Data visualization and monitoring\n- **Plugin System**: Extensible architecture for custom components\n- **Configuration Management**: Flexible YAML-based setup\n\n## \ud83d\udccb Requirements\n\n- Python 3.8+\n- NumPy >= 1.20.0\n- OmegaConf >= 2.1.0\n- MessagePack >= 1.0.0\n- Rich >= 10.0.0 (for UI)\n- PyYAML >= 5.4.0\n\n## \ud83d\udd27 Development Status\n\n**This is an MVP under active development.** The package is being continuously updated and generalized as part of ongoing PhD research at Northwestern University. Features and APIs may change as the research progresses.\n\n### Roadmap\n- Enhanced plugin system for more sensors\n- Improved cloud-robotics integration\n- Performance optimizations for real-time control\n\n## \ud83e\udd1d Contributing\n\nThis project is primarily research-focused, but contributions are welcome! Please feel free to:\n\n- Report issues or bugs\n- Suggest improvements\n- Submit pull requests\n\n## \ud83d\udcda Citation\n\nIf you use this software in your research, you are welcomed cite:\n\n```bibtex\n@software{metamachine2024,\n title={Capybarish: A lightweight communication middleware designed for cloud-based robotics controllers},\n author={Chen Yu},\n year={2025},\n url={https://github.com/chenaah/capybarish}\n}\n```\n\n```bibtex\n@article{yu2025reconfigurable,\n title={Reconfigurable legged metamachines that run on autonomous modular legs},\n author={Yu, Chen and Matthews, David and Wang, Jingxian and Gu, Jing and Blackiston, Douglas and Rubenstein, Michael and Kriegman, Sam},\n journal={arXiv preprint arXiv:2505.00784},\n year={2025}\n}\n```\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\udcde Contact\n\n**Chen Yu** \nPhD Student, Northwestern University \nEmail: chenyu@u.northwestern.edu\n\n---\n\n*This middleware is part of ongoing research on evolutionary modular robots. Updates and improvements will be released as the research progresses.*\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Lightweight communication middleware for cloud-based robotics controllers",
"version": "0.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/chenyu-northwestern/capybarish/issues",
"Homepage": "https://github.com/chenyu-northwestern/capybarish",
"Repository": "https://github.com/chenyu-northwestern/capybarish.git",
"Research Paper": "https://arxiv.org/abs/2505.00784"
},
"split_keywords": [
"robotics",
" middleware",
" communication",
" modular-robots",
" udp",
" real-time",
" cloud-robotics",
" distributed-systems"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7f2a7910fbe5e566b1cd8a1b3b5ad51a3243c1b8f63ba01d2afa840ff94b6c53",
"md5": "1d2b8de4df897b03a8fe97ee794db215",
"sha256": "fdcb6731b90eb0ca674ca0f5238685ae1273053e616365240134b2e40e665e48"
},
"downloads": -1,
"filename": "capybarish-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1d2b8de4df897b03a8fe97ee794db215",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 91825,
"upload_time": "2025-09-10T01:28:59",
"upload_time_iso_8601": "2025-09-10T01:28:59.310246Z",
"url": "https://files.pythonhosted.org/packages/7f/2a/7910fbe5e566b1cd8a1b3b5ad51a3243c1b8f63ba01d2afa840ff94b6c53/capybarish-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c68816e6062b53847a236074df5ff665b5c693425cab569ca1a6757d1b704c22",
"md5": "95d7f528aa875b2866e257a6e14405cf",
"sha256": "2fa7b3c6e6c9d59b7b4b536c7ad11c94ea38ccb05bdc93bb4fb5637e90354a04"
},
"downloads": -1,
"filename": "capybarish-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "95d7f528aa875b2866e257a6e14405cf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 87775,
"upload_time": "2025-09-10T01:29:00",
"upload_time_iso_8601": "2025-09-10T01:29:00.701266Z",
"url": "https://files.pythonhosted.org/packages/c6/88/16e6062b53847a236074df5ff665b5c693425cab569ca1a6757d1b704c22/capybarish-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-10 01:29:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "chenyu-northwestern",
"github_project": "capybarish",
"github_not_found": true,
"lcname": "capybarish"
}