This isn’t Handwritten

This isn’t Handwritten

Our University decided to conduct OBEs (Open Book Examination) during the pandemic, remotely. It was like normal exams, get the question paper, write answers and get marks but the good thing was, it wasn’t proctored at all. You had 3+1 hours to finish the exam and upload the answers, and that’s it (they didn’t care how you did it). Now for a lot of people, this would sound easy-peasy but for us lazy engineers who hadn’t handwritten anything for almost a year (due to the pandemic), it was a nightmare. We got through the exams though and during the last exam we thought that this process should be automated, we should be able to type out our handwriting. Eureka!

This lead to a discussion between a couple of my friends and we thought of building an open source and better Calligraphr. A tool which will convert your handwriting into a font.

So the way Handwrite works is:

  1. You print the form that we made.

  2. Fill out your sample like below.

Filled Form

Filled Form

  1. Give it to the CLI python package and Voila, you got a font!
Generated Font in Action

Generated Font in Action

This was basically it, but building it was tough. Really tough. Me and Saksham brainstormed for hours, figured out Potrace and Fontforge libraries (not easy to deal with at all). Researched effective ways to extract out letters, deal with a lot edge cases. But ultimately, we did it, and published it to PyPi.

Not going to explain much since we have documented it quite well, but below images gives a good understanding on what happens to a sample form:

Extracting Letters

Extracting Letters

Conversion from PNG -> BMP -> SVG -> TTF

Conversion from PNG -> BMP -> SVG -> TTF

I learnt so much building handwrite, few key points:

  • Anything you can imagine building in tech, is possible 99% of the times.
  • Testing is very important, writing unit tests for Handwrite was really helpful in the later stages when we had to do major refactors.
  • You can’t always do everything, collaboration is key.
  • Solving problems around you make 10x better projects than regular UI clones. I discuss about Handwrite in every project based interview and interviewers always take so much interest!
  • Handwrite made me so much better at CI/CD, Test Driven Development, Python Programming and Computer Vision .

If you are wondering if it ever worked out for an actual use case? I submitted one assignment using Handwrite and didn’t get caught (I doubt whether the teacher even checked), after that didn’t have to write yet.


Links