Contribute to Fabrica

Help improve the project and grow the community

Fabrica is an open-source project built by the community. Whether you're a developer, designer, maker, or enthusiast, there are many ways to contribute!

Ways to Contribute

💻

Code Contributions

  • • Fix bugs and improve software stability
  • • Add new features (sensors, UI, automation)
  • • Optimize performance and reduce memory usage
  • • Write unit tests for better code quality
  • • Improve documentation and code comments
🎨

Design Improvements

  • • Design better 3D printed parts
  • • Create alternative panel configurations
  • • Optimize for different printer sizes
  • • Design enclosures and accessories
  • • Share CAD source files (STEP, F3D)
📝

Documentation

  • • Improve build instructions and guides
  • • Translate documentation to other languages
  • • Write troubleshooting tips from experience
  • • Create video tutorials and demos
  • • Document your build process and share learnings
🧪

Testing & Feedback

  • • Test new features and report issues
  • • Validate instructions on different hardware
  • • Try alternative components and share results
  • • Create folding sequences for different garments
  • • Provide usability feedback
💬

Community Support

  • • Answer questions in GitHub Discussions
  • • Help troubleshoot issues for other builders
  • • Share your build photos and videos
  • • Write blog posts about your experience
  • • Promote the project on social media
🎓

Educational Content

  • • Create workshop materials for makerspaces
  • • Develop curriculum for STEM education
  • • Host build sessions or meetups
  • • Present at maker fairs and conferences
  • • Mentor new builders

Contributing Code

Development Workflow

1

Fork the Repository

Create your own fork of the Fabrica repository on GitHub.

# Fork on GitHub, then clone your fork
git clone https://github.com/aiandrobotics/fabrica.git
cd fabrica

# Add upstream remote
git remote add upstream https://github.com/aiandrobotics/fabrica.git
2

Create a Feature Branch

Always work in a dedicated branch, not main.

# Create and switch to new branch
git checkout -b feature/your-feature-name

# Or for bug fixes:
git checkout -b fix/issue-description
3

Make Your Changes

Write clean, well-commented code. Follow the existing code style. Test thoroughly on actual hardware before submitting.

4

Commit with Clear Messages

# Stage your changes
git add .

# Commit with descriptive message
git commit -m "Add: New feature for simultaneous servo control"
# or "Fix: Resolve I2C communication timeout issue"
# or "Docs: Update calibration instructions"
5

Push and Create Pull Request

# Push to your fork
git push origin feature/your-feature-name

# Then create PR on GitHub

In your PR description, explain what you changed and why. Reference any related issues.

Code Review Process

  • • A maintainer will review your PR within 1-2 weeks
  • • Address any feedback or requested changes
  • • Once approved, your code will be merged!
  • • You'll be added to the contributors list

Coding Guidelines

Python Style (MicroPython)

  • • Follow PEP 8 style guidelines
  • • Use 4 spaces for indentation (no tabs)
  • • Maximum line length: 100 characters
  • • Use descriptive variable names
  • • Add docstrings to functions and classes
  • • Keep functions small and focused

Documentation Style

  • • Use Markdown for all documentation
  • • Include code examples where relevant
  • • Add images/diagrams to clarify concepts
  • • Keep language simple and beginner-friendly
  • • Proofread for grammar and spelling
  • • Test all instructions before publishing

3D Design Guidelines

  • • Provide source files (STEP, Fusion 360)
  • • Export clean STL files (manifold, no errors)
  • • Design for printability (minimal supports)
  • • Include tolerances for assembly (±0.2mm)
  • • Document print settings and orientation
  • • Test physical prints before sharing

Commit Message Format

Format:

Type: Brief description (50 chars max)

Types:

  • Add: New feature
  • Fix: Bug fix
  • Docs: Documentation update
  • Refactor: Code restructure
  • Test: Add/update tests

Contributor Recognition

🏆

We Value Your Contributions

  • • All contributors are listed in the project README
  • • Significant contributions earn special badges
  • • Feature contributors are credited in release notes
  • • Active community members become maintainers

Developer Resources

Ready to Contribute? 🚀

Join our community of makers, developers, and enthusiasts. Every contribution, big or small, makes Fabrica better for everyone!