Inspiration

Brainstorming and asking non-techies for their tech-problems showed us they don't have enough; so we decided to make something that would give them a challenge.

We wanted to make something that would actively keep a user engaged, and re-invent how they see computer software.

What it does

Demanding Duck is a Personal Assitant - you can chat to it, ask it to help you with tasks, and get it to open programs for you. However, It has it's own adaptive mood that affects how it responds to you. You have to keep it enetertained and happy by altering your responses to get it to help.

You can also unlock looks for your duck, and it will display these depending on how it feels and the action it is performing.

These features make our PA much more engaging and fun than more bland-blanket main-stream systems.

How we built it

After some research, we drew up some features and split into backend and frontend.

We then started implementing the simplest possible solutions to get a working prototype - namely hardcoding conversation and commands, then bringing our work together for an initial prototype, and to explore the best way to work together.

We then analysed our solution, and decided the next features and repeated the process to implement them.

Our final prototype settled on using a simple Nearest Neighbour AI to classify responses from user input, and built a GUI framework for displaying our application and duck PA avatar.

Challenges we ran into

Initially we wanted to include speech recognition to build on the comparison to more professional technologies like Siri and Alexa, as well as to provide an easier user interface; but after many hours investigating libraries and implementations we decided it was beyond our abilities given the time available.

This did however give us the chance to focus on building everything from scratch, to demonstarte just how easy these personalised AI's could be implemented to improve user experience.

Because of this, a large challenge of this project was figuring out how to decide responses to user input. We tried many different approaches, including hard coding Hash Maps with related words, and more complex AI techniques such as machine learning.

Accomplishments that we're proud of

We are very proud of the GUI. This was our first attempt structuring a proper GUI and the amount of features we managed to cram in was hard work but paid off.

What we learned

We learned the importance of keeping code clean as you go - be it keeping consistency in identifiers, or commenting methods, we could have saved a lot of time with just a bit more planning.

We learned a lot for our next Hackathon/larger projects in terms of communication and organisation. We would definitely try to keep a more formal structure for developiung code, like using an agile devleopment process to keep us on track.

What's next for Demanding Duck

Demanding Duck is a proof of concept that AI doesn't need to be a stuffy-blanket solution. They can be fun and personalised. This implementation doesn't take itself too seriously, but it does show how software can be fun for users, and ultimately it will keep them using it to get the benefits from it.

Built With

Share this project:

Updates