The Imitation Game: EquiBot — A3

Roshni Samuel
Design with code
Published in
6 min readAug 19, 2018

Roshni Rebecca Samuel and Agam Singh

Abstract

We started out this exploration to expand our knowledge on what coding really is. Code, like any other form of communication, is a language. It has a syntax and logic. It’s how a programmer communicates with a computer. Code is a language which is empowering and it is essential for designers to learnt it, especially in this century. Programming as a design tool for prototyping was an eye opening look into code. Creating even the simplest string for the first time was so rewarding. The feeling of accomplishing something that is out of your comfort zone is unmatched by anything else. In this class we learnt how to use Python to code. As well as using atom to script and edit our code. We learnt about strings, variables, For Loops and so much more. We started out by using terminal and got an inside look into the built in features that already exist in Mac. Mac and linux have similar formats and are much easier and more efficient than Windows when it comes to coding. For this course we primarily focused on Artificial Intelligence and tried to create our own chatbots using a simple set of statements. We watched clips from a couple of Sci-fi movies for inspiration.

Introduction

For our First week we watched the documentary on the creation of Sketchpad by Ivan Sutherland which was very interesting. It was a contribution towards the present day state of computer graphics. Another interesting piece of history was the first chatbot ELIZA. The way that the present day Siri interacts with humans is still not as far off from using ELIZA. There is a certain chain of words that are used in daily conversations that the Chatbot has no trouble answering but usually if the question requires the chatbot to give its opinion, then the conversation hits a dead end, which is to be expected. Whereas direct questions are easier to process into the Chatbot’s algorithm.

The language of binary is an integral part of coding. This is language machines understand. The idea of binary logic was beautifully illustrated in class by the parable of the King and the poisoned wine.

For our second week we were each asked to present our projects to the M.Des students and explain to them the concept of our apps. The premise of our project was to make an app that addresses a problem but doesn’t necessarily have to solve the problem. We started learning some of the basics of Python and atom. We learnt a couple of ‘if’ statements as well as ‘else’ statements. We learnt how to make a string, which is a sequence of characters wrapped in quotation marks. Strings are used very frequently in coding. To make a string you need a quotation mark. You can make a string with your name or a number of greetings and a string is used in a code to store your name all around the world.

Initial experiment

For our project Agam and I decided to create an app for Srishti students to help track down equipment and we call the app “EquiBot”. Since Srishti has multiple campuses, the idea of running around and trying to find the required equipment starts to become a wild goose chase. We tried to make the experience simpler and easier. The application tracks the specific equipment in real time. We started the process of developing it further and applying some amount of basic code to the prototype. The objective was not to focus on the aesthetics but to get the overall coding right so as to create a functioning prototype. Our first week was hard as we had problems with our groups and had to come up with our concept, create a video and make some sort of prototype to get an idea of what the app is meant to do. We started by using Marvel to create a presentation of the general flow of the app. Our initial advertisement for the app went like this:

Srishti offers multiple types of equipment to their students and the idea here is to make that experience simpler and easier to understand. The application is a means to make the process of tracking the said equipment in real time.

Introducing Equibot! Equibot is a chat bot that helps to track down film equipment using geo tracking technology. Using our Friendly chat bot. You can ask if any specific piece of equipment is available in said location. You can ask which campus the equipment is available in as well.

Feedback

Some of the feed back we were given included implementing the barcode and RFID into the app itself.

  • Would the app be able to precisely detect the location of the specific equipment?
  • How does the chatbot become applicable to finding the equipment?
  • How will the app be able to keep up with the location of the equipment?
  • One suggestion was to add images of the list of equipment displayed as an inventory.
  • For the python code version a user suggested that we assign numbers to items next to name’s of the items so that the user doesn’t have to type the name.
  • Another user had said that in case the keyword is ‘Mic Pop Filter’ and the user types in ‘Mic drop filer’ it should be able to identify it and give a suggestion of ‘did you mean Mic pop filter?’.
  • The other suggestion that a user gave was to make sure the program was not case sensitive.

We decided to create a list of the devices and display it on the screen. All of these suggestions have good points including the implementation of the updated whereabouts of the equipment in real time but then again it would need additional software to be executed. I was able to make sure our program was not case sensitive and the use of numbers instead of names didn’t seem very appealing to me because when a person searches for a device they wouldn’t associate the number of the device with the equipment they would enter the name of the equipment. The next step is to implement error tolerance so that even if the user were to misspell the word the program would still be able to get a sense of what they really meant. The present version of the program (A3) has implemented this.

Developing prototype

As of now we have managed to meet some of the criticism. Some of the feedback from the user and the facilitators were used to improve the program. From the user side I was able to make the program no longer case sensitive with the function [response=response.upper()] and I typed all of the strings in uppercase so that the response is automatically converted to uppercase for the program to be able to read it. From the facilitator’s side one of the important things was to add more comments to the program so that it can be a step by step walk through of the program. Another suggestion from the facilitator was to add smarter variable names such as instead of ‘i’ label it ‘item’ that could be more suggestive and easier to understand. I was able to implement error tolerance by using the sequence matcher the program was able to recognise similar strings and ask ‘Did you mean this…?’. At the moment I was able to figure out a way to convert text to speech using the ‘say’ command inbuilt into Mac. By typing in ‘from os import system’ that immediately imports the text to speech feature that exists on Mac. The sequence ‘system(‘say ……’)’ and print(“…..”) this will dictate as well as simultaneously print out what you would want it to say. I am in process of adding adaptive speech recognition

Summary

In conclusion we started with the idea of developing an app that would help Srishti students find equipment on campus the Python program was developed iteratively by taking in feedback from users and the facilitator. The final program is user friendly and fault tolerant. Doubtless it could be improved in various directions but for a first effort we have a working program. The main learning from this project was an introduction and rapid learning curve in the Python programming language.

Thank you for using EquiBot!

--

--