Created By: Marcello Di Benedetto, Abraham Beauferris, Christopher Rodriguez
This project revolves around creating a novel replacement to the “slide to unlock” style lock screens common to modern smartphones that still resists accidental activation. This specific replacement does not stray far from the traditional design as it still has an emphasis on touch or multi-touch based interaction. Though, as a requirement of the design process, the replacement lock screen should have a side benefit to the user in terms of self-betterment or the encouragement of healthy habits. The 10+10 design method was put to use for this project to narrow in on a final design with useful and intuitive features.
The final design chosen by our group is one of an educational nature, where a user is prompted to put their foreign language skills to the test in order to unlock their phone. The foregin language in this case is Japanese, as it aligns with one of our group members personal aspirations to learn and practice the language. The resulting design tests the user’s knowledge of Hiragana and Katakana, the core Japanese writing systems, with a configurable interface.
As this touch-based project was developed in parallel with a sensor-based project, the following concept sketches include only the touch-based sketches from the concepts.
From the initial concept sketches, we ended up going the route of the educational approach of the “Foreign language alphabet test”. This concept had the most direct benefit to the user and was novel enough to not rely on a sequence of actions required by traditional lock screens. A drawback to this design is that for it to be educational and randomly generated, the design would not have a clear authentication aspect. Anyone familiar with the language would be able to unlock the phone. Though this could be rectified in the variations, or would not be necessary if this system is used in conjunction with face id for authentication. Our group believed the clear educational benefit of this design is novel enough to overcome some authentication drawbacks.
The following are some details and variations of our chosen concept, the “Foreign language alphabet test” lock screen.
Our final design incorporates the “skip button”, “recall based prompt” and “language selection” details. The “recall based prompt” incorporates a degree of inconvenience to the user where if their input is incorrect, they must wait through a short delay. The “skip” button gives the user an avenue to alleviate this inconvenience, so they can try for a character they know in instances where quick access is needed, but without letting the user circumvent the lock screen entirely. The “language selection” was also incorporated for the major Japanese language systems, Hiragana and Katakana, so the user can specify which one they want to practice. In the design of the final application, it also became necessary to give the user a way to eliminate any mistakes in their drawing, so an “erase” button was also implemented.
With further development, the incorporation of the character tracing detail would fit the use case very well. With this detail, it would not be required for the user to research characters they get incorrect, but it would allow the phone to give instant constructive feedback to the user and show them how to improve.
The overall implementation and design of the codebase were my responsibilities on this project. The resulting implementation leverages HTML, CSS and Javascript due to the ease in deployment and portability. As the core functionality of this project relies on determining the validity of a user's handwriting when compared against unicode characters, an OCR (Optical character recognition) library was utilized. After looking through many OCR libraries, very few were optimized for human handwriting. For this reason, handwriting.js was included to leverage Google's handwriting recognition API endpoint. This library also handles converting html canvas data to a format expected by Google's API. The API then returns the written japanese character in unicode with a surprisingly high accuracy in our limited test cases. After this hurdle was overcome, the rest of the implementation was straight CSS and jQuery animations for user feedback and program flow.
Site Link: https://marcellod1.github.io/ocr-lockscreen
Source Code: https://github.com/Marcellod1/ocr-lockscreen