Ario Barin Ostovary

This is a collection of some projects I've worked on over the years. Not a complete list, just the ones worth sharing.

First Spreadsheet

I'm not sure how I first got introduced to spreadsheets, but that's where I started. My first one was for grade 7 math. We were calculating volumes, surface areas, and such of cylinders, so I made a spreadsheet for that. Then linear conversions, and so on. I showed my math teacher, and although he was impressed, he said don't use it. I didn't listen.

View Spreadsheet

CS:GO Wingman Tracker

Next I thought, "Hmm, I don't need to exclusively apply this to school. I can do it for video games." So I made a CS:GO wingman tracker. I'd input data and get some statistics out of it. It was pretty nice, and I started developing a sense for styling, moving past the ridiculous black, cyan, and white.

Wingman Tracker Screenshot
View Spreadsheet

Valorant Ranked Tracker

I made a Valorant rank tracker too. Same idea, input data, get statistics.

Valorant Tracker Screenshot
View Spreadsheet

EventSheet

Looking back, I definitely should have started moving off of spreadsheets at this point, but it's really easy to stick with what you know. I've since learned to push past that. Anyway, continuing on the theme of video games, I used to play Hypixel Skyblock a lot and was interested in becoming very rich in it. There were several money-making methods (some were grinding, but the ones I was interested in were trading). So I made a spreadsheet for it. The first versions were usable but very hard-coded.

Old Eventsheet Old Eventsheet 2

I used them, made lots of money, and actually sold some versions. Then some people said, "Hey, you should redo this but make it better, and I would pay actual money for it." See, I was just selling it for in-game coins. Okay, I'll do that. I made versions 1.1, 1.2, 1.3, 1.4, and finally 1.5, my magnum opus. That's what I have linked. It was a comprehensive spreadsheet that had almost all the well-known money-making methods, plus some obscure ones I'd discovered myself. It was a good time. Lots of in-game coins were made, and on version 1.5, some real money too. But it's a spreadsheet. You're not making thousands. It was just a couple hundred.

Modern Main Page Modern Main Page 2 Modern Main Page 3

Funny story though! It's really hard to make a spreadsheet into a webapp. The user needs to input data, and there's no easy way to do that without giving them access to ruin the whole thing. My workaround was to have two linked spreadsheets that share data. One of them imports data from another where the user has edit access, and the other one (which the user looks at for information) they only have view access. It was a good workaround. You could easily swap out the input sheet, and the datasheet was not editable.

Modern Input Page Modern Input Page 2 Modern Input Page 3

Also, you may be wondering how you're getting live data from this game using a spreadsheet? Well, let me tell you, this spreadsheet had a backend. Yep, that's right. I had a Python script running on my computer 24/7, updating a master sheet. It would write to the cells, and all spreadsheets of this project would import data from that other master spreadsheet and filter and do whatever with it based on the user's inputs. What a time.

Modern Main Page 4 Modern Main Page 5 Modern Main Page 6 Modern Main Page 7
Main Sheet Input Sheet Patreon

Fourier Analysis / Trading

I then came across Skyblock.finance, and I didn't realize how seriously people were taking this game. They were spending money on spreadsheets, but using TradingView on a video game? That's intense. Anyway, turns out you can download their data, although they don't have an official API. You can go under the network tab, inspect element, and figure out how to send an API request so that they give you all their data. So I did that.

Now powered with this data, I started doing some analysis. Around that time, I watched a 3Blue1Brown video on Fourier transform and signal processing. It was fascinating. I thought, "You know what else I could apply this to besides pressure over time? Price over time." So I tried it with the most popular item, the Booster Cookie. Here's what I saw.

Fourier Transform Daily Cycle

That bad boy had a strong sine wave with a frequency of 1 day, so I graphed a scatter plot of time modulo 4, 2 then 1 day, and this is what I saw.

Mod 4 Days Mod 2 Days Mod 1 Day

I started learning about finance, trading, quantitative analysis, and different types of graphs. This was the easiest way to make coins in this game. I couldn't believe no one was arbitraging this. There's more demand during certain hours, sure, but no one was balancing it out by trading? The price would just swing through predictable cycles. I felt like I was the only one actually placing counter-orders, and I was making a killing. It was incredible!

Volatility by Hour Probability Bands Cloudlike

You could hop on for 10 minutes a day, trade some stuff, hop off... but only for so long. Eventually I got tired of the game.

Purple Candy Analysis Summoning Eye Spread

Switch Up

My school had a hackathon, MasseyHacks. I'd never been to one before, and I had very little experience making games, but my friend did. So we made a game. It's called Switch Up, and we won Best Game. It was a small hackathon, high school, local (about 100 hackers), so it wasn't that competitive, but we made a cool project with a cool idea.

Devpost

Paint Project

That was in 10th grade. Then in 11th, I took CS. I actually tried in 10th grade to take CS, but all my friends got it and I ended up with Media Arts. I actually really enjoyed that class though, so I'm not upset about it. For my grade 11 midterm project, I made a paint app, SpongeBob-themed for some reason, but I implemented a ton of features. Learned about flood fill for filling pixels. Very exciting. Used binary search to size text. I was doing LeetCode on the side, if you couldn't tell.

GitHub

ArcadeFSE / The Reticle

For the final, I made an arcade with three games, my favorite being chess. I implemented all the rules and game logic, then made a chess engine you could play against. It was written in Python, so expectations were low, but it was getting hundreds of thousands of positions searched per second and playing decently well. It beat me, but my friends who actually played chess, it didn't fare well against them. Still, it was a good experience. I learned about recursive search functions, minimax, heuristics, iterative deepening, and alpha-beta pruning. Cool stuff about adversarial search trees.

