Core libraries for creating robot programs for the FIRST Robotics Competition roboRIO.
WPILib is the official open-source software library suite for the FIRST Robotics Competition (FRC). It provides the core libraries—including WPILibJ (Java), WPILibC (C++), and a Hardware Abstraction Layer (HAL)—that teams use to program their competition robots running on the roboRIO controller. It solves the problem of low-level hardware complexity by abstracting device interactions, allowing teams to concentrate on game strategy and robot behavior.
FIRST Robotics Competition teams, mentors, and students who need to program FRC robots, ranging from beginners with limited coding experience to advanced programmers developing complex robot behaviors.
Developers choose WPILib because it is the officially supported, battle-tested standard for FRC robotics programming. Its unique value lies in its mission-driven design that ensures accessibility for all skill levels while maintaining powerful capabilities for advanced users, coupled with strong multi-language support and seamless integration with FRC's Kit of Parts hardware.
Official Repository of WPILibJ and WPILibC
Provides a low-level HAL that insulates teams from vendor-specific details of roboRIO hardware, allowing focus on game logic as per the README's mission.
Maintains feature parity across Java, C++, Python, and LabVIEW, ensuring no team is disadvantaged by language choice, explicitly stated in the README.
Includes a simulation environment to run and test robot code on a desktop without physical hardware, speeding up development cycles.
Designed to 'raise the floor, not lower the ceiling,' making robotics programming accessible to beginners while supporting advanced features.
Requires specific tools like JDK 17, C++ compilers, and ARM toolchain installation, which can be daunting for new teams, as detailed in the Requirements section.
Tightly integrated with FRC's Kit of Parts and roboRIO, limiting its use for other robotics platforms or commercial applications.
Relies on Gradle for builds, which adds complexity and a learning curve for teams unfamiliar with modern build tools, despite its power.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.