We were inspired to create Overfit by the fact that real outbreak responses around the world are rarely straightforward.

Actions taken to control a disease can often create new side effects, especially as pathogens adapt and evolve. We wanted to model that sequence in a simple system that still captures the real trade-offs in medical decision-making. We were also interested in how replication creates successive generations of threats that inherit traits while developing new behaviors over time.

What is Overfit?

The Overfit system simulates an evolving pathogen outbreak where users are able to manage spread, resistance, and stability. Every action shifts these values, sometimes helping immediately while creating future complications that must be taken into account in later choices. As the system continues to adapt to repeated strategies, users are forced to adjust their decisions and think ahead.

At its core, the outbreak behaves through repeated duplication, where each new generation emerges and adapts from the last while becoming increasingly specialized and difficult to contain.

How Did We Do It?

We built a React interface that was connected to a real-time state engine that updates system variables continuously. Core rules define how spread, resistance, and stability interact with one another, and user actions are what modify these relationships. We were also able to add an adaptive loop where repeated strategies increase resistance, making the pathogen system evolve.

This adaptive loop reflects how copied generations respond to pressure and gradually become stronger or more resilient than earlier versions.

Challenges?

The main challenge was balancing the simulation. Our first iterations were either too stable or too chaotic. We tinkered with interaction rules through multiple versions, especially around resistance growth and containment effects, until the system was able to behave consistently while still being dynamic. Another challenge we faced was simplifying complex behavior into a clear, coherent interface without losing any of our important details.

A separate challenge was making the replication system feel meaningful without overwhelming the player with unnecessary complexity.

Things We're Pleased About

I think we are most pleased with having built an independent system where behavior emerges from interactions rather than preset, fixed outcomes. The simulation reacts seamlessly to user input, and its ability to evolve and adapt ensures that no single strategy is able to work indefinitely. We also designed a clean interface that is able to make these evolving dynamics easy to understand in real time.

We are especially proud that the system naturally demonstrates how successive copies can become more dangerous when left unchecked.

What We Learned

Over the course of this project, we realized how impactful small rule changes can be to such a sensitive system. Minimal adjustments to specific interactions greatly shifted overall outcomes when distributed effectively. We also learned how to design complex systems that are still manageable even as internal behavior becomes more dynamic.

We additionally learned that replicated systems do not remain identical forever—small variations between generations can create major long-term consequences.

What's Next for OverFit?

Our next goal is expanding the model with more variables, as well as richer, more adaptive behaior. We also plan to fine-tune the entire system, possibly using real-world data for more accurate results. When it comes to the interface, we hope to give deeper insight into this system's dynamics and explore the implementation of similar ones in other adaptive systems.

We would also like to expand the duplication concept further by introducing branching strains, competing generations, and multiple simultaneous variants that users must manage in real time.

Created by Josh Jesuraj and Jon Jesuraj

Built With

Share this project:

Updates