The first real step in this project was not about design, layout, or animations. It was about logic. I wanted the application to feel alive, not random. The goal was to simulate 10 years of a user’s life in a way that reflects how small daily decisions compound over time.
I started by designing a function called simulateTenYears(). Instead of generating isolated yearly results, the system carries state forward. Each year builds on the previous one. Wealth increases based on income, investment behavior, and risk tolerance. Health reacts to sleep hours and gym consistency. Mental state shifts depending on balance between effort and pressure. Career growth is influenced by study hours and long-term discipline.
One of the biggest challenges was balancing the equations. If the impact of one factor was too strong, it would break the realism of the simulation. If too weak, the results would feel meaningless. The logic had to reward consistency while still allowing risk to produce both gains and setbacks.
Another important decision was making the engine deterministic but flexible. The structure allows easy tuning of weight values and conditions without rewriting the full system. This makes the simulation scalable and adjustable for future features.
By the end of this phase, the application had a working life progression engine capable of generating a 10-year timeline based entirely on user input. No UI improvements yet — just pure logic and structured thinking.
This was the foundation everything else would be built on.