pyfreebody
Generate free-body diagrams with ease using Python!
Introduction
pyfreebody is a Python package that simplifies the creation of free-body diagrams for physics and engineering applications. Whether you're a student learning mechanics, a teacher preparing course materials, or an engineer visualizing forces, pyfreebody makes it easy to generate and customize free-body diagrams programmatically.
Features
- 🌟 Easy to Use: Simple API for creating bodies and adding forces.
- 🎨 Customizable Diagrams: Adjust colors, labels, and styles to fit your needs.
- 🧭 Supports Inclined Planes: Handle basic systems and inclined planes effortlessly.
- 🎲 Randomized Colors: Automatically generate visually distinct force vectors.
- 💾 Save and Display Diagrams: Save diagrams to files or display them directly.
- 🔧 Extensible: Built with flexibility in mind for future enhancements.
Installation
Install pyfreebody using pip:
pip install pyfreebody
Quick Start
Here's how to create a basic free-body diagram:
from pyfreebody import Freebody, Direction
# Create a free-body diagram for a block
fb = Freebody(name="Block", mass=10)
# Add forces acting on the block
fb.addForce(name="Gravity", magnitude=98.1, theta=Direction.down)
fb.addForce(name="Normal", magnitude=98.1, theta=Direction.up)
fb.addForce(name="Applied Force", magnitude=50, theta=Direction.right)
fb.addForce(name="Friction", magnitude=30, theta=Direction.left)
# Generate and display the diagram
fb.diagram()
This code will generate a free-body diagram of a block with gravitational, normal, applied, and frictional forces. You can find the documentation here
Contributing
We welcome contributions! If you'd like to improve pyfreebody, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
- Commit your changes with descriptive messages:
git commit -am 'Add new feature: your-feature-name'
- Push to your forked repository:
git push origin feature/your-feature-name
- Submit a pull request to the main branch.
Please ensure your code follows best practices and includes appropriate tests.
License
This project is licensed under the MIT License - see the LICENSE file for details.
pyfreebody - Making physics diagrams effortless! 🚀
Bring your physics problems to life with clear and precise free-body diagrams. Happy diagramming!
Release files for pyfreebody 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyfreebody-0.4.2.tar.gz | 149.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyfreebody-0.4.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 160.1 kB
Release files / pyfreebody-0.4.2.tar.gz
| Download URL | pyfreebody-0.4.2.tar.gz |
|---|---|
| Size | 149.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
abee89cb2ae945292b1617705215aaaab3501c62b21d4c6e777304749bd2c38e
|
|
BLAKE2b-256 checksum How to use checksums |
a9687b79657ff6660c8be32b65e9fea479d9e18f6114a3142b7648f92219724a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.6
|
Release files / pyfreebody-0.4.2-py3-none-any.whl
| Download URL | pyfreebody-0.4.2-py3-none-any.whl |
|---|---|
| Size | 11.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5eeb8b37cdb0b4e939fe943be7eef8d17eaec23f198d10980a63e1830ede3dde
|
|
BLAKE2b-256 checksum How to use checksums |
1c94ec259518a742b11fad7167c44ed255607eb162140cde4cae1c6c4cb1c744
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.6
|