I used the same core logic for Connect 4. Since Connect 4 is a much easier game, the bot destroyed pretty much everybody. It hadn't fully solved it. If you played against an actual perfect Connect 4 solver, my bot would still lose, but it was pretty good.

Last one, Pac-Man. I didn't really have any care for Pac-Man, but one of my friends had done Pac-Man, and I just wanted to one-up him, so I made that in a couple days and just added it to the thing. And that was my FSE.

GitHub

2AK-Bot

MasseyHacks was being hosted again, so my friends and I went and this time we brought home Best Overall. We made a Mars Rover with a gripper and arm that moves around and cameras on it.

2AK Bot Working

It was more of a project that you would do over the course of a month or several, but we got it done in a day. It was my first time not sleeping very much. No cheating though, we followed the rules. We had far more preparation than any other team, and they changed the rules of the hackathon because of it. You know you did well when they have to change the rules because of what you did. ;)

Team Team 2 Full Team Judging
Devpost GitHub

Pollinator

And then that summer, grade 11 summer, I was a research assistant at the University of Windsor. They call themselves AI Robotics Centre (it was in the Mechatronics Lab). The prof that was overseeing me basically just said, "Hey, we have this robotic arm and we have this Intel camera which has three cameras: two IR and one RGB, so it can detect depth. Combine these two and make it act like it's pollinating these flowers."

Pollinator in Action Pollinator Close-up

I did it, learned a lot, trained YOLO and RCNN models, tested them, compared them, did some vector math transformations since the camera could be facing a different direction and needed coordinate conversion. It was a great experience, and the project finished successfully. Here's a press release, GitHub, and some images.

Flowers on Board
GitHub Press Release

BatchConcatinator

And this is about the time where AI and stuff was getting pretty popular, and in coding, I really wanted to be able to quickly copy and paste a couple of files, but I kept having to switch between them (Ctrl+C, paste into a Notepad, switch file, Ctrl+C, paste into Notepad). So, I made a Batch Concatenator, which is a VS Code extension that automates all that for you.

GitHub

Frogger

I took CS in grade 12 as well, and for the midterm, I made the retro game Frogger (pretty popular game) and I tried to stick to the original as closely as possible. I think I did pretty well.

GitHub

My-Farm

Then we did, my friends and I, NASA Space Apps 2024. We were doing the agriculture topic and we made My Farm, which I wouldn't say farmers would actually use it but it was a cool idea. Farmers could make issue markers and talk to each other about issues they had locally. There was also ChatGPT they could talk to as well. Very cool stuff. Also, there was like a car which could dispense seeds or something. There was a lot of stuff.

GitHub Demo Video Challenge Page

Particle Drift

For my grade 12 final, feeling ambitious, I thought: "There's a group project. I have a friend who knows hardware. What if we make a Roomba from scratch, and all the algorithms from scratch too?" He said, "Alright," and we made a SLAM algorithm. I learned a lot about microcontrollers, networking, and C++ hardware programming. Learned about occupancy grids and log odds. Using logarithms to represent probability is pretty clever.

We made a simulation to test it out, then tried it on hardware as well. Unfortunately, no videos of its actual mapping, but trust me, it works. It's disassembled now, so I can't exactly prove it.

GitHub

Bomb Party Helper

Then my friends and I started playing Bomb Party! It's a game where you're given a sequence of letters and have to write a word that contains that sequence of letters. You know, if a computer has a dictionary and it knows those sequence of letters, it could do pretty well! So I made a helper for Bomb Party! And I posted it on GreasyFork, and it has like 500+ downloads. Pretty cool! I never expected that to be popular!

GitHub GreasyFork

Project Reality

Then we did MasseyHacks again! Best Overall again! This project was zero preparation. We just brought in a couple cameras and 3D printed some mounts. We had a projector but figured everything out on the day, and this is the coolest project I've ever made. Technically, we remade a version of it at Hack the North, but this one felt cooler. It was virtual reality projected into real space. You throw real balls at a projected game, and the cameras track them with stereoscopic vision. Just watch the video, you'll love it.

Devpost GitHub

Jarvis Lite

Riding high from that project, I thought: let's try it again but more general for Hack the North. Except don't repeat projects. It's not a good thing to do. We lost motivation. This time we were much more rigorous: smart calibration, precise smoothing, Windows clicking integration, gesture recognition. But when you repeat a project, you don't feel the same passion. It wasn't the same project technically, but it felt like it. We didn't win, but it was a fun time, and hackathons are always great.

Hardware Setup Team
Devpost GitHub

Eventy

Then I went to the University of Waterloo for Software Engineering. There are a lot of events at Waterloo, and it's hard to keep track of them, so I started using Google Calendar. But it's so annoying to add events manually, so I made a Chrome extension called Eventy. Check it out. It automates all of that.

Eventy Loading Eventy Scanned View
Chrome Web Store

eValuator

The latest project I'd consider semi-complete is eValuator. I collected a bunch of data on the Skyblock Auction House over one month, specifically looking at a certain category of items. I built a random forest model that predicts the probability that an item with given specifications will sell at a specified price, and eValuator uses this model to find arbitrage opportunities on current listings. Very easy way to make coins in Skyblock! But I don't play anymore. I'm just interested in machine learning.

MLP Regression Model Current eValuator
Site

TalkingML

Most recently, I'm working on a blog with a friend called TalkingML. I hope to learn a lot about ML and write blog posts about what I've learned, to teach others or at least provide a reference. That's where I am now.

Website GitHub