LeafyTime

Preface

LeafyTime started as an experiment: Could productivity become more enjoyable by growing something beautiful alongside your focus and effort? From that simple question, LeafyTime has evolved into a tool that marries work tracking with interactive visualization. The project began as a minimum viable product (MVP), and has since expanded in both features and scope, addressing key aspects of study tracking and user motivation. This article documents my journey with LeafyTime, from its initial concept to the many features it offers today.

Project Overview

Objective:

To create an application that promotes focus and productivity through the growth of virtual plants. Users grow a 3D garden by successfully completing study sessions, gaining visual rewards that reflect their commitment and focus.

Key Features:

The Core Idea

The core idea behind LeafyTime is simple yet powerful: growing a virtual garden as a visual metaphor for productivity. The more a user stays focused, the more their plants flourish. Conversely, missed study sessions or distracted time results in withering plants. This approach aims to gamify productivity in a way that doesn't feel punishing but, instead, feels rewarding and motivational. Many other applications take advantage of this concept, but mine differs in that the 3D environment you create is interactive in first-person.

The application initially relied on a trust-based system where users would self-report their focus level. As the project grew, I wanted to go beyond self-reporting to provide some measure of accountability and insight into how focused the user really was during each study session.

Key Features

Virtual Garden and Real-Time Feedback

At its MVP, LeafyTime focused on simplicity—just a few plants, a few study options, and a direct connection between study time and plant growth. Since then, I have added a number of new plants to the virtual garden, each representing a different aspect of productivity, from short bursts of focus (like growing grass) to longer commitments (like a sturdy tree).

I hope to improve the virtual garden by adding features like sound effects and animations that enhance user engagement, with distinct feedback during the various growth phases of each plant.

Distraction Tracking with WindowTracker

One of the major post-MVP additions is the integration of a "WindowTracker" system using GDExtensions. The WindowTracker allows LeafyTime to monitor the names of open windows during study sessions. This feature can operate in either a blacklist or whitelist mode, depending on user preference. The blacklist might include known distractions like social media apps, while the whitelist only allows specified productive tools (and necessary apps) to be used. Importantly, all data collection is ephemeral—only used visually to decide if a plant should flourish or fail, and nothing is logged.

Pomodoro Study Mode

Based on user feedback and my own productivity experiences, I have started implementing an alternate study logic that follows Pomodoro practices. This feature offers users structured study and break times, aiming to encourage sustainable productivity patterns. Currently, it allows users to decide when to take a break, but limits the total allotted break time, helping balance work and rest.

Technical Challenged (and Solutions)

Adding WindowTracker with GDExtensions

Incorporating the WindowTracker feature was a significant technical challenge. Using GDExtensions allowed me to leverage C++ and low-level system calls to determine which applications are active during a user's study time—something not natively available in Godot. Compiling these GDExtensions via SCons, especially across different platforms, required quite a bit of trial and error, but ultimately proved successful. This addition is essential in moving beyond a trust-based model to provide more objective feedback to users.

Balancing Rewards and Penalties

One challenge that emerged in development was balancing the rewards for staying on task versus penalties for losing focus. I wanted LeafyTime to remain positive and encouraging rather than punitive. My approach has been to make plant growth visually delightful and vibrant, while "failure" scenarios are more subdued. 

Results and Future Developments

LeafyTime has come a long way since the MVP stage. The addition of new plants, distraction tracking, animations, and sound effects has made it a much more engaging and complete tool. The Pomodoro mode—while still under active development—is shaping up to be a significant addition for those who benefit from structured focus sessions.

Future plans include:

Conclusion

LeafyTime began as a simple idea—to make productivity more visually rewarding—and has grown into a comprehensive tool for focus and motivation. By turning study time into garden growth, LeafyTime provides a tangible representation of productivity that feels encouraging rather than burdensome. With recent additions like WindowTracker and a Pomodoro study mode, it has evolved well beyond its MVP, offering users new ways to engage with their own focus and growth.

Check out the GitHub page for more details, and feel free to try it out yourself. Your feedback is invaluable as I continue to develop and refine this project.