Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

This is unutterably wonderful! #68

Open
ceoln opened this issue Nov 5, 2014 · 11 comments
Open

This is unutterably wonderful! #68

ceoln opened this issue Nov 5, 2014 · 11 comments

Comments

@ceoln
Copy link

ceoln commented Nov 5, 2014

I've been interested in generative things forever (see, oh, I dunno, my ancient DOOM level generator http://doom.wikia.com/wiki/SLIGE, and the generator of rules for 1D cellular automata http://www.davidchess.com/toys/odca.html , and some generated music mentioned briefly http://davidchess.com/words/log.20001020.html#20001023 ), and I've also done NaNoWriMo a few times (most were ordinary novels more or less with narratives, but "Silence. Silence. Silence. Silence." might I suppose be mistaken for something algorithmic http://www.davidchess.com/words/n2009.txt ).

I didn't finish my NaNoWriMo novel last year (was that just last year?), and had just decided not to start one this year, but this NaNoGenMo has got me all enthused now.

My initial thought is to do some sort of simple generative grammar with parameters, but that's just an initial thought. And if it gets late in the month I can always go for vaguely convincing-looking text in an unknown tongue (hm, that sounds kind of interesting, actually).

@ceoln
Copy link
Author

ceoln commented Nov 6, 2014

... so now I am thinking about a parameterized generative grammar with the terminals in a fictional language. Could be ossum!

@hugovk
Copy link
Collaborator

hugovk commented Nov 6, 2014

See also #45 for an entry using the Voynich manuscript which works really well.

@ceoln
Copy link
Author

ceoln commented Nov 6, 2014

Yeah, that one is cool! I've decided to (to start with anyway) limit myself to what a self-contained C program can do (so, generating sequences of alphanumerics and punctuation, not fetching anything from the web). Old skool style. :)

I now have an Eclipse project and .c file called "elegant iron oven" (it's an anagram). Current plan is to produce what looks like a foreign-language novel in your basic ASCII-type character set. Flat text to start with, might get ambitious and produce LaTex or pdf or something later on.

@ceoln
Copy link
Author

ceoln commented Nov 6, 2014

Well, we are rollin'. :) First sample output (just a little structure):
https://drive.google.com/file/d/0B_FnSSonAA5yX21YMkhfbklHN0E/view?usp=sharing

@hugovk
Copy link
Collaborator

hugovk commented Nov 6, 2014

If you can stretch to non-ASCII, a few umlauts and accents peppered here and there really help things look foreign.

@ceoln
Copy link
Author

ceoln commented Nov 7, 2014

That is true. :) Maybe as a command-line switch...

@ceoln
Copy link
Author

ceoln commented Nov 7, 2014

More progress!

https://drive.google.com/file/d/0B_FnSSonAA5yZFltRC1yQ1ZXaXJZZEJPTGdKbVNYYy1tYzg4/view?usp=sharing

Now includes a bit of flat-text formatting, and unpronouncible fake words! Very primitive algorithms so far, but woo woo! Reminds me of stuff I did in High School in BASIC. :)

@cpressey
Copy link

cpressey commented Nov 7, 2014

Definitely scores some points in my book* for using a programming language that doesn't have automatic memory management!

*and now I choose use this idiom even though it is apt to be confusing here

@ceoln
Copy link
Author

ceoln commented Nov 7, 2014

Yeah, not to mention the most primitive possible string support. :) Takes me back to my roots.

Here is Ej Onike Yboruzi; it is just over 50K words, but it's still extremely primitive. I want to get the statistics more like a natural language, to have it use a finite list of words rather than making them up from scratch, and so on...

https://drive.google.com/file/d/0B_FnSSonAA5yOGhuZUp4aHhPQWJYMWhLRy1QTVNjdHhPTDZ3/view?usp=sharing

@ceoln
Copy link
Author

ceoln commented Nov 11, 2014

Now it takes from a finite list of words, although still completely at random. Oj Eninco:

https://drive.google.com/file/d/0B_FnSSonAA5yLUFGZ3ZEVGNfSVU/view?usp=sharing

Next to do something like sorting the list roughly by word-length, and choosing the next word according to a Zipfian distribution. Or something like th at...

@ceoln
Copy link
Author

ceoln commented Nov 30, 2014

I'm going to declare victory here :) as the month got busy and I never did much more than what I'd already mentioned as of the last comment. But it meets the requirements!

The official sample novel, "Gazanduwo U":
https://drive.google.com/file/d/0B_FnSSonAA5yektjQ3M2MG5ETFU/

The Source Code (terribly-written and non-maintainable C code; see disclaimers at the beginning):
https://drive.google.com/file/d/0B_FnSSonAA5yMW9JcnNZUGhfV00/

The program is called Elegant Iron Oven, because I was on an Anagram Server kick that week. :)

The underlying principles will be obvious (hahaha) from the source code.

@hugovk hugovk added completed and removed preview labels Dec 1, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants