Close
0%
0%

Homework Machine

A machine that writes stuff for you- in your own handwriting- so you don't have to!

Similar projects worth following
The aim of this project is to create a machine to write stuff for us- In our own handwriting- so we don't have to! When the project is complete, you should be able to upload a question to an app for generating the answers with ChatGPT and Wolfram alpha. A timeslot can be booked for your homework to be written by the machine using the same app. It will write the content in your own handwriting and turn pages of the book automatically until it's done writing.

This is not just any other pen plotter, it has the software and hardware to efficiently and effectively do your homework without getting caught by the teacher. More on that in the details section. I plan to open source this project for students to learn how to create their dream homework machine and develop their skills making one. Hopefully, this will help force the education system to move from rote memorization to a more skill development based learning system.

Working video:

Comparison with my handwriting:

Can you identify which ones were written by the machine? (It's close but not perfect yet)

So lemme explain...

The problem:

Rote memorization is not a path to understanding. Yet still, it is the bread and butter of the education system in many countries- mostly in Asia. Copy pasting 100 pages of lab records from a pdf by hand, writing the same problem 20 times, solving repetitive problems like a robot, etc won’t help us understand and apply the content. It is important to note that this is a problem with the system. I wouldn't blame teachers for teaching us the way they are taught to teach.

Here's a video that discusses the problem. (The point really starts at 2:00)

Here's another one:

It's hard for us to change the system, but we engineers can create solutions.

Existing solution: 

I was fed up with copy pasting assignments and 100 pages of lab record from a pdf by hand. I decided to make a pen holder tool for my ToolChanger 3D Printer to write the lab record for me. Here's what I did

  1. Measured the dimensions of my lab record book and created a template 
  2. Opened the template in Inkscape and copy pasted the content to be written
  3.  Converted the text to Hershey's text using the KM Laser plugin.
  4. Adjusted the text to align with the page template
  5. Converted the text to Gcode using the 4XiDraw plugin
  6. Align and clamp down the book to the machine
  7. Sent the Gcode to the printer to print.
  8. Repeat from step 2 for all the pages

Homework machine is not a new idea. It has been attempted before. This attempt where they taped a pen to their 3D printer and did a similar thing got 14M views and 250K likes on Twitter. ('Homework machine' is an extremely popular idea!) Almost all of the attempts on the internet uses the same workflow (Except this one that costs 200$ per font?) . Here are the problems with this workflow:

Problem with the existing solution: 

  • Easy to get caught: My teacher ended up catching me as the font was too perfect to be written by a human. All letters are the same and it does not look similar to my handwriting. 
  • The stroke path is not the same as written by a human.
  • The Gcode generation workflow is cumbersome. The whole process to generate the Gcode takes around 1 minute per page. The Gcode generation plugin alone takes over 20 seconds to process. 
  • Having to manually turn pages, clamp the book and run the next gcode is too too much work to be worthwhile.
  • Most pen plotter use a hobby servo to lift the pen. They are slow and are not meant for continuous operation. Hobby servos die very often in a pen plotter.
  • Writing fast will make the machine vibrate and the vibration will be visible in the print.

(Image showing a page written by my ToolChanger using Gcode generated using Inkscape and a single line font that came with one of the plugins. This got caught by the teacher)  


The Solution:

After the lab teacher caught me and asked me to rewrite the 100 pages by hand, I decided to double down. Starting from software, I set out to create a machine to efficiently and effectively do your homework without getting caught by the teacher. Here's how:

Record your handwriting

The software needs to know your handwriting to write in your handwriting. Your handwriting stroke is recorded and saved in a format suitable for the Gcode generation python script to process. Please see the project log section to see how it's done now.

(Image shows the python GUI  app I hacked together to record handwritings)

Generate answers 

The access to ChatGPT is a gamechanger. The upcoming Wolfram Alpha plugin will likely make ChatGPT do accurate math. these plugins should fix the achilleas heel of ChatGPT. All you have to do is generate answers and / or copy paste the content for the Gcode generation software to process. 

(Image showing an assignment I wrote with the 1st generation handwriting...

Read more »

  • Font V2, Cursive & Machine Prototype

    Devadath P R05/03/2023 at 20:28 0 comments

    "Font V2" refers to the 2nd generation handwriting font recording method. There's a lot of progress since the previous update. They are: 

    • Made a python app to record your handwriting using a graphics tablet. The app records the stroke by saving the normalized coordinates of then pen's stroke. The recorded stroke's recorded coordinates are of high resolution. 
    • Made the Gcode generation python script support cursive handwritings 
    • Made a quick prototype of the homework machine mostly using the parts I had in stock.

    Lessons learnt for further progress:

    • Recording handwriting using a graphics tablet without a display is difficult for the user to get it right. You need some experience with it to draw your natural handwriting using it. This solution wont scale. 
    • Recording multiple versions of each character and randomly selecting one is not ideal. 
    • The machine's output is not perfectly smooth. Looking at the Gcode using a Gcode viewer, there seems to be a little jitter in the recording process that needs to be smoothed out.

    Up next:

    • Automate the book / page fixturing and page turning 
    • Set up input shaper to write fast without vibrations
    • Adopt a new medium to record handwriting- probably an android with a stylus.
    • Create a new method to make the writings look natural. Instead of recording multiple versions, the code should slightly vary the stroke in a random pattern to avoid letters looking the same. 
    • The flow between letters need to be perfected to look more natural

    I'm also thinking about alternate methods to record and process the handwriting. Record stroke SVG / vector? Create an ML model? Suggestions are welcome!

    Updates: 

  • Handwriting Font V1- June 2022

    Devadath P R05/03/2023 at 09:13 1 comment

    I have been documenting the progress since the start of the project by posting updates as stories on my Instagram. You can find the story highlights here

    Since the teacher caught me due to the unnatural regularity and neatness of a machine written text, I decided to record my own handwriting with Multiple versions of each character in the handwriting font (eg: "a1", "a2", "a3",) It was recorded using Inkscape's pen tool. Each letter was painstakingly converted to Gcode and All character's Gcode were combined into a file. The Gcode generation script uses this file as reference for my handwriting.

    The software to generate Gcode does the following:

    • Takes in all the content you want it to write and your handwriting font file as input. 
    • Places the text correctly in the correct line of the page.
    • Move to the next line either if all content in the line is written or of the line is filled.
    • Move to the next page if all the lines in the page are finished or if a page break is added   
    • Apply randomization to the letters for making  the text look more natural 
    • Create the Gcode for the machine as output.   

    This time it worked! The lab teacher ended up signing off my lab record as the text was completely different from the machine written one he saw before.  Another teacher familiar with my handwriting easily identified that It's not my handwriting. I used this font for months to write assignments and records as most of the teachers have no idea that I am writing these with a machine. They never complained. 

View all 2 project logs

Enjoy this project?

Share

Discussions

aaaaaa wrote 05/05/2023 at 14:23 point

add other language support for example Polish language

and sell this in tinde

  Are you sure? yes | no

Devadath P R wrote 05/05/2023 at 18:58 point

Will add more languages once everything is all set and done with english. 

  Are you sure? yes | no

aaaaaa wrote 05/08/2023 at 10:28 point

can You put gcode for normalgrbl 3d printer?

It will be interesting how look like this same code on different devices

  Are you sure? yes | no

Kalin Kochnev wrote 05/04/2023 at 15:15 point

This is baller. Wrote memorization rarely works. Good job outsmarting the system.

  Are you sure? yes | no

Devadath P R wrote 05/05/2023 at 18:57 point

Thanks! Hope this will influence some changes in the system :)

  Are you sure? yes | no

Anthony wrote 05/02/2023 at 17:46 point

This project-- LOL.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates