We were inspired by the funny but useless DesktopGoose application. DesktopGoose places a duck on the screen which preforms random actions, pulling open notes, memes, moving the cursor etc. We also set out to solve a common problem: Getting distracted while coding.

What it does

Octofocus creates an octocat in the bottom right corner of the users screen. Whenever the octocat detects the user is not staying on task, it gets angry, steals the cursor, and moves it to the minimize button on the current window.

How we built it

Octofocus was written in C# as a mod for DesktopGoose.

We defined a set of applications/websites to be productive and another set to be unproductive. From there, we compared the title of the active window to the sets. If the title is productive, then the octocat becomes happy. If the title is unproductive and the user stays on the application for more than 15 seconds, the AI controlling the octocat switches to angry which follows the cursor, grabs it and places it on the minimize button.

Challenges we ran into

It took us a while to understand the API because it had almost no documentation. One of our members also didn't know any C#. Another issue surrounded the rotation of Octocat. Whenever we tried to rotate the bitmap, an orange halo would form around the sprite. After a couple hours of debugging, we decided to move on and finish the project.

Accomplishments that we're proud of

We are proud of how we were able to figure out the api despite it not being very clear. We also are proud of our idea as it is a fairly unique take to keeping users on task.

What we learned

We learned a lot about C# and understanding how to use an API without documentation.

What's next for OctoFocus

In the future, OctoFocus could be expanded to include more animations and empotions. Rewarding users for being on task, giving words of encouragement, etc. It would be funny if the octocat would drag windows around the more a user stays off task. Finnaly, implementing a config file for identifing which applications are productive/unproductive.

Built With

  • c#
  • desktopgoose
Share this project: