Distributed Game Server
This project aims to create a distributed game server. Current network games are centralized, where players send control messages to a central server and this server relays all relevant state updates to all other active players. This design suffers from latency and scalability issues, and the infrastructure provided by game manufacturers may not be well provisioned or long-lived. For this project, we are implementing the Raft protocol, a consensus algorithm, in Rust.
MathSearch is a next generation search engine for researchers that supports searching with LaTeX math script. If you ever had trouble trying to find certain equations in LaTeX from just Google, this search engine allows you to easily find them.
FiggieBot aims to create an reinforcement learning (RL) based both that can play Figgie, a card game invented by Jane Street to simulate markets and trading. We train an RL agent to play this game using Recursive Belief-based Learning (ReBeL), an algorithm used to tackle games with imperfect information. This project also involves creating an engine to simulate Figgie and an environment for the agent to interact with.
Rubik's Cube Bot
Rubik's Cube Robot is a physical bot that can solve a Rubik's cube using reinforcement learning (RL) algorithms. Along with training an RL-agent, we create a vision system to map the Rubik's cube, as well as develop a working robotic system for manipulating the cube.
The CDS Infrastructure project seeks to develop a template for providing environmental setups that are crucial to most projects. Many current and past projects require environments and frameworks that can take weeks or even months to configure. We create a platform for merging these aspects to avoid repetition of work that can delay the progression of projects.
Bias in Machine Learning
Algorithmic bias is still a major concern as machine learning systems become more widespread. Unless careful care is taken with these ML systems, they can have significant harmful impacts on underrepresented groups and lead to ineffective products. Our more technical objective is to explore these biases within a variety of models, and attempt to mitigate them. Beyond the technical material, we hope to educate our local community as much as possible to be knowledgeable and informed when discussing these problems along with potential solutions.
For this project, we create a strategy to trade stocks and achieve an optimal portfolio. To do this, we choose a certain number of stocks and use their daily returns, putting certain constraints to create a portfolio. We hope to later incorporate other assets for this strategy in real time.
The Pricing Options project seeks to quantify the intrinsic and time values of options. We seek to understand three main methods to pricing options, using transform methods, finite difference methods, and Monte Carlo.
Sports Arbitrage Betting
When bookmakers have different opinions on the outcomes of events and are slow to react, an individual can mitigatae personal risk and (theoretically) make profit regardless of the outcome. This projects hopes to find situations with significant arbitrage and place bets on both outcomes in the right circumstances.
Check out other past projects on our GitHub page.