What's with all of the code and CAD releases over the last couple of weeks?

You might have noticed the sudden burst of teams posting links to their prior year’s code and CAD drawings on Chief Delphi. Wondering why? Read on.

R16 of the 2019 Game and Season Manual says:

Software and mechanical/electrical designs created before Kickoff are only permitted if the source files (complete information sufficient to produce the design) are available publicly prior to Kickoff.

While we don’t know what the rules are for 2020*, that rule has been present for many years. Despite the changes to remove the bag rules, veteran FRC odds-makers are betting that you’ll see a similar rule again this Saturday when you enter the magic password. No, I don’t know anything more about the 2020 rules than you do.

So, if you have that regional-winning robot vision library, or that crazy 5 RedLine continuously variable gearbox from last year’s bot, or a sick SLAM** solution and want to use it on this year’s robot, you need to publish the design.

What does publish mean? The examples in the rules all say:

  • post it in a generally accessible public forum
  • make the code available to all Teams

Do you really want to get into an argument with the robot inspector over where the design was posted? If you post it on CD, no self respecting RI*** will challenge you.

A story. A couple years ago at a competition I was asked to consult on a robot’s control system issue. We spent quite a bit of time going through the source code of the robot to see what the issue was. Reading the source code, it was clear to me that the code represented many years worth of work.

After the competition, I took a look around for the team’s code, and wasn’t able to find it online anywhere. That’s not right.

The concept behind this rule is that the work product – the robot and its code – represents the work of the current team. Sharing of designs and source code helps level the playing field and increases the quality of robots from all teams. It deliberately reduces the (big) advantage that veteran teams have over new ones. This sharing is a big reason why FRC robots do more amazing things each year. I like amazing. You’d like it too if you watched 400 matches a year.

Finally, a personal note. I love reading team’s robot code, and would love to see more published code to look at.

So, there you go. Publishing your code and designs = good. Go do it now.

* HT Marshall on the conundrum this creates.
** You’ll have to look it up. We can’t do all of the work for you.
*** I’m still trying to decide whether Jon Stratis falls into this category. Your feedback invited via DM on the board.


You know we actually got this rule early this year, right?



To dogpile with OP - Post your stuff. It’s fun!

The only thing better than seeing awesome things that people do is hearing them explain their awesome thing with great excitement!


Right you are, Marshall. I’d forgotten that was included in the 2020 rules preflight document.

1 Like

Thanks for posting the rules link, and the encouragement to share.
Would it be sensible to have designated threads in Programming / Design sub-forums to gather all the various published code and cad?

eta: found one in the general forum - Making code and designs public

We’ve tried having designated threads in the past to little effect. I suppose we could have a dedicated category, but it would require some aggressive moderation to be effective.

I spent a little time collecting posts in this thread: Making Code and Designs Public for 2020 season
A category for code-2019 / cad-2019 may help too. Gentle nudges in the right direction!


Just making sure; as long as your code is public on Github, it should be legal for reuse, no?

1 Like


1 Like

Not sure if it’s clear, but you do need to publicize the existence of the public repo. A repo that no one knows about clearly doesn’t meet the intent of the rule. Many people do that by making a post here with a link.

1 Like

It looks like their GitHub is linked on their TBA page, which I would consider reasonably easy to find if someone else were to go looking for their code.


There is another reason to post. And for us its that we are strong believers in open source. Our code has been on GiThub for IDK how long - good and bad and our designs used to be on our web page but due to the 3DP explosion of file size and number of cad files are now on grab cad. We would love to collaborate on stuff and have received some small inputs and suggestions/alterations here and there. So long live Open Source

Oh forgot one thing - with open source if/when you use it - don’t forget to give credit where credit is due

1 Like

Your definition of little is different than mine. Thank you still!

FWIW, scripting the operation is possible.

Citation needed.


For better or worse, rules are legislated on the letter of the rule, not the intent. Unfortunately for this specific rule, it doesn’t really have teeth with it’s current wording due to the aforementioned loophole.


Shout-out to @bobbysq for pointing me to this gem (page 4 of the 2019 game manual and R16). More teeth indeed needed to capture intent of this rule (perhaps good feedback for 2021):

1 Like

This, I believe, is the correct answer. No matter what we think the intent of the rule is or is not, as long as you can successfully defend a claim of “available publicly” to any robot inspector, you’ve met the requirement.

The spirit of the rule implies “don’t hoard knowledge, share it with others”. Combined with a culture of gracious professionalism, the end result is that a team will likely share their code in multiple formats, making it not just “available publicly”, but also readily accessible and well-publicized and easy to understand.

It’s hard to nail down what the actual, concrete requirement is. As has been well discussed on CD - the rulebook definition of publicly available does not enforce teams release content in a meaningful way. It gets into the meaning of the word “available” - does available imply some level of usability? If so, what is that level? Is it the same for source code and CAD (probably not)? OR, can we trust GP will prevail and take the I know it when I see it approach, specifically saying everyone gets to be certain in their own opinion and that’s ok since GP guides us toward the same goal?


Most teams don’t think it’s entertaining to have a linguistics debate with a LRI about the meaning of “available publicly” – they want practical advice they can act on.

That’s why my advice on this is crystal clear. If you wish to demonstrate in a conclusive way that you made the code/designs public before kickoff, my suggestion is that you post a link here, include a link on your TBA page, or have a prominent link on your team’s website.


this comment is an editable WIKI now, so please add a row for your team’s public info.

Link to a code release announcement, the code location, and cad location too.

1 Like

There is really no debate to be had and no interpretation to be done. If FIRST wanted teams to announce publication of the design, the rule would have said “… publicly announced and available prior to Kickoff.” If we can’t trust inspectors to “avoid interpreting the text based on assumptions about intent …” then we have a different problem.