ATTN: SIBRPUNKS, BLASEBALL FANS, AND CAPYBARA ENTHUSIASTS
The Society for Internet Blaseball Research is seeking an answer to an important question over the Grandito Siesta: What is the most cursed way to watch a Blaseball game?
To answer this, we will be hosting the first Official SIBR Hackathon! Starting Aug 2 – Sep 5, participants will have the challenge to create new and interesting ways to watch Blaseball. All levels of interest and all definitions of "watch Blaseball" are accepted.
At the end, entries will be ranked by a small group of Professors and surprise secret guests according to three criteria: Cursedness, Technicalness, and Accessibleness:
- Cursedness: How creative and/or esoteric the idea is. We want to encourage folks to join and shoot for the moon regardless of technical ability. Got a proposal and half the infrastructure for Blaseball via Skywriting working but couldn't find a pilot? Still 10/10 Cursedness.
- Technicalness: How impressive the implementation is. This one is for the nerds who want to flex a bit, learn some new tech, or just do something silly for the sake of being silly like make a two bit adder out of marbles to track the count.
- Accessibleness: How polished and accessible the presentation is. At the end of the day, we want your blaseball viewer to be, well, viewable. Even better if it's something that genuinely increases accessibility to the splort!
The highest ranked in each category will be eligible for a $50 USD donation to a charity of their choice, and the highest overall combined rating will be eligible for $100 USD!*
*Participants may opt out of ranking for whatever reason. If this feels like competition and that stresses you out, or you don't like being perceived, or anything else, no worries! Just let us know in your submission.
Some of our Professors have so kindly offered ideas to take or leave to get the creative juices flowing!
- Blaseball plays printed onto a receipt
- Blaseball score updates cross-stitched and mailed
- Wii Splorts
- Blaseball through an oscilloscope
- Jazz weather feed events as spoken word poetry
- 1-555-SIBRTEL hotline
- ncurses
- Skywriting over Los Angeles
- Blaseball over telnet at 30,000ft
- Blaseball players as Pod Racers
Rules
- You may work solo or as part of a team.
- Submit as many times as you want before midnight PST September 5.
- Keep things SFW and keep things respectful.
- Preexisting code, 3rd party libraries, and 3rd party assets are allowed if you have the rights to use them.
- Viewers that have already shipped (ie Jlohn Mladden, Blases Loaded, Wii Splorts, Blaseball over Telnet etc) are not allowed.
- Reimplementing old viewers or building something conceptually similar to another participant is not only allowed but encouraged so long as you put your own spin on it.
- Judges are not qualified for prizes but may participate
As this is happening over the Siesta where games will not be happening, we invite you to use before.sibr.dev and/or replay.sibr.dev (or make a new replayer as your submission). Documentation for our tools can be found at our website (sibr.dev) and you are also invited to join us on Discord (discord.sibr.dev) if you need additional help, are looking for a group, or just want to hang out. Information about the contest will be officially shared on twitter, as well as in the SIBR Discord in the #😈-snackathon-general channel.
Submission
Submit as many projects as you want via this form before Sep 5!
If you want to opt out of judgement, let us know in the additional information.
A panel of seven (7) judges from the SIBR College of Augury will rank submissions according to the above judgement criteria. There may also be special guest appearances from ||| |||| ||||👁.
Getting Data
While programmatically connecting to a live data stream isn't strictly necessary, we do have options for you to play with streaming data.
Typically game updates will be delivered as JSON in the format documented here.
You can get these game updates in a variety of ways:
Streaming before.sibr.dev and api.sibr.dev/replay
You can find SSE streams emulating historic Blaseball data at https://before.sibr.dev/events/streamData and https://api.sibr.dev/replay/v1/replay?from=2020-08-30T01:00:08.17Z
JavaScript
stream = new EventSource(`${BLASEBALL_ROOT}/events/streamData`); stream.addEventListener("message", (event) => { const games = JSON.parse(event.data).value?.games?.schedule console.log(games); });
Python
Blaseball-Mike is a convenient wrapper around the Blaseball and SIBR APIs.
async def playback(): async for event in stream_events(url="https://before.sibr.dev/events/streamData"): if not event: continue print(event) if __name__ == "__main__": loop = asyncio.get_event_loop() loop.create_task(playback()) loop.run_forever()
Polling Chronicler
Chronicler is the backend that powers tools like Reblase and Before. It provides a REST API to query historic data. Full documentation can be found here
cURL
curl "https://api.sibr.dev/chronicler/v1/games/updates?limit=10" | jq .
Polling Eventually
Eventually provides a query interface over Feed events, and as such can also be used to reconstruct game logs, for example with Feedeck. Full documentation can be found here and our understanding of the Feed data model can be found here
fetch
let params = new URLSearchParams(); params.append('limit', 10); fetch(`https://api.sibr.dev/eventually/v2/events?${params.toString()}`) .then(res => res.json()) .then(js => console.log(js));
Signed
Judge c|||||| ||||, Judge ||||e, Judge ||||||||||||| ||||||||||||||, Judge |||||||||, Judge |||||| ||||||, Judge |||||| r||||||, Judge |||||||||||, Assoc. Judge ||||||, Assoc. Judge |||||, Assoc. Judge |||||