Introducing FRCMonkey - a hands-on learning platform with interactive software simulations

I’m super excited to share with you all a project I’ve been working on for a while: FRCMonkey !!

I will say that I am not in the software department and have limited experience so I deeply deeply apologize if there is any misinformation on the site and will immediately update it if present! This is also my first post on cd so apologies if the format is a little bit funky.

FRCMonkey is your team’s ultimate tool for growing your software knowledge. It’s designed to make learning FRC programming concepts easier, more interactive, and more accessible for teams of all skill levels.

Features of FRCMonkey

  • Concept Overviews:
    FRCMonkey offers concise, beginner-friendly overviews of key concepts essential for FRC teams, including:
    • Java: Learn the basics of Java, one of the most popular programming languages used in FRC.
    • Git: Understand version control for managing code and collaborating with your team.
    • WPILib: Explore the library used to control your robot and make it competition-ready.
  • Interactive Walkthroughs:
    Dive into programming walkthroughs that guide you step-by-step through key FRC programming concepts, such as motor control.
    • These walkthroughs are done directly in your browser, eliminating the need for external IDEs or setup.
    • You can write, test, and see your code come to life in real-time using the built-in simulator.

Current Walkthrough

Right now, FRCMonkey includes a walkthrough and simulation for running a motor. Future planned simulations include:

  • Controlling Multiple Motors
  • Using Sensors
  • Vision Systems
  • More!

Stay tuned for these and more!


Very Important Note

This projects is still in its early stages of development.

This means there are probably a LOT of issues to address and many features missing. Two big features I wasn’t able to implement yet are:

  • Syntax Highlighting
  • A Glossary (Definitions/Explanations for all the currently bolded terms and some more)

I’m sharing this project now(with all its flaws) because

  1. I want to gauge interest before further development
  2. I won’t be able to continue working on it until the 2025 FRC season comes along, where it will likely be lost in the annual barrage of cd posts.

Your feedback and feature requests are incredibly valuable! I’ll do my best to implement them as the project evolves.


Future Plans!

  • Support for more programming languages
  • Better visualisations for all simulations
  • More beginner friendly (definitions EVERYWHERE)
  • A deeper dive into critical concepts (Programming basics, Git, WPILib, Vision, Hardware, etc.)

Images



Feel free to share your thoughts and ideas! I’d love to hear how FRCMonkey could better serve the FRC community!

Check it out: FRCMonkey

28 Likes

As a person who doesn’t have any experience with FRC programming, this intrigues me.

Best of luck, this project has got me very interested to see how you account for all the challenges that other hardware/software resources may run into. I will be watching to see where you take this.

Edit: I believe one thing that might be interesting for you to add is an overview of the main tools like the Driver Station, PathPlanner, Phoenix etc.

4 Likes

OH MY GOD ITS HAPPENING

If you are willing to open support like how FRCDesign is, I am sure you will be able to grow this to be more accurate and up-to-date!

11 Likes

chrome_vHUK3mGvwt

Unfortunately I think I’m soft-locked at this step :slight_smile:

I do like the general format - from a pedagogy perspective, there’s several good things going on:

  1. Requiring students to type things out to build some muscle memory
  2. Introducing the basic “formula” for doing common things (easy to build on)
  3. Introducing information exactly as it’s needed, no sooner.
  4. (at least by intent) instant feedback to students if they got it right - there’s clear “my code causes X to happen” indicated in the UI

The perennial issue with exercises like this is keeping them up to date with best practices, library API changes, etc. While it’s certainly good for you to get some experience setting up a project like this, it’ll be important to consider that ‘ongoing support’ aspect to make this a project that goes beyond yourself and your team.

2 Likes

This is truly impressive—a thorough and comprehensive guide I’ll definitely recommend to others. Outstanding work!

Interesting idea, never thought of that! Will definitely consider if this project moves forward!

I’d definitely be open to making this a community like project but not sure where to recruit :person_shrugging:.

Just putting the code in a GitHub repository and including the links in the announcement post and a new message in this thread will probably be enough. You don’t necessarily need to actively recruit people: Just making the option available will let people who are interested get started.

An additional thing you (or any contributors) can do is add an obvious note about when the website was last updated and a comment that if it’s been a while since the last update, the information may not be up to date.