The VScouter scouting app is entering the reefscape season! In this thread, we will document our development process for the Reefscape version, take feedback, and share releases.
VScouter currently has the following features:
Offline Scouting Website: Works without internet at vscouter.netlify.app/, which is great for competitions with unstable Wi-Fi.
Flash Drive Data Transfer: Use of flash drives for transferring data between devices.
Power BI Integration: Data can be analyzed in Power BI, so teams can easily make decisions during alliance selection and normal matches.
Team Auto Completion: Functionality to suggest teams based on the match and alliance. This is done by preloading match data through QR codes.
Currently, I am planning to record the following data for Reefscape:
Robot Starting Position
Coral Tracking:
Auto: Where a coral is picked up (Station, Mark 1, Mark 2, Mark 3).
Teleop: Where a coral is picked up (Station, Carpet).
Placement: Where a coral is placed (L1, L2, L3, L4, Missed).
Algae Tracking:
Auto: Where algae is picked up (Reef, Mark 1, Mark 2, Mark 3).
Teleop: Where algae is picked up (Reef, Carpet).
Placement: Where algae is placed (Processor, Net Shot, Missed).
Endgame Actions:
If the robot climbs on the Deep Cage, Shallow Cage, or parks.
If the climb attempt failed.
Before diving into coding, I’m sketching a basic version of the app in Figma to solidify ideas and layout. You can check out the design here: Figma Link.
Also separates left hand for coral and right for algae.
Overall seems like the correct amount of detail, the rest can be captured in notes or maybe some post-match dropdowns (e.g. primary coral source: [station, floor, both, other (notes)]), unless the Coral/Algae UI handles this (which looking back it may)
Rather than this selecting the team, I was planning it to be to enter the scouters initials. In the top right container, I put auto suggestions for which robots are on the field to make selecting the team easier (data is preloaded onto the devices before hand).
Here is some constructive feedback for you. I don’t want to discourage you because you are doing excellent work, so let me know if it is too much.
I have some questions about screen 1 in particular:
If you change the match number or the alliance color, will the teams available to select change? What happens if you had already selected a team and then change alliance or match number?
What happens if the match number you enter isn’t valid? Are you planning to support scouting in playoffs, if so, how should those get entered? Could match number be a drop down?
After you get back to the first screen after submitting on the last screen, how much will be prepopulated for you? Will the match number get incremented by one from the last match? Will a team get preselected for you based on the team that you scouted last match? Will it remember your scouter initials from the last match?
These are things that it took us some usability testing to get right in Viper. Our lead scouter configures each of our six tablets to scout a particular position (like first blue bot). Then the scouter using that tablet doesn’t have to know which team number or match number is next. They scout whatever the tablet says they should scout when they press the “next match” button. There are ways for the scouter to change something if the schedule is incorrect or if they are switching with somebody, but for the most part they never have think about it.
When these things aren’t automated, scouters occasionally get it wrong. You’ll have two scouters scouting the same bot and other problems like that.
Thanks for the detailed feedback! I really appreciate the constructive advice.
Regarding your question about changing match numbers and alliance colors — similar to last years version, the suggested teams would just switch to the updated ones. Previously, it would keep the selected team index. What may be a good idea is to give a notification to make sure the scouter doesn’t get confused.
For invalid match numbers, what I had done was just revert to preset suggestions (ie 0000, 0001, 0002). I might choose to gray out/invalidate the suggestion buttons this year.
On returning to the first screen, I do like the idea of incrementing the match number, selecting the same index with the teams, and repopulating the initial scout initials; all things that I didn’t think of yet.
I’m may take inspiration from the Viper setup you mentioned, as that sounds like a great system for minimizing user error. Currently my team doesn’t have any dedicated devices but we are working towards getting some.
Thanks for reaching out! I’d definitely be open to contributors. If you’re interested, you can fork the repository or suggest any changes. Let me know any ideas!
I just finished coding the game start page. It may look pretty similar to the old one, but for this I started experimenting a lot more with flex boxes. I may end up revising some details.
If you want to see the website on the 2025/website/initial-design branch and don’t want to download and run the code yourself, you can find the latest commit of the branch at: https://2025-website-initial-design--vscouter.netlify.app/
After testing the initial pages on a phone, I found that the pages with images on it (home page and auto start page) are pretty broken. I am not sure whats causing this but I am looking more into it.
Also typing, specifically on the game start page, is also broken. I think I know whats going on with this though.