Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   General Forum (http://www.chiefdelphi.com/forums/forumdisplay.php?f=16)
-   -   Team 254 Presents: Cheesy Arena (http://www.chiefdelphi.com/forums/showthread.php?t=130495)

Pat Fairbank 09-09-2014 15:56

Team 254 Presents: Cheesy Arena
 
Cheesy Arena is an alternative field management system for off-season events, scrimmages, and practices. You saw it in action at Chezy Champs, and now we’re releasing it for all teams to use!

Check out the README, source code, and binaries at https://github.com/Team254/cheesy-arena, and watch a brief video overview here.

Key features for participants and spectators:
  • Minimally invasive overlays
  • No-lag goal/pedestal lighting and realtime scoring
  • Team stack lights and sevent-segment display are replaced by an LCD screen, which shows team info before the match and the realtime scores and timer during the match
  • Smooth-scrolling rankings display
  • Direct publishing of schedule, results, and rankings to The Blue Alliance

Key features for scorekeepers:
  • Runs on Windows, Mac OS X, and Linux
  • No install prerequisites
  • No "pre-start" – hardware is configured automatically and in the background
  • Flexible and quick match schedule generation
  • Streamlined realtime score entry
  • Reports, results, and logs can be viewed from any computer

Questions, comments, bug reports, or feature requests? Post here or file an issue on GitHub.

madhav 09-09-2014 16:53

Re: Team 254 Presents: Cheesy Arena
 
This is amazing.

That is all I have to say.

guniv 09-09-2014 17:28

Re: Team 254 Presents: Cheesy Arena
 
Incredible.

madhav 09-09-2014 17:41

Re: Team 254 Presents: Cheesy Arena
 
Will be there support for changing the game? Say if a person wants to use Cheesy Arena but its before the 'official' of version of Cheesy Arena is released, will we be be able to edit the templates and have the overlays auto generated?

As far as I can decipher from the code, the game specific scoring system (the truss and catch) are hardcoded into the audience template file.

MrTechCenter 09-09-2014 17:45

Re: Team 254 Presents: Cheesy Arena
 
We plan on using this at CCC later this month. Can't wait!

Pat Fairbank 09-09-2014 17:54

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by madhav (Post 1399542)
Will be there support for changing the game? Say if a person wants to use Cheesy Arena but its before the 'official' of version of Cheesy Arena is released, will we be be able to edit the templates and have the overlays auto generated?

As far as I can decipher from the code, the game specific scoring system (the truss and catch) are hardcoded into the audience template file.

Yes, the game is hardcoded. My intention is to release a new version for every game, ideally in advance of any events that want to use it.

With modern source control, it's way easier to branch and have multiple releases that you can cherry-pick improvements to, than it is to templatize the system to work with any game.

madhav 09-09-2014 18:05

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by Pat Fairbank (Post 1399546)
Yes, the game is hardcoded. My intention is to release a new version for every game, ideally in advance of any events that want to use it.

With modern source control, it's way easier to branch and have multiple releases that you can cherry-pick improvements to, than it is to templatize the system to work with any game.

Awesome. Plain awesome. Thanks!

plnyyanks 09-09-2014 19:40

Re: Team 254 Presents: Cheesy Arena
 
This is amazing (sounds like a broken record, but totally deserved).

Question. When you say "Automatic download of recent accomplishments (needs better TBA API)" in the TODO page, what enhancements are you looking for in the TBA API? I'd be willing to help add them.

Mark Sheridan 09-09-2014 19:53

Re: Team 254 Presents: Cheesy Arena
 
Quote:

You must spread some Reputation around before giving it to Pat Fairbank again.
Awesome work Pat.

Pat Fairbank 09-09-2014 19:59

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by plnyyanks (Post 1399560)
Question. When you say "Automatic download of recent accomplishments (needs better TBA API)" in the TODO page, what enhancements are you looking for in the TBA API? I'd be willing to help add them.

Thanks for offering to help. The issue is that there isn't really an easy way to get the awards for all of the teams attending an event. My understanding is that I'd have to:
  1. Make an Event Request to get the list of teams for my event
  2. For each team, make one or more Team Events Requests to find out what events they went to recently
  3. For each team and event, make a Team Event Awards Request to get the list of awards the team won
That's probably well over 100 requests for a medium-sized event.

What I want to end up with is a list of awards won by the teams attending my event in the current season and the previous, grouped by team. To get this, I'd prefer to make a number of API calls that is O(1) with respect to the number of teams and the events they have each gone to.

Does that make sense?

DCA Fan 09-09-2014 23:46

Re: Team 254 Presents: Cheesy Arena
 
Thank you for releasing this! Very happy to try this out.

Zach O 10-09-2014 00:29

Re: Team 254 Presents: Cheesy Arena
 
Very impressive! Huge thank you to everyone involved. Great to see it's written in Go as well :D

plnyyanks 10-09-2014 10:06

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by Pat Fairbank (Post 1399563)
What I want to end up with is a list of awards won by the teams attending my event in the current season and the previous, grouped by team. To get this, I'd prefer to make a number of API calls that is O(1) with respect to the number of teams and the events they have each gone to.

Does that make sense?

Yeah, that makes sense. I'll add it to my TBA todo list

Andrew Schreiber 10-09-2014 10:28

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by Zach O (Post 1399588)
Very impressive! Huge thank you to everyone involved. Great to see it's written in Go as well :D

Given my boss is making a push to use Go in our code base...

Pat, how'd you like implementing a real web service in Go? Any things you found worked well and things that didn't?

Libby K 10-09-2014 11:25

Re: Team 254 Presents: Cheesy Arena
 
This is absolutely fantastic. I'm not a programmer by any means, but I can tell that a ton of effort went into this, and even just from the CC webcast, it looked incredible.

Thank you for working so hard on this and for sharing it with the community. I really hope some of the pieces of Cheesy Arena transition into meaningful changes to the systems used in regulation competition.

Nick Lawrence 10-09-2014 13:54

Re: Team 254 Presents: Cheesy Arena
 
It seems that every couple years you earn a giant cookie. Great work, Pat!

-Nick

Pat Fairbank 10-09-2014 15:01

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by Andrew Schreiber (Post 1399607)
Pat, how'd you like implementing a real web service in Go? Any things you found worked well and things that didn't?

It was an amazing experience. Go is very well suited to this sort of thing -- HTTP handling is built in and easy, network communication is a breeze, and performance is awesome (Cheesy Arena uses only 1-2% of the CPU even when running a match). Built-in unit testing and single-binary deployment are also huge plusses.

This was the first project I've used Go for so I struggled a lot with the non-object-orientedness and how to organize the code and minimize repetition. The final result isn't ideal and I need to keep working on it -- all the code is in the same "main" package, there's a lot of shared global variables, and the WebSocket handlers are more repetitive than I'd like.

Overall, though, I'd highly recommend Go for any web service work.

billbo911 10-09-2014 15:30

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by Pat Fairbank (Post 1399634)
... The final result isn't ideal and I need to keep working on it -- all the code is in the same "main" package, there's a lot of shared global variables, and the WebSocket handlers are more repetitive than I'd like....


According to the "What programmers say vs. what they mean" translation table below, I believe the expression you are looking for is "It's a 'Complex structure'".



All kidding aside, we look forward to using Cheesy Arena at CCC next weekend. Let's hope we can use it as skillfully as it was used at CC.

Thanks again Pat, and your team, for making this and sharing it!

Puneet4778 10-09-2014 18:38

Re: Team 254 Presents: Cheesy Arena
 
Wow, looks great! I have one question: What is the protocol for feeding video to the audience display? This is my team's first time setting up any kind of fms software and we are unaware.

Thanks!

AllenGregoryIV 10-09-2014 18:45

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by Puneet4778 (Post 1399666)
Wow, looks great! I have one question: What is the protocol for feeding video to the audience display? This is my team's first time setting up any kind of fms software and we are unaware.

Thanks!

In addition, is there a document that outlines all the hardware used at Chezy Champs? How many computers, router, etc.?

Thanks again for all the hard work.

mrscience21 10-09-2014 18:51

Re: Team 254 Presents: Cheesy Arena
 
Is there any documentation as to the network interface used to control the pedestal and hot goal lights?

Pat Fairbank 10-09-2014 19:28

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by Puneet4778 (Post 1399666)
What is the protocol for feeding video to the audience display? This is my team's first time setting up any kind of fms software and we are unaware.

The audience display renders the overlays on a green background (or a color of your choosing). You would then need to connect the output of this to a video mixer capable of chroma keying, to superimpose it on your video. You can use a hardware or software video mixer (such as Open Broadaster) for this.

Quote:

Originally Posted by AllenGregoryIV (Post 1399667)
In addition, is there a document that outlines all the hardware used at Chezy Champs? How many computers, router, etc.?

We used one computer to run Cheesy Arena, and then one for each additional display (audience, FTA, announcer, red scoring, blue scoring, referee, red alliance stations, blue alliance stations). This page describes our networking setup, but most events can get away with a lot less.

Quote:

Originally Posted by mrscience21 (Post 1399670)
Is there any documentation as to the network interface used to control the pedestal and hot goal lights?

We built some custom hardware (an embedded microcontroller board plus an LED driver board) into a project box and put one at each end of the field. We'll post the specifications for that on GitHub once the guys who worked on it finish documenting it. The communication was UDP over Ethernet -- just a plain 32-byte packet containing RGB and transition time values for each of eight channels.

AllenGregoryIV 10-09-2014 19:41

Re: Team 254 Presents: Cheesy Arena
 
Thanks for the description.

Quote:

Originally Posted by Pat Fairbank (Post 1399677)
We used one computer to run Cheesy Arena, and then one for each additional display (audience, FTA, announcer, red scoring, blue scoring, referee, red alliance stations, blue alliance stations). This page describes our networking setup, but most events can get away with a lot less.

One PC at each of the 6 alliance stations?

NickE 10-09-2014 19:45

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by AllenGregoryIV (Post 1399684)
One PC at each of the 6 alliance stations?

One at each end of the field connected to 3 USB monitors each.

dcarr 10-09-2014 21:07

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by NickE (Post 1399685)
One at each end of the field connected to 3 USB monitors each.

The monitors were a nice touch - what's the model you used?

James Tonthat 11-09-2014 09:05

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by dcarr (Post 1399699)
The monitors were a nice touch - what's the model you used?

From what I saw (on the label from the back of the display), they used the AOC E1649FWU displays.

For their PC, they used some sort of Intel NUC that was attached to the display in the center alliance station.

Pretty darn slick setup.

Travis Covington 11-09-2014 12:37

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by James Tonthat (Post 1399728)
From what I saw (on the label from the back of the display), they used the AOC E1649FWU displays.

For their PC, they used some sort of Intel NUC that was attached to the display in the center alliance station.

Pretty darn slick setup.

Close - It was actually the E1659FWU, which adds a VESA mount and allowed us to attach the brackets which we ziptied to the player station structure.

adammiller3122 14-09-2014 17:22

Re: Team 254 Presents: Cheesy Arena
 
My one suggestion would be to make it so that the user can edit the image at the very least to make it more of a custom competition. For example, we are planning on having a mini competition that we create. It would be ideal to have that image be one of our own. Just my 2 cents.

mwtidd 14-09-2014 18:58

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by adammiller3122 (Post 1400050)
My one suggestion would be to make it so that the user can edit the image at the very least to make it more of a custom competition. For example, we are planning on having a mini competition that we create. It would be ideal to have that image be one of our own. Just my 2 cents.

I'm not sure if it requires a build, but it seems it was designed with your use case in mind. You should see an image file called logo or something like that, that you can do a direct swap with

adammiller3122 14-09-2014 19:16

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by lineskier (Post 1400058)
I'm not sure if it requires a build, but it seems it was designed with your use case in mind. You should see an image file called logo or something like that, that you can do a direct swap with

Thank you. I will look into that. I just put it on my personal laptop to do some testing with it. Thanks again.

Pat Fairbank 14-09-2014 22:36

Re: Team 254 Presents: Cheesy Arena
 
Quote:

Originally Posted by lineskier (Post 1400058)
I'm not sure if it requires a build, but it seems it was designed with your use case in mind. You should see an image file called logo or something like that, that you can do a direct swap with

Yeah, since the displays are all HTML/CSS and static images, you can change and replace stuff as you see fit to brand it for your event. The HTML will be in the /templates directory and the images will be in /static/img.


All times are GMT -5. The time now is 23:59.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi