Call For Testers: Graffiti2x : F200 Handwriting Recognition.


Great job!
But I've a question:
Graffiti is copyright of Xerox,
is your program a patent infringement?

Regards,
Slycom
 
Newman94 said:
Great job!
But I've a question:
Graffiti is copyright of Xerox,
is your program a patent infringement?

Regards,
Slycom
*research research research*

The name "Graffiti" likely has to go.

The graphic I'm using is from wikipedia, drawn by an independent user and released into the GPL. I've even modified it from there. I don't see any issues displaying this in the background when the app is running.

The algorithm I'm using is radically different from Xerox or Palm's, to the point where "real" graffiti wouldn't work. The program presently can't do double strokes as seen in Graffiti 2.

If worst comes to worse I'll have to have the user define their own keystrokes (which a number of people have been asking for anyways). Though I'm sure that someone could say any touchscreen recognition of handwriting is a copyright violation. Annoying.

I would appreciate some advice on how to proceed on this.
 
Last edited by a moderator:
Hi,

[/quote]
The algorithm I'm using is radically different from Xerox or Palm's, to the point where "real" graffiti wouldn't work. The program presently can't do double strokes as seen in Graffiti 2.
[/quote]

Great notice!
Thank you for clearing :)

Slycom
 
Newman94 said:
The algorithm I'm using is radically different from Xerox or Palm's, to the point where "real" graffiti wouldn't work. The program presently can't do double strokes as seen in Graffiti 2.
[/quote]

Great notice!
Thank you for clearing :)

Slycom
[/quote]

I'm not convinced that's adequate. What I am potentially "copying" from Graffiti is:

1) The idea that strokes on a touchpad can be converted to letters
2) Part of the GPL'd images on the Graffiti wikipedia page, as hand drawn by an original author (ergo the copyright holder, according to wikipedia) and released into the GPL. I've actually modified these images to match my own handwriting style that works with my algorithm

The code is completely my own and makes no use of any other companies work. Written from scratch in Fenix, to be more accurate.

**more research**

The reason Xerox got upset with palm was a violation of their 1997 Unistrokes patent. It's gone back and forth in appeals court, with Xerox and Palm finally settling out of court.

US Unistrokes Patent - 1997

And if I were an American citizen this would probably axe the project for me. But I'm Canadian, and I'm not hosting the code on any US server. I see no evidence that this patent has been duplicated in my country :)

I'll have a co-worker of mine who works in copyright law check this out for me. Until then...

Writer2x Test 8

* Project renamed to "Writer2x" to avoid some of the issues above.
* New 8 directional system for more accurate recording of diagonal codes (12346789 system, can be applied to all characters for more accuracy if needed). 1=upper left, 9= lower right. There's a 22.5 degree of freedom around each line)
* Diagonal (1-9) and orthogonal (UDRL) codes now both displayed. They're independent of one another, but either can be used to determine a letter. (8 is now "i", LD is still "F", 7 is now return, UD and URD are still "a", etc)
* Return now works (clears the line, like the b button for now)
* Tap the screen once for punctuation marks. These marks are new and likely have codes that are missing.
* Double tap for period
* I redid the characters for the punctuation screen background graphic because they were impossible to read.
* I may need to redraw the codes on the background graphic... Brackets "(" and ")" need to be very curly compared to the included graphic. ` appears to be a british pound sign, I have a hard time getting # and ~ not mixed up, < and > need to be very diagonal.
* Frequency of crash bugs appears to be increasing. I have confidence this is a fenix bug related to the display of strings, but I need all those strings right now for codes. I'll start to fix this one once I can clear the screen of a lot of these jibberish codes.

The next step really should be to move this towards a proper editor of some kind, with save and load capabilities. Then I'll release it to the archive as version 0.1.
 
Last edited by a moderator:
Trevor Bradley said:
The next step really should be to move this towards a proper editor of some kind, with save and load capabilities. Then I'll release it to the archive as version 0.1.
You should try to make it a reusable library, so we could use, say, in dosbox to enter text, for example.
 
Last edited by a moderator:
Hitnrun said:
Trevor Bradley said:
The next step really should be to move this towards a proper editor of some kind, with save and load capabilities. Then I'll release it to the archive as version 0.1.
You should try to make it a reusable library, so we could use, say, in dosbox to enter text, for example.


That's going to be simultaneously tricky and easy.

It's tricky in the sense that I'm going to have to rewrite it from scratch. All my code is written in Fenix and would have to be redone in C.

It's easy in the sense that this code isn't particularly hard. There are three main components: Touchscreen error recognition, theta recognition (relative direction from point to point) and handwriting code libraries. The touchscreen mouse data error recognition code is really about 20 lines. The code libraries are huge but could easily be moved to another format, and would be easier to code in another language.

Presently my code is about 1000 lines, 670 of which are letter/number/punctuation codes, 100 of which are theta relative point recognition (U, D, L, R, 1, 2, ... 9), 20 lines for the error filtering, and the rest is just Fenix wrappers. And I write really vertical code.

If someone can get me a stub, and empty C or SDL library that took in mouse data and spit out text and graphics primitives (dots and lines, which I need for testing but will drop later), I'd be happy to rewrite this as a common library. Ideally there should be some way to read the codes from an external file, so it can be updated separately through a different application.

I can develop in either Windows or Linux, but only own an F200. But it's been a very long time since I've coded in C and I'm clueless as to which tools I can/should use to compile code for the gp2x. Do you need an F100 to compile for the processor?

It's a great idea, I'd love to do it.

(The funny thing is my original touchpad project was supposed to be my side, little project I was going to quickly finish so I could move to my more awesome project, which at this point would likely be less popular... :)
 
Last edited by a moderator:
Trevor Bradley said:
Do you need an F100 to compile for the processor?
Nah - the only reason people prefer F100s to dev on is because you can set it up such that - without needing a cradle - any code that's compiled on the PC is automatically uploaded to and run on the GP2x. Making testing (and in particular, debugging) very very painless.

The F200 is still a perfectly good machine to compile things for (they're the same device to all intents and purposes, after all) - but debugging is more awkward, as I understand it.
 
Last edited by a moderator:
Tobriand said:
Nah - the only reason people prefer F100s to dev on is because you can set it up such that - without needing a cradle - any code that's compiled on the PC is automatically uploaded to and run on the GP2x. Making testing (and in particular, debugging) very very painless.

The F200 is still a perfectly good machine to compile things for (they're the same device to all intents and purposes, after all) - but debugging is more awkward, as I understand it.
Well, if someone's willing to work with me on a library that would be compatible for different apps. let me know and point me towards a primer so I can get started... :)
 
Last edited by a moderator:
Ahh foo...

I talked with my co-worker who deals in copyright/patent law. Looks like there is actually a patent issue here. I'm sure we'd slip under the radar, but I'm not sure I should spend time continuing development only to receive a nasty letter a few months down the road.

I could try sending Xerox a *really* nice letter and get permission... but I'm not hopeful.
 
Back
Top