Open Source · MIT License

Weevil

Reveals what matters. Hides what doesn't.

An FTC robotics project generator that gives your students professional-grade tools. Clean project structure, real unit tests, and workflows that mirror industry practices.

$ git clone https://nxgit.dev/nexus-workshops/weevil.git
The Opportunity

Let's Set Students Up
for Success From Day One

Most FTC teams start by cloning the entire SDK and writing code inside it. It gets robots running, but there's a better path — one that mirrors professional software development and builds skills students will use for years.

01

Start With What Matters

What if new team members could open a project and immediately see just the code that's theirs? Clear boundaries make onboarding faster and learning easier.

02

Clean Separation

When student code has its own home — separate from the SDK — it's easier to understand, modify, and share. Clear structure builds confidence.

03

Version Control That Makes Sense

Imagine teaching Git where students only track their own code. No confusion about what to commit, cleaner diffs, easier collaboration.

04

Test Before You Deploy

What if students could validate their logic at their desk before walking across the room to the robot? Faster feedback loops mean faster learning.

05

Build Professional Habits Early

Separation of concerns, dependency management, testing — these patterns aren't just for industry. When students start with good structure, they build skills that compound.

The Approach

FTC Projects Can Work
Like Professional Software

Weevil generates standalone robot projects with your code in src/, tests that run on laptops, and the SDK as a clean dependency. It's the structure professional teams use — now available for FTC.

Your Code, Your Directory

Student code in src/. Build scripts in Gradle. SDK as a dependency, not mixed in. Clear lines. Students know exactly what's theirs and what isn't.

Tests That Run on Your Laptop

45 tests in under 2 seconds. No robot, no USB cable, no walking across the room. Catch logic errors at your desk, then deploy with confidence.

Start With Working Examples

Templates with complete subsystems, hardware abstraction, and comprehensive documentation. The kind of code students would write if they already had years of experience.

Git That Actually Works

Proper .gitignore. Only your files in the repo. Diffs that make sense. Version control becomes a learning tool, not a source of confusion.

One-Click From Android Studio

Auto-generated run configurations. Hit the green button to build, test, or deploy. SDK internals hidden from the file tree so students focus on what matters.

Works Behind School Firewalls

Automatic proxy detection from environment variables. Explicit --proxy flag when needed. Designed for the real world of school networks.

~/robotics
$ weevil setup
FTC SDK installed
Android SDK verified
Gradle wrapper ready
 
$ weevil new my-robot --template testing
Created 'my-robot' with testing template
3 subsystems · 45 tests · full docs
 
$ cd my-robot && ./gradlew test
45 tests passed · BUILD SUCCESSFUL in 1s
 
$ ./deploy.sh
Deployed to Control Hub
Ready to compete.
Workflow

Setup to Deploy in Four Commands

From empty directory to tested, deployed robot. The kind of workflow that lets students focus on problem-solving instead of build configuration.

  • One command installs all dependencies
  • Templates give working code on day one
  • Tests run on your laptop — no hardware needed
  • Deploy over USB or WiFi
  • Works on Linux, macOS, and Windows
  • Upgrade build scripts without touching your code
Templates

Start From Working Examples,
Not Blank Files

Choose a template that matches where your team is. Get the structure right from day one, then focus on building your robot.

--template basic

Clean Foundation

The right project structure, the right build scripts, and a sample OpMode to get you started. Perfect for teams who know what they're doing and just want the boilerplate done right.

~10Files
1Test
  • Correct Gradle configuration
  • Cross-platform build & deploy scripts
  • Sample OpMode ready to modify
  • Android Studio run configurations
--template testing

Complete Learning Experience

Everything in basic, plus three complete subsystems, a hardware abstraction layer, 45 passing tests, and professional documentation. Learn by reading real, production-quality code.

~30Files
45Tests
  • MotorCycler — state machine with timing logic
  • WallApproach — sensor-based deceleration
  • TurnController — gyro with angle wraparound
  • Hardware abstraction + mock layer for testing
  • 6 documentation files explaining the why
  • Competition-ready patterns you can adapt
Want to Learn the Patterns?

Our hands-on guide walks you through building your first testable subsystem — from mock classes to unit tests to real hardware adapters.

Read the Tutorial
Architecture

Professional Structure, Student Scale

Your code in src/. Tests alongside it. Build infrastructure generated for you. The SDK stays clean as a system dependency — not a container for student code.

Separation of concerns. Testability. Clean boundaries. These aren't corporate buzzwords — they're the difference between a team that spends Saturday debugging Gradle and a team that spends Saturday perfecting their autonomous routine.

my-robot/
├── src/
│ ├── main/java/robot/ ← your code lives here
│ │ ├── hardware/ ← interfaces
│ │ ├── subsystems/ ← the good stuff
│ │ └── opmodes/ ← entry points
│ └── test/java/robot/ ← runs on your PC
│ ├── hardware/ ← mock objects
│ └── subsystems/ ← unit tests
├── docs/ ← comprehensive guides
├── .idea/ ← Android Studio just works
├── build.sh / build.bat
├── deploy.sh / deploy.bat
└── .weevil.toml ← project config
What's Coming

Building on a Solid Foundation

Weevil already solves the core challenges. Here's what we're building next to make it even better.

Package Manager

Share tested components across teams. weevil add nexus/subsystems/mecanum-drive drops a documented mecanum drive into your project. Community packages, verified components, dependency resolution.

Coming soon

Localization Template

Grid-based robot localization with sensor fusion — encoders, IMU, and AprilTags working together. Fault-tolerant positioning that degrades gracefully when sensors fail.

Coming soon

GUI Application

Not everyone loves the terminal. A graphical interface for creating projects, managing builds, and browsing packages. Built with Tauri for native performance.

On the roadmap

Android Studio Debugging

Set breakpoints. Hit the debug button. Step through your OpMode code while it runs on the robot. Real debugging, not telemetry.addData() and guesswork.

On the roadmap

Troubleshooting Suite

Build error analysis in plain English. Connectivity diagnostics. Log analysis. Performance profiling. Tools that turn frustration into answers.

On the roadmap

Native Installers

MSI for Windows, .deb for Debian/Ubuntu. Double-click to install, adds to PATH automatically. Professional installation experience.

On the roadmap
Why "Weevil"?

Philosophy

Just as the boll weevil reveals valuable fibers hidden in cotton bolls, this tool helps students discover what matters most — building robots, writing testable code, and developing skills that last.

Built with Rust. Open source. By an engineer who mentors FTC teams and believes every student deserves professional-grade tools.

01

Students First

02

Industry Practices

03

Test Everything

04

Keep It Simple

05

No Magic

06

Works With Your Tools

07

Learn by Example

Ready to Give Your Students
Professional Tools?

Weevil is free, open source, and MIT licensed. Built for FTC teams who want to spend less time wrestling with build systems and more time learning to build great robots.

Questions? eric@nxlearn.net