11 comments

  • bermlee 17 hours ago
    This is fascinating stuff! Also, as an on-and-off longtime user of the Neo Smartpen I had never looked into whether these pens were hackable! I wish I had more samples of my father's unique and expressive handwriting with the Neo Smartpen before he succumbed to micrographia.

    I've had one or two moments where it doesn't complete some strokes.

    "이런걸할수 있을까" were missing it's ㅏ or ㅓ ticks and turned into "이런길할수 있을끼" or "안녕하세요" was missing the last horizontal stroke on the ㅛ

    • jbaudanza 16 hours ago
      Thank you for the feedback. I’ll incorporate this into the new training run.

      I’m sorry about your father. Reproducing his handwriting would be a beautiful project. What kind of samples do you have from him?

  • gus_massa 2 days ago
    Nice! Did you find any weird/funny case while training the model? [I remember autotranlation/readers inventing stuff a few years ago.]

    > Drive a real mechanical pen

    > I think it would be fun to hook the output of this model up to a real pen. I'm not sure of the use case, but maybe you're an artist and have some ideas?

    If you get someone to make a few samples and photos, it would be very nice.

    • jbaudanza 2 days ago
      > Nice! Did you find any weird/funny case while training the model? [I remember autotranlation/readers inventing stuff a few years ago.]

      Mostly, it was me trying things the naive way, running into problems, and then solving them, usually by copying what Alex Graves did in 2013 (but not always!)

      For example, to make things simple I first built the model to simply predict the next x, y direction of the pen. This worked for simple pen strokes, but I noticed the model had a difficult time turning corners.

      To fix this, I changed the model to instead predict an Mixture Density Network (Same as Graves). This is explained better in his paper, but essentially, instead of predicting one x, y direction, you predict 10, and then randomly sample one of those predictions. Also instead of predicting scalar x, y values, you predict a parameters for a gaussian distribution, and then sample from that.

      It always amazes me how much randomness is involved in intelligence.

      > If you get someone to make a few samples and photos, it would be very nice.

      I'm in Seoul, if you know anyone who would be interested in collaborating, please send me a note! jon@jonb.org

    • sstim 2 hours ago
      Noticed that 펲시 triggers odd behavior.
      • jbaudanza 1 hour ago
        Thanks! I added this to the training data.
  • WillAdams 17 hours ago
    Reminiscent of

    https://tug.org/tug2003/abstracts/pdf/yiu/yiu.pdf

    have you considered extending this to include support for Chinese characters?

    • jbaudanza 16 hours ago
      The text embedding structure is very specific to Hangul. Someone that knows more about Chinese than me could probably design a suitable text embedding structure that would work well. I’m happy to collaborate if you want to fork my project and try.
  • nxobject 15 hours ago
    Given that you found pressure added useful information about a stroke might be continued, do you think adding tilt angle or velocity might also help?
    • jbaudanza 15 hours ago
      That's an interesting idea. Velocity is something that can be derived from the x, y inputs that the model already has. So, if the velocity contained useful information, I would expect the model to be able to learn this during the training phase. The pressure, on the other hand, was new information that the model didn't have before.
  • jdw64 1 day ago
    It seems that in some sentences, the Korean ending '다 da' is not being output. the AI definitely write better than me.

    P.S. I checked the issue: when I input '다.', it outputs '다', but when I input '다', it outputs '디'.

    • jbaudanza 1 day ago
      Thank you, you're right! It definitely seems to have a problem when the end of the string ends with 다. It seems to work if you end the sentence with "다." instead of "다". I'll look into this more. There should be plenty of "다" data in the training set, maybe there's something deeper going on.

      PS: I saw your feedback report. 화이팅! :)

      • jdw64 1 day ago
        좋은 하루보내세요:) I hope it goes well. In my area of Ulsan, there are many workers who speak languages other than Korean, and your idea seems promising.
        • jbaudanza 1 day ago
          Ah yes, I'm well aware! My company (hiworker.com) makes AI products for ship building and construction companies that have a large foreign workforce. We have some customers in Ulsan. It's a beautiful place, I love visiting.
  • drekipus 1 day ago
    This is really cool, I wanted to do something similar for hanzi (Chinese characters) so I could practise Chinese handwriting.
    • jbaudanza 1 day ago
      I think this would work well for Chinese, but you’d probably need to modify the text embedding system. Let me know if you’d like to try, happy to collaborate.
  • hjun1052 20 hours ago
    Wow, what a cool project! It struggles a bit with "쀍" tho... (but so does my phone’s Korean font lol)
    • jbaudanza 20 hours ago
      Oh thank you, good catch. "쀍" is definitely not a common character in my training set. I'll add it to the next run!
      • robocat 1 hour ago
        I am hoping to try learning Korean. This looks useful if the writing speed could be controlled. For the moment I guess I could just edit the SVG.

        Sorry for changing thread topic.

        Cheers

        • jbaudanza 3 minutes ago
          Yeah certainly, the SVG animation should be playable at any speed.

          If you're learning to write, I'd recommend looking up the official stroke order. You can just google "Hangul stroke order" and find plenty of guides. And then, just practice writing in a notebook a lot.

  • iammohamedatef 18 hours ago
    [flagged]
  • ruiqingcn 20 hours ago
    [flagged]
  • emmawingding 21 hours ago
    [flagged]
  • DylanMerigaud 1 day ago
    [flagged]