# Awesome FRC [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

[<img src="media/first.svg" align="right" width="150">](https://www.firstinspires.org/robotics/frc)

> A curated list of _awesome_ packages and resources related to the FIRST Robotics Competition.

[FRC](https://www.firstinspires.org/robotics/frc) is a global High School robotics competition in which students compete to build the best robot possible in just six weeks. These tools, resources, communities, and learning materials will help make your FRC season a blast.

## Contents

- [General](#general)
- [Suppliers](#suppliers)
- [Programming](#programming)
- [Vision](#vision)
- [Scouting](#scouting)
- [Driving](#driving)
- [Community](#community)
- [Repositories](#repositories)
  - [Java/Kotlin](#javakotlin)
  - [C++](#c)
  - [C#](#c-1)
  - [Python](#python)
  - [CSS](#css)
  - [Ruby](#ruby)
- [Videos](#videos)
- [Miscellaneous](#miscellaneous)

## General

- [The Blue Alliance](https://www.thebluealliance.com/) - FRC's leading event, team, and match tracker.
- [The Compass Alliance](https://www.thecompassalliance.org/) - A resource for learning about all FRC topic, made for any level of experience.
- [State Space Guide](https://github.com/calcmogul/state-space-guide) - A practical guide to state-space control: graduate-level control theory for high schoolers.
- [GradleRIO](https://github.com/wpilibsuite/GradleRIO) - A powerful Gradle Plugin that allows teams competing in the FIRST robotics competition to produce and build their code.

## Suppliers

- [CTR Electronics](http://www.ctr-electronics.com/) - Supplier of many popular parts certified for FRC use, including the Talon SRX's and Victor SPX's.
- [AndyMark](https://www.andymark.com/) - A supplier for the educational robotics market, focusing particularly on FIRST.
- [VEXpro](https://www.vexrobotics.com/vexpro) - A distributor of parts for FRC, FTC, and VEX formed by FIRST alumni.
- [McMaster-Carr](https://www.mcmaster.com/) - A comprehensive index of parts for many applications, from fasteners to pneumatics.
- [REV Robotics](http://www.revrobotics.com/) - Distributor of many FIRST Legal mechanical and electrical parts, including NEO Brushless Motors and Spark MAX Motor Controllers.
- [West Coast Products](http://www.wcproducts.net) - A company founded by FIRST alumni that aims to distribute reliable and high-quality parts.

## Programming

- [WPILib ScreenSteps](https://wpilib.screenstepslive.com) - Old and unsupported documentation for hardware and officially supported software languages. For up to date, check below.
- [WPILib Docs](https://docs.wpilib.org/en/latest/) - Up-to-date documentation on FRC hardware and software for 2020 and beyond.

## Vision

- [CSCore](https://github.com/wpilibsuite/cscore) - The CScore camera vision library from WPI.
- [254 2016 Vision Talk](https://www.youtube.com/watch?v=rLwOkAJqImo) - The most complete lesson about vision tracking out there.
- [2729 Storm Robotics Vision](https://github.com/2729StormRobotics/StormCV2017) - An example of using OpenCV and GRIP to create a vision system.
- [Limelight](https://limelightvision.io/) - A plug-and-play vision solution built for FRC.
- [ChickenVision](https://github.com/team3997/ChickenVision) - An easy to implement vision system created by Team 3997.
- [SERT Vision](https://github.com/SouthEugeneRoboticsTeam/vision) - A Jetson-powered OpenCV vision tracking solution, complete with status GUI and NetworkTable hooks.
- [GRIP](https://github.com/WPIRoboticsProjects/GRIP) - An application for rapidly prototyping and deploying computer vision algorithms.

## Scouting

- [Robot Scouter](https://github.com/SUPERCILEX/Robot-Scouter) - Gorgeous and powerful Android scouting app.
- [VictiScout](https://github.com/FRCScout/FRCScout) - Light Electron scouting app by Team 1418.

## Driving

- [QDriverStation](https://github.com/FRC-Utilities/QDriverStation) - Popular open-source Driver Station clone for all Desktop platforms. Though not permitted in competition, essential for teams wishing to drive on another platform or up their open source cred.
- [FRCDashboard](https://github.com/FRCDashboard/FRCDashboard) - Powerful and flexible boilerplate for creating complex driving dashboards with web technologies.
- [SmartDashboard.js](https://github.com/erikuhlmann/SmartDashboard.js) - SmartDashboard port written in JavaScript with `nw.js`.

## Community

- [/r/FRC](https://www.reddit.com/r/FRC/) - The one and only FRC subreddit.
- [Chief Delphi](https://www.chiefdelphi.com/forums/portal.php) - The essential forum for all things FRC.
- [Discord Server](http://discord.gg/frc) - Chat community for robotics advice and socialization with other FRC students, mentors, and alumni. The absolute best place to go for FRC discussion.
- [Discord Server List](https://docs.google.com/spreadsheets/d/1rm6C_hHhPmiIBZxrQT-xGag2Kv9RTpEdENYSKNYB7iI/edit#gid=1112789586) - List of unofficial regional, organizational, and community servers for FRC.

## Repositories

### Java/Kotlin

- [WPILib](https://github.com/wpilibsuite/allwpilib) - The official WPILib repository, containing code for the Java and C++ libraries.
- [SmartDashboard](https://github.com/wpilibsuite/SmartDashboard) - The official SmartDashboard repository containing code for the Java Driver Station dashboard.
- [Shuffleboard](https://github.com/wpilibsuite/Shuffleboard) - A clean Driver Station dashboard for FIRST teams.
- [Sertain](https://github.com/SouthEugeneRoboticsTeam/sertain) - A framework which builds upon WPILib and makes programming a robot in Kotlin beautiful.
- [ROOSTER](https://github.com/flamingchickens1540/ROOSTER) - A common library of useful classes and systems for FIRST.
- [FalconLibrary](https://github.com/FRC5190/FalconLibrary) - A library for programming robots in Kotlin, made by Team 5190.
- [SnobotSim](https://github.com/snobotsim/SnobotSim) - A program that can simulate FRC robots programmed in Java.
- [Lib5K](https://github.com/frc5024/lib5k) - A robotics library developed by team 5024 

### C++

- [WPILib (Java/C++)](https://github.com/wpilibsuite/allwpilib) - The official WPILib repository, containing code for the Java and C++ libraries.
- [BaseBot](https://github.com/frc5024/basebot) - A complete rewrite of barebonesFRC that is heavily optimized to run as fast as possible and use the bare minimum amount of resources during periodic functions.

### C#

- [WPILib (C#)](https://github.com/robotdotnet/WPILib) - Unofficial WPILib port for writing robot code in C#.
- [NetworkTables (C#)](https://github.com/robotdotnet/NetworkTables) - Unofficial NetworkTables port for C#.
- [FRC-Extension (Visual Studio)](https://github.com/robotdotnet/FRC-Extension) - Visual Studio extension to make writing C# robots a breeze.

### Python

- [RobotPy-WPILib](https://github.com/robotpy/robotpy-wpilib) - Unofficial WPILib port allowing you to write robot code in Python.
- [pyrobottraining](https://github.com/robotpy/pyrobottraining) - Fundamental tutorial for FRC robot coding in Python.
- [pynetworktables](https://github.com/robotpy/pynetworktables) - Port to allow access of NetworkTables in Python.
- [TBApi](https://github.com/PlasmaRobotics2403/TBApi) - A Python library for interacting with The Blue Alliance API.

### CSS

- [banners.css](https://github.com/ErikBoesen/banners.css) - Library for creating pure CSS FRC banners. Utilitarian and pretty decoration for team websites.

### Ruby

- [tba.rb](https://github.com/frc1418/tba.rb) - Simple Ruby library for easy interaction with The Blue Alliance API.

### JavaScript

- [TBA Node API](https://github.com/Team2537/tba-api-node) - A Node.js library for interacting with The Blue Alliance API.

## Videos

- [FIRST on YouTube](https://www.youtube.com/user/FIRSTWorldTube) - FIRST's official YouTube channel.
- [Game Animations](https://www.youtube.com/watch?v=uYNu9cQac1o&list=PLOPIDgAYFKaQmz6aznEMAbewtqqT7FCqY) - Playlist of every game release video since 2003.
- [Reveal Videos](https://www.youtube.com/watch?v=2zu1EzyKRRE&list=PLocx3vY5mUKNSVfiI1kEjZ9AXtMu1N7-B) - Playlist of the best robot reveal videos.

## Miscellaneous

- [FIRST Map](https://firstmap.github.io) - Beautiful map of the world's FRC teams.
- [FRC New Tab](https://chrome.google.com/webstore/detail/frc-new-tab/agmoglelphhinnadfmbfodhkdagibkop) - Chrome extension to fill your New Tab page with a random FRC team, or show the team with a number corresponding to the current time.
- [FRC Bot](https://github.com/FRC-Bot/FRCBot-ChatBot) - Facebook Messenger bot to get information about FRC teams, events, and matches.
