Start Your Openwater Journey

From first contribution to core team member in 5 simple steps

5 min To First Contribution
2,000+ Active Developers
24/7 Community Support

Choose Your Path

Select the contribution path that best matches your skills and interests

๐Ÿ’ป

Write Code

Contribute software & firmware to platforms

  • Python, C++, Kotlin development
  • Embedded firmware programming
  • Fix bugs & add features
  • Earn bounties ($100-$2K)
Get Started โ†’
๐Ÿ”ง

Design Hardware

Contribute to open-source device designs

  • PCB design & schematics (KiCad)
  • Mechanical CAD (3D models)
  • Assembly documentation
  • BOM management & sourcing
View Hardware Guide โ†’
๐Ÿ”ฌ

Conduct Research

Collaborate on clinical studies and publications

  • Access research platforms
  • Publish open findings
  • Apply for grants ($2K-$10K)
  • Co-author with community
Partner With Us โ†’
๐ŸŽจ

Build Applications

Create tools and extensions for the ecosystem

  • 3D Slicer extensions
  • Data visualization tools
  • Clinical workflows
  • Integration plugins
View Examples โ†’
๐Ÿ“š

Improve Docs

Help others learn with better documentation

  • Write tutorials
  • Create examples
  • Fix errors & typos
  • Translate content
Start Writing โ†’

5-Minute Quick Start Guide

Make your first contribution in just 5 minutes

Join the Community on Discord

Connect with 2,000+ developers, researchers, and clinicians building open-source medical devices. Introduce yourself in the #introductions channel.

What you'll find:

  • #general - Community discussions
  • #help - Get technical support
  • #showcase - Share your work
  • #opportunities - Bounties & grants
Join Discord Community โ†’

Star & Fork the Repository

Get the code and set up your development environment. We have 48 repositories to explore.

Fork vs Clone (1-minute explanation)

Fork creates your own copy of the repository on GitHub. You need this if you want to make changes or contribute back.

Clone downloads a repository to your computer. You usually clone after you fork.

๐Ÿ‘‰ New here? Fork first โ†’ then clone your fork.

# Clone OpenLIFU Python repository
git clone https://github.com/OpenwaterHealth/OpenLIFU-python.git
cd OpenLIFU-python

# Add upstream remote
git remote add upstream https://github.com/OpenwaterHealth/OpenLIFU-python.git
View on GitHub โ†’

Set Up Your Dev Environment

Choose between Docker (recommended) or local installation. Both take less than 5 minutes.

Option A: Docker (Easiest)

# Pull the development container
docker pull openwaterhealth/dev-env:latest

# Run the container
docker run -it openwaterhealth/dev-env

Option B: Local Setup

# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Verify installation
pytest tests/
Full Setup Guide โ†’

Find Your First Issue

Browse 25+ beginner-friendly issues tagged with "good first issue". Pick one that matches your skills.

Issue Categories:

๐Ÿ› Bug Fixes - Fix issues in existing code

๐Ÿ“š Documentation - Improve guides and tutorials

โœจ Features - Add new capabilities

๐Ÿงช Testing - Write unit and integration tests

Browse Good First Issues โ†’

Make Your First Contribution

Create a branch, make your changes, and submit a pull request. Our team reviews PRs within 48 hours.

# Create a feature branch
git checkout -b fix/issue-123

# Make your changes and commit
git add .
git commit -m "Fix: Resolve pulse sequence validation bug (#123)"

# Push to your fork
git push origin fix/issue-123

# Open PR on GitHub
# Title: "Fix: Resolve pulse sequence validation bug"
# Description: Reference issue #123, explain your changes

What happens next:

  • Automated tests run on your PR
  • CLA signature required (automated)
  • Code review by maintainers
  • Merge and celebration! ๐ŸŽ‰
View PR Template โ†’

Hardware Contribution Guide

Contribute to open-source medical device designs

Tools You'll Need

Get started with free and open-source tools for hardware design.

Essential Software:

  • KiCad - PCB design & schematics (free & open-source)
  • FreeCAD or Fusion 360 - Mechanical CAD modeling
  • Git/GitHub Desktop - Version control for hardware files
  • PDF Reader - For datasheets and specifications

Helpful Equipment:

  • Multimeter for testing circuits
  • Soldering iron (optional for physical prototyping)
  • 3D printer access (optional, many libraries offer this)

Hardware Repositories

Explore our open-source hardware designs.

Active Hardware Projects:

opw_neuromod_hw - Neuromodulation hardware designs

opw_ustx - Ultrasound transmit module

motion-sensor-fw - Motion sensor hardware

OpenLIFU-hardware - Core LIFU device designs

View Hardware Repos โ†’

Types of Hardware Contributions

PCB Design:

  • Schematic capture in KiCad
  • PCB layout and routing
  • Component selection and BOM
  • Signal integrity analysis

Mechanical Design:

  • 3D CAD models (STEP files)
  • Enclosures and mounting brackets
  • Thermal management designs
  • Cable management solutions

Documentation:

  • Assembly instructions with photos
  • Bill of Materials (BOM) with part numbers
  • Sourcing guides (Digi-Key, Mouser links)
  • Testing and validation procedures

First Hardware Contribution

Start with a hardware "good first issue" - these are beginner-friendly tasks.

Good First Hardware Tasks:

Update BOM - Add current part numbers and pricing

Improve Assembly Docs - Add photos or clarify steps

Create 3D Printable Jig - Design fixtures for assembly

Document Test Procedure - Write step-by-step testing guides

Browse Hardware Issues โ†’

Community Onboarding Checklist

Complete these steps to become a fully integrated community member

โ˜‘๏ธ

Join Discord Server

Connect with the community and introduce yourself in #introductions

โญ

Star OpenLIFU-python on GitHub

Show your support and get notifications about new releases

๐Ÿ“

Sign the Contributor License Agreement (CLA)

Required for all contributions - quick automated process

๐Ÿ’ป

Set Up Development Environment

Docker or local setup - verify with pytest

๐Ÿ‘‹

Complete "Hello World" Tutorial

Run your first OpenLIFU simulation in 5 minutes

๐ŸŽค

Introduce Yourself in Discord

Share your background, interests, and what you'd like to work on

๐Ÿ“…

Attend Community Office Hours

Weekly calls every Wednesday at 2pm PT - meet the team

๐Ÿ“ง

Subscribe to Monthly Newsletter

Stay updated on community news, opportunities, and events

Video Walkthrough

Watch our 10-minute guide to making your first contribution

โ–ถ๏ธ

From Zero to First Pull Request

A complete walkthrough of setting up your environment, finding an issue, and submitting your first PR

Watch on YouTube โ†’

Frequently Asked Questions

Everything you need to know to get started

Do I need medical device experience to contribute?
Not at all! While medical device knowledge is helpful, many contributions don't require it. We have "good first issue" tags specifically for newcomers, covering documentation, testing, and general software development. Our community is here to help you learn.
Do I need to build physical hardware to contribute?
Not necessarily! Many hardware contributions are design files (CAD, schematics) that can be done digitally. Physical prototyping is encouraged but not required. You can contribute PCB designs, mechanical CAD models, documentation, and BOM updates without building anything physical.
What CAD software should I use?
We primarily use KiCad for PCB design (open-source and free) and accept any 3D CAD format that can export to STEP files. Popular choices include FreeCAD (open-source), Fusion 360 (free for hobbyists), and SolidWorks (if you have access). The key is being able to share files in open formats.
How long does it take to get my PR reviewed?
Most pull requests receive an initial review within 48 hours. Complex PRs may take longer, but we always acknowledge submissions quickly. If you haven't heard back in 3 days, feel free to ping in Discord.
What is the CLA and why do I need to sign it?
The Contributor License Agreement (CLA) ensures that your contributions can be used in the open-source project while protecting both you and Openwater legally. It's a standard practice in open-source projects. The process is automated and takes less than 2 minutes.
Can I earn money contributing to Openwater?
Yes! We offer bounties ranging from $100-$2,000 for specific issues, and community grants from $2,000-$10,000 for larger projects. Check our Discord #opportunities channel for current paid work available.
What programming languages do I need to know?
Primary languages are Python and C++, but we also have Kotlin (Android apps), JavaScript (web interfaces), and documentation work that requires no coding. Start with whatever language you're comfortable with.
Where can I get help if I'm stuck?
Multiple support channels: Discord #help channel (fastest response), GitHub issues, weekly office hours, and email support. Our community is very responsive and welcoming to newcomers.

Ready to Start Contributing?

Choose how you'd like to get started today

Have questions? Email us at community@openwater.health