GithubHelp home page GithubHelp logo

2021's Introduction

This is for the 2021 NaNoGenMo. See here for the 2022 repo!

NaNoGenMo 2021

entries: completed entries: preview issues: admin twitter: nanogenmobot

National Novel Generation Month - based on an idea Darius tweeted on a whim, where people are challenged to write code that writes a novel.

Hey, who wants to join me in NaNoGenMo: spend the month writing code that generates a 50k word novel, share the novel & the code at the end

This is the 2021 edition. For previous years see:

The Goal

Spend the month of November writing code that generates a novel of 50k+ words. This is in the spirit of National Novel Writing Month's interesting definition of a novel as 50,000 words of fiction.

The Rules

The only rule is that you share at least one novel and also your source code at the end.

The source code does not have to be licensed in a particular way, so long as you share it. The code itself does not need to be on GitHub, either. We use this repo as a place to organize the community. (Convenient because many programmers have GitHub accounts and the Issues section works like a forum with excellent syntax highlighting.)

The "novel" is defined however you want. It could be 50,000 repetitions of the word "meow" (and yes it's been done!). It could literally grab a random novel from Project Gutenberg. It doesn't matter, as long as it's 50k+ words.

Please try to respect copyright. We're not going to police it, as ultimately it's on your head if you want to just copy/paste a Stephen King novel or whatever, but the most useful/interesting implementations are going to be ones that don't engender lawsuits.

This activity starts at 12:01am GMT on Nov 1st and ends at 12:01am GMT Dec 1st.

How to Participate

Open an issue on this repo and declare your intent to participate. If you already have some inkling of the kind of project you'll be doing, please title your issue accordingly. You may continually update the issue as you work over the course of the month. Feel free to post dev diaries, sample output, etc.

If you have more than one project you're attempting, feel free to post a new issue for that project and keep that one up to date as well.

Also feel free to comment on other participants' issues.

Admins

Official admins for NaNoGenMo are @dariusk, @hugovk, @MichaelPaulukonis, and @mewo2. We'll be doing our best to keep the issues section well organized and tagged.

Resources

There's an open issue where you can add resources (libraries, corpuses, APIs, techniques, etc).

There are already a ton of resources on the old resources threads from past years:

You might want to check out corpora, a repository of public domain lists of things: animals, foods, names, occupations, countries, etc.

That's It

Have fun!

2021's People

Contributors

dariusk avatar hugovk avatar maxdeviant avatar mrcasals avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

2021's Issues

Intent to participate

I would like to participate.

Been meaning to learn commonlisp so I want to doodle around with it

The idea of bot generated books is interesting too

finally trying to participate

I've been watching this challenge since 2017 and now finally decide to try.
I have some ideas and going to use one of them for further exploration:

  • replace verbs with antonyms
  • generate novel from novel reviews
  • join some short stories in one big story
  • look for some kind of GAN for text
  • create comics

And my story will be in Russian

4koma

Yet another "make a comic book" project, but this time I'm going to try for a little bit of plot.

4koma is a style of four-panel gag comic popular in Japan, and it usually follows the kishotenketsu model for plot. Since each panel maps onto exactly one step of this model, we have an upper limit of complexity for each stage in terms of what can fit in a single panel.

According to wikipedia,

Traditionally, yonkoma follow a structure known as kishōtenketsu. This word is a compound formed from the following Japanese kanji characters:

Ki (起): The first panel forms the basis of the story; it sets the scene.
Shō (承): The second panel develops upon the foundation of the story laid down in the first panel.
Ten (転): The third panel is the climax, in which an unforeseen development occurs.
Ketsu (結): The fourth panel is the conclusion, in which the effects of the third panel are seen.

In other words, we have two panels to establish a setting and context, one to show an event that violates that context, and one to show the response to that context. Comics like this can be pretty abstract in terms of their violations and still get laughs. This video covers how a particular joke works, and as you can see, in this particular joke (which compounds and elaborates on the 4koma formula by having the punchline of one become the setup for the next) has climax/violation steps that are more or less random unexpected events and conclusion steps that are merely character reactions.

So, the dumbest potential version of a 4koma generator that still correctly follows the formula goes like this:

  1. we establish a context with panel 1
  2. we continue to establish the context with panel 2, showing some event that's logically consonant with the one in panel 2 (based on some small database of consonant and dissonant events)
  3. we show a dissonant event (based on the same database)
  4. we show a character having an exaggerated reaction (probably of shock)

The components we'd need for this is a small database of events with information about which go together and which don't, with each event associated with an image in a similar style, plus a set of reaction images from which panel 4 will be randomly pulled. Naturally, for events that make no sense in any context, like standing on one's desk, we can include them in the database.

In order to make the comics more funny, I suspect we'll benefit from making ketsu (panel 4) also double as a secondary ten (i.e., frame violation) on occasion -- based on experience reading 4koma and seeing 4koma adaptations. The easiest way to do this is to put a couple reaction images in the pool that do not show shock -- for instance, ones that show determination, sadness, or trying too hard to look cool.

My drawing skills aren't great, so I may grab background and foreground elements from some existing source (for instance, actually-existing 4koma, many of which are drawn in a similar style).

data-generated novel

I usually work with data sonification, so I would like to extend this practice to data-novel-generation, for lack of a better expression.

Experimenting with text generator prompting

I've recently been developing PromptArray, a syntax for designing ensembles of multiple prompts for neural text generators like GPT-2, tied together with operators like "and" and "not" that alter how words are chosen. For this year's entry, I'm planning to keep working on this system in tandem with an attempt to use it to generate a novel. I don't know how far I'll get within the month, but I will post 50,000 words of something!

A novel in the vocative case

When I was studying Sanskrit in college, I was really taken by the vocative case. I think that the vocative case is partly what gives Sanskrit its unique feel when it is translated to English. This is probably because sentences with vocative elements don’t really have an exact equivalent in English, which makes them stand out as being a bit unusual in a translated text. Anyhow, I think they make for wonderful reading.

After Sanskrit class, in the pub, I would joke with my classmate that I was going to write a novel in the vocative case. Fast forward to Nanogenmo many years later, and now I have my chance! I can download the entire Mahabharata, pull out all the sentences with vocative elements, and mash them together into one text. That’s what I’ve done for this Nanogenmo entry.

You can see the code and the full novel here.

Recursive story simulation; Þys Maddock

Repo: https://github.com/hornc/maddock

This year I am attempting a simulated story generator. In previous NaNoGenMos I've focused on
methods of text generation through code, where any resulting 'story' is a happy accident, or secondary to some
feature of the code or quantity of text. This year I want to focus on generating story rather than just
words...

Inspiration

This story is to be a recursive storytelling simulation, inspired variously by:

  • The Canterbury Tales,
  • John Fowles' A Maggot (at least the first few pages, it's initial scene, and some discussion of his writing and obsession with that scene I half remember reading somewhere (have not read the full book)).
  • Rashomon, for the repetition of stories, but here rather than differing recollections, the characters' stories are in some
    abstract sense prescriptive and shape their reality, and
  • The Saragossa Manuscript, for stories-within-stories (yes, ok, I haven't read that book either, just seen the film...).
  • Other public entries and ideas for story and game-like simulations from past NaNoGenMos. There are multiple, but the ealiest one that stuck in my head and got me thinking about this sort of thing first was Chris Pressy's 2018 effort: The League of Extraordinarily Dull Gentlemen. I am probably going to do less detail and aim for more character motivation, if things work out.

See the repo for more specific goals and ideas....

~17K words so far.

Sample at the end of session 1:

Twenty-four brave travellers make their way by ocean going vessel towards The D_____ Q____ Inn.
It is barely foggy.
First is the sincere but miserable real estate broker followed by the youthful but suspicious physician assistant, followed by the elated but stern wood patternmaker, followed by the wishful but not so lame bill and account collector, followed by the shunned but not so warm dental laboratory technician, followed by the tepid but not so quick meter reader, followed by the spunky but competent clinical laboratory technologist, followed by the suffocated yet drowsy life scientist, followed by the stressed -cum- well-rounded musician, followed by the bold and stern psychiatric aide, followed by the perplexed -cum- quiet craft artist, followed by the replaced and drowsy geography teacher, followed by the neurotic and serious stock mover, followed by the nasty nonetheless insensitive hand laborer, followed by the ignored ambitious ceiling tile installer, followed by the faithful but not so cowardly traffic technician, followed by the manipulated yet serene tour guide, followed by the burned-out but flashy hunter, followed by the ashamed and arguably maternal mining safety engineer, followed by the pensive and crafty tool sharpener, followed by the enriched but circumspect forestry teacher, followed by the disgraced but not so blue forester, followed by the innovative and lively automotive glass installer, followed by the sunk but not so attentive foreign language teacher,.
The intrigued but stern physician assistant, O______ interacts with the crappy and arguably cynical tool sharpener, C_______
It is a neutral interaction.
The trembly but not so drowsy craft artist, T_____ does not understand .
The impatient but well-behaved physician assistant, O______ interacts with the threatened and stupid ceiling tile installer, F_____
It is a neutral interaction.
The glorious and obliging meter reader, Y_____ does not understand .
As they near their destination, they notice the Inn's sign depicts a Q____ which appears exceedingly D_____. The sign is covered with a slow moisture in the fog.
The group feels forgotten as they approach the entrance to the inn.

The trapped but not so sensitive craft artist, T_____ enters the inn first {description}.
The obligated and arguably drunk real estate broker, L_______ reacts {reaction}. {supplementary reaction from a third individual or the group}
Inside, the inn is really awesome and well described.
The travelers interact with the Inn in an interesting and satisfying way.
Close by, or far away, a horse makes a sound, is seen, or unobservedly does something characteristic yet poignant.
"Oh look, over there by the counter; there is the innkeeper, looking rather lethargic. Let us talk to him!" says the foolish nonetheless great ceiling tile installer, F_____.
The innkeeper, G________, has a lethargic personality, and some worldly advice to impart (if the mood takes him).
"Grab yourselves a table, and I'll be with you shortly to take orders..."
The weary travellers sit at a knowledgeable table.
They have some interactions, and remark upon their situation.
The amazed and short-tempered wood patternmaker, E_______ interacts with the hateful and cordial tool sharpener, C_______
It is a positive interaction.
The persecuted but not so timid life scientist, M____ is amused .
The trustful -cum- egotistical traffic technician, I____ interacts with the okay nonetheless stable clinical laboratory technologist, F____
It is a negative interaction.
The insecure nonetheless well-rounded forester, S_______ looks on in disgust .
Possibly, something notable happens. What is the outcome?
Someone may be called away, or storm off, or otherwise be excused.
Presently the Innkeeper (or possibly another staff member such as the bar-staffer or pot-scrubber) scoots over to take their orders.
Available yummies are listed, questioned, and chosen, comprising and/or consiting of food and / or drinks. There is indecision, and certainty.
Once all orders are made, the group settles in to wait. Drinks may arrive, but the food takes time to prepare.
Something happens in the main room.
In order to entertain themselves, as is their custom on this journey, they decide to pass the time telling stories, and chose from their number one person to tell this evening's tale...
The delicate yet unmotivated bill and account collector, Q________ waits for the chatter to subside and begins her tale...

The Bill And Account Collector's Tale

Twenty-three optimistic travellers make their way by carriage towards The I____ L_____ Inn. It is very stormy.
...

Colourless Light

Going to participate, probably doing something with a visual / graphic element this year

A Finite Number of Monkeys

This NaNoGenMo book is "A Finite number of Monkeys", weighing in at 61,339 words.

The code is in python. There is a "target" paragraph that the monkey needs to match, but the monkey can't read. He starts by typing random characters. If any of those characters is in the correct location, he is alerted. The next attempt, he'll leave the correct characters in their correct locations, randomly retrying everything else. Over time, he figures out the target paragraph.

Spoiler: in this version of the story, the monkey finishes the job in 750 attempts. I ran the program 150,000 times: the monkey's fastest time was 315 attempts. The slowest was 1514 attempts.

The book:
monkey.txt
monkey.pdf

The code:
monkey.py.txt

Phaistos-Mantong Thesis

This is completely inspired by #29 -- I had not heard of Richard Shaver or Mantong until today. I had been meaning to do something with the Phaistos disc at some point. These two things collided in my head... what if the language of the Phaistos disc was English, via ancient Lemuria and this Mantong alphabet? Totally plausible.

Not trying very hard I came up with this rough equivalence between the 26 English/Mantong letters and a subset of the 45 Phaistos disc glyphs:

ANIMAL -> RAM 30
BE -> BEE 34  (ok, pretty dumb :) )
CON SEE -> COMB (21) CAT (29)
DE / SUN ray?   ARROW 10 ??
ENERGY -> BOW 11
FECUND -> PLANE TREE 35
GENERATE -> LILY 39
HUMAN -> PEDESTRIAN 01
I -> HEAD 02 / 03
J -> G  LILY 39
KINETIC ->   SHIP / OX LEG???
LIFE  -> VINE 36
MAN ->  CAPTIVE ?? 04
NINNY -> CHILD 05
ORIFICE -> LID 17 ???
POWER -> CLUB 13
QUEST -> COLUMN 23
HORROR -> MANACLES 14
SUN -> ROSETTE (38)
T -> SHIELD 12
U -> WOMAN 06 ??
V -> HORN 26
WILL -> MATTOCK 15 
Y -> CARPENTRY PLANE
X -> SLING 22
Z -> WAVY BAND 45

When I started I thought BEE = BE was pretty dumb and a poor choice, but by the end it seemed totally fitting, and pretty good considering the original correspondences. I mean, 'Y' = WHY? I can't do much worse.

Copying @enkiv2's one liner (hope you don't mind!), and adding some text stripping stuff to the pipe gives something that will convert English text to Phaistos/Mantong Unicode glyphs:

sed 's/\[.*\]//g;s/\W/ /g;s/\s\+/ /g;s/ *$/ /;s/^ //' | tr 'A-Z ' 'a-z|' | sed 's/a/𐇭/g;s/b/𐇱/g;s/c/𐇤/g;s/d/𐇙/g;s/e/𐇚/g;s/f/𐇲/g;s/g/𐇶/g;s/h/𐇐/g;s/i/𐇑/g;s/j/𐇶/g;s/k/𐇨/g;s/l/𐇳/g;s/m/𐇓/g;s/n/𐇔/g;s/o/𐇠/g;s/p/𐇜/g;s/q/𐇦/g;s/r/𐇝/g;s/s/𐇵/g;s/t/𐇛/g;s/u/𐇕/g;s/v/𐇩/g;s/w/𐇞/g;s/x/𐇥/g;s/y/𐇢/g;s/z/𐇼/g'

Not content with this -- because Phaistos is all about the discs; here is a one liner that will take an English text and split it out into a collection of Phaistos-glyph discs in SVG format, one side per file.

sed 's/\[.*\]//g;s/\W/ /g;s/\s\+/ /g;s/ *$/ /;s/^ //' | tr 'A-Z ' 'a-z|' | sed 's/a/𐇭/g;s/b/𐇱/g;s/c/𐇤/g;s/d/𐇙/g;s/e/𐇚/g;s/f/𐇲/g;s/g/𐇶/g;s/h/𐇐/g;s/i/𐇑/g;s/j/𐇶/g;s/k/𐇨/g;s/l/𐇳/g;s/m/𐇓/g;s/n/𐇔/g;s/o/𐇠/g;s/p/𐇜/g;s/q/𐇦/g;s/r/𐇝/g;s/s/𐇵/g;s/t/𐇛/g;s/u/𐇕/g;s/v/𐇩/g;s/w/𐇞/g;s/x/𐇥/g;s/y/𐇢/g;s/z/𐇼/g' | tr -d '\n' | sed 's/\(.\{137\}[^|]*\)|/⁞\1\n/g;' | split -da5 -l1 --filter 'echo "<svg viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path id=\"p\" fill=\"none\" transform=\"scale(1,-1)\" d=\"M50,90 q-40,0 -40,-40 q0,-40 40,-40 q40,0 40,40 q0,40 -27,40 q-7,0 -12,-10 q-30,0 -30,-30 q0,-30 30,-30 q30,0 30,30 q-5,35 -25,25 q-25,-5 -25,-25 q0,-20 20,-20 q20,0 20,20 q0,15 -15,15 q-10,0 -15,-15 q0,-10 10,-10 q10,0 10,10 q0,10 -10,0\"/><use stroke=\"black\" stroke-width=\"0.6\" transform=\"scale(1,-1)\" xlink:href=\"#p\"/><text transform=\"scale(1,-1)\" font-size=\"6pt\"><textPath baseline-shift=\"2pt\" xlink:href=\"#p\">" $(cat -) "</textPath></text></svg>" > $FILE.svg' - output_

To test this I converted the same "I Remember Lemuria" text into 1057 disc sides.
That's 529 tablets.
121683 'words' if we are counting each Mantong-Phaistos glyph as a word. (NaNoGenMo novel threshold, yay!)
28313 'sentences'.

I'm not sure how common Phaistos glyph Unicode support is, so here is a png sample of the first side of the first disc:

output_00000

Bizarrely this is kinda readable -- starting from the four dots on the outside edge, reading clockwise (RTL), 'I' is the head, the next word is 'remember', beginning and ending with the 'manacles' which are 'R" and having 3 'E's and 2 'M's, then 'Lemuria', ending with 'IA' -- the human head for 'I', and an animal head for 'A'.

I'm surprised, and pleased, this worked at all. Big thanks to @enkiv2 for the inspiration!

There might be some tweaks required (the SVG could be improved) but I'll try to put the complete output up somewhere, maybe in pdf format.

What's a Novel?

This year, I'll be working on a NaNoGenMo novel inspired by the Socratic method.

Adapting a homebrew RPG into a story sim

Several years ago, I made an RPG/Coop board game which I think could be adapted such that the log of actions by simulated characters is narratively interesting.

Currently, my plan is to use C Sharp and JSON to make the sim, and Tracery to render the logged actions into something more pleasing to read.

One thing I'm keen to try is introducing a third-person limited perspective, rather than the third-person omniscient generally applied to sim output. So, for any given scene, a perspective character would be picked, and any events they didn't personally witness or understand would be omitted from the rendered output.

This is my first attempt at NaNoGenMo, so we'll see how this goes.

RPG Campaign Setting Generation using Graph Rewriting

I will attempt to generate something akin to a tabletop rpg adventure book, generating a world and then using graph rewriting to create quests within that world that match the world model.

E.G.
World Model:
King Alexander = Character
The Baronies = Faction
Irvin Gold Mine = Resource
The United Banners = Army
King Alexander belongs to Faldland.
King Alexander hates The Baronies.
King Alexander controls The United Banners
The Baronies control Irvin Gold Mine

Graph Rewriting Rule:
(A hates B + A controls Army) -> (A at war with B, Army attacking B)
(A hates B + B controls Resource) -> (A wants to sabotage B)

Result:
King Alexander is at war with The Baronies. Under his command, The United Banners attack The Baronies. He will pay adventurers to sabotage the Irvin Gold Mine which is under The Baronies control.

Will be interesting to see how effective this attempt is, and how slow the performance will get since graph rewriting is not fast.

Toki Pona text

I have a workable beginning of a Toki Pona sentence generator (a constrained Markov chain).
All it should take to finish is to generate enough to pass the 50,000 words threshold.

EDIT: Toki Pona is a minimalistic conlang (around 150-200 words) with an isolating grammar (i.e. words are not compounded). It's likely I will make minimal changes to the language (e.g. making 'li' particle obligatory even for mi and sina) - but that should be fine as there is no 'single' way to speak/write TP.

Optional things

  • paragraph continuity (likely drawing on the original topic or the final words of previous sentence, or both)
  • dialogue (questions, followed by answers)
  • some overarching plot? (this is the most doubtful)

Resources

This is an open issue where you can comment and add resources that might come in handy for NaNoGenMo.

There are already a ton of resources on the old resources threads of previous editions:

Mantong Expansion

Richard Shaver wrote an ostensibly autobiographical story of horrifying subterranian experiments called "I Remember Lemuria". He also claimed that English was derived from an ancient language called "mantong", and that the Latin alphabet used in English is actually a set of mantong ideograms. (As far as I can tell, mantong is supposed to have a vocabulary of approximately 26 words -- less than toki pona.)

We can straightforwardly expand any English language text (or, arguably, any latin-1 text) to reveal the "hidden mantong meaning" Shaver thought was hidden in all texts.

Here is the expander script: https://github.com/enkiv2/misc/blob/master/mantong-expand.sh

Here is "I Remember Lemuria" (the version transcribed by the Sacred Texts Archive) expanded with this script: https://raw.githubusercontent.com/enkiv2/misc/master/nanogenmo-2021/shaver-mantong.md

This output is 382k words. Technically this entry is cheating because I threw together the first version of mantong-expand.sh a few days ago.

Here's a brief sample (page 1):

[ POWER .*1]

**

FECUND ORIFICE HORROR ENERGY WILL ORIFICE HORROR DE

POWER ENERGY HORROR HUMAN ANIMAL POWER SUN * MAN WHY * POWER ANIMAL HORROR ENERGY SEED GROWTH SUN * SEED ENERGY VITAL ENERGY HORROR * HORROR ENERGY ANIMAL LIFE EGO ZERO ENERGY DE * GROWTH HUMAN ENERGY * POWER YOU SEED SUN * GROWTH HUMAN ANIMAL GROWTH * WILL ORIFICE YOU LIFE DE * BE ENERGY * MAN ANIMAL DE ENERGY * ORIFICE SEED * MAN WHY * SEED ANIMAL MAN ENERGY * WILL HUMAN ENERGY SEED * GROWTH HUMAN ENERGY WHY * CON HUMAN HORROR EGO SUN GROWTH ENERGY SEED ENERGY DE * MAN ENERGY * HORROR EGO CON HUMAN ANIMAL HORROR DE * SUN HUMAN ANIMAL HORROR POWER ENERGY * SUN HUMAN ANIMAL VITAL ENERGY HORROR .* YOU SEED DE ENERGY HORROR * ORIFICE HORROR DE EGO SEED ANIMAL HORROR WHY * CON EGO HORROR CON YOU MAN SUN GROWTH ANIMAL SEED CON ENERGY SUN * GROWTH HUMAN ENERGY * POWER YOU SEED SUN * WILL ORIFICE YOU LIFE DE * HUMAN ANIMAL VITAL ENERGY * BE ENERGY ENERGY SEED * ORIFICE FECUND * LIFE EGO GROWTH GROWTH LIFE ENERGY * CON ORIFICE SEED SUN ENERGY QUEST YOU ENERGY SEED CON ENERGY ,* BE YOU GROWTH * BE ENERGY CON ANIMAL YOU SUN ENERGY * ORIFICE FECUND * GROWTH HUMAN ENERGY * ANIMAL MAN ANIMAL ZERO EGO SEED GENERATE * FECUND ANIMAL CON GROWTH * ORIFICE FECUND * MAN WHY * ANIMAL MAN ANIMAL ZERO EGO SEED GENERATE * MAN ENERGY MAN ORIFICE HORROR WHY * ORIFICE FECUND * GROWTH HUMAN ENERGY * LIFE EGO FECUND ENERGY * ORIFICE FECUND * ANIMAL SEED ORIFICE GROWTH HUMAN ENERGY HORROR * POWER ENERGY HORROR SUN ORIFICE SEED ,* LIFE ORIFICE SEED GENERATE * DE ENERGY ANIMAL DE ,* EGO GROWTH * HUMAN ANIMAL SUN * BE ENERGY ENERGY SEED * EGO SEED CON HORROR ENERGY DE EGO BE LIFE WHY * HUMAN ANIMAL HORROR DE * FECUND ORIFICE HORROR * MAN ENERGY * GROWTH ORIFICE * SUN POWER ENERGY ANIMAL KINETIC * CON ORIFICE SEED VITAL EGO SEED CON EGO SEED GENERATE LIFE WHY * ANIMAL SEED DE * GROWTH ORIFICE * MAN ANIMAL KINETIC ENERGY * POWER ENERGY ORIFICE POWER LIFE ENERGY * BE ENERGY LIFE EGO ENERGY VITAL ENERGY * EGO SEED * MAN ENERGY .* EGO SEED VITAL ANIMAL HORROR EGO ANIMAL BE LIFE WHY * EGO * GENERATE ENERGY GROWTH * GROWTH HUMAN ANIMAL GROWTH * ORIFICE HUMAN - SUN ORIFICE - FECUND YOU SEED SEED WHY * HORROR ENERGY MAN ANIMAL HORROR KINETIC ," SUN HUMAN ANIMAL HORROR POWER - SUN HUMAN ANIMAL VITAL ENERGY HORROR , ENERGY HUMAN ?* ANIMAL * HORROR ENERGY GENERATE YOU LIFE ANIMAL HORROR * CON YOU GROWTH - YOU POWER ,* ENERGY HUMAN ,* KINETIC EGO DE !"* ANIMAL CON CON ORIFICE MAN POWER ANIMAL SEED EGO ENERGY DE * BE WHY * ANIMAL * SUN LIFE WHY * DE EGO GENERATE * EGO SEED * GROWTH HUMAN ENERGY * HORROR EGO BE SUN * ANIMAL SEED DE * ANIMAL * VITAL ENERGY HORROR WHY * SUN GROWTH YOU POWER EGO DE ," GENERATE ENERGY GROWTH * EGO GROWTH ?" HUMAN ORIFICE WILL * CON ANIMAL SEED * ANIMAL * MAN ANIMAL SEED * GENERATE ENERGY GROWTH * ANIMAL * SUN ENERGY HORROR EGO ORIFICE YOU SUN * ANIMAL YOU DE EGO ENERGY SEED CON ENERGY * ANIMAL FECUND GROWTH ENERGY HORROR * GROWTH HUMAN ANIMAL GROWTH ?

ANIMAL SEED DE * WHY ENERGY GROWTH ,* GROWTH HUMAN ENERGY HORROR ENERGY * EGO GROWTH * EGO SUN * FECUND ORIFICE HORROR * ANIMAL LIFE LIFE * WILL HUMAN ORIFICE * WILL EGO SUN HUMAN -- GROWTH ORIFICE * POWER YOU SEED * ANIMAL SEED DE * POWER YOU SEED * ANIMAL GENERATE ANIMAL EGO SEED .* EGO FECUND * EGO * ANIMAL CON HUMAN EGO ENERGY VITAL ENERGY * SEED ORIFICE GROWTH HUMAN EGO SEED GENERATE * ENERGY LIFE SUN ENERGY * ANIMAL GROWTH * LIFE ENERGY ANIMAL SUN GROWTH * WHY ORIFICE YOU * MAN ANIMAL WHY * LIFE ANIMAL YOU GENERATE HUMAN ,* ANIMAL SEED DE * GROWTH ORIFICE * LIFE ANIMAL YOU GENERATE HUMAN * EGO SUN * GROWTH ORIFICE * BE ENERGY * POWER HUMAN WHY SUN EGO CON ANIMAL LIFE LIFE WHY * ANIMAL SEED DE * MAN ENERGY SEED GROWTH ANIMAL LIFE LIFE WHY * HUMAN ENERGY ANIMAL LIFE GROWTH HUMAN WHY .* FECUND ORIFICE HORROR * GROWTH HUMAN ORIFICE SUN ENERGY * ORIFICE FECUND * WHY ORIFICE YOU * WILL HUMAN ORIFICE * WILL EGO LIFE LIFE * HORROR ENERGY ANIMAL DE * ORIFICE SEED * ANIMAL SEED DE * CON ANIMAL HORROR ENERGY FECUND YOU LIFE LIFE WHY * WILL ENERGY EGO GENERATE HUMAN * WILL HUMAN ANIMAL GROWTH * EGO * ANIMAL MAN * ANIMAL BE ORIFICE YOU GROWTH * GROWTH ORIFICE * GROWTH ENERGY LIFE LIFE * WHY ORIFICE YOU * EGO * ANIMAL MAN * CON ORIFICE SEED VITAL EGO SEED CON ENERGY DE * GROWTH HUMAN ENERGY HORROR ENERGY * WILL EGO LIFE LIFE * BE ENERGY * SEED ORIFICE * GROWTH HUMAN ORIFICE YOU GENERATE HUMAN GROWTH * ORIFICE FECUND * POWER YOU SEED SUN .* EGO SEED SUN GROWTH ENERGY ANIMAL DE ,* WILL HUMAN ENERGY SEED * WHY ORIFICE YOU * CON ORIFICE SEED SUN EGO DE ENERGY HORROR * GROWTH HUMAN ENERGY * HORROR ENERGY ANIMAL LIFE * GROWTH HORROR YOU GROWTH HUMAN SUN * BE ENERGY HUMAN EGO SEED DE * WILL HUMAN ANIMAL GROWTH * EGO * SUN ANIMAL WHY -- ANIMAL SEED DE * ENERGY VITAL ENERGY SEED * BE ENERGY GROWTH GROWTH ENERGY HORROR ,* ENERGY CONFLICT POWER ENERGY HORROR EGO MAN ENERGY SEED GROWTH * ANIMAL SEED DE * SUN GROWTH YOU DE WHY * GROWTH ORIFICE * CON ORIFICE HORROR HORROR ORIFICE BE ORIFICE HORROR ANIMAL GROWTH ENERGY * GROWTH HUMAN ENERGY MAN -- EGO GROWTH * SUN ENERGY ENERGY MAN SUN * GROWTH ORIFICE * MAN ENERGY * GROWTH ORIFICE * BE ENERGY * EGO SEED ENERGY VITAL EGO GROWTH ANIMAL BE LIFE ENERGY * GROWTH HUMAN ANIMAL GROWTH * WHY ORIFICE YOU * WILL EGO LIFE LIFE * FECUND ORIFICE HORROR GENERATE ENERGY GROWTH * GROWTH HUMAN ANIMAL GROWTH * EGO * ANIMAL MAN * HORROR EGO CON HUMAN ANIMAL HORROR DE * SUN HUMAN ANIMAL HORROR POWER ENERGY * SUN HUMAN ANIMAL VITAL ENERGY HORROR ,* ANIMAL SEED DE * EGO SEED SUN GROWTH ENERGY ANIMAL DE ,* ANIMAL MAN * WILL HUMAN ANIMAL GROWTH * SUN CON EGO ENERGY SEED CON ENERGY * CON HUMAN ORIFICE ORIFICE SUN ENERGY SUN * GROWTH ORIFICE * VITAL ENERGY HORROR WHY * VITAL ANIMAL GENERATE YOU ENERGY LIFE WHY * DE ENERGY FECUND EGO SEED ENERGY * ANIMAL SUN * GROWTH HUMAN ENERGY * HORROR ANIMAL CON EGO ANIMAL LIFE * MAN ENERGY MAN ORIFICE HORROR WHY * HORROR ENERGY CON ENERGY POWER GROWTH ANIMAL CON LIFE ENERGY * ORIFICE FECUND * ANIMAL * MAN ANIMAL SEED ( ORIFICE HORROR * SUN HUMAN ORIFICE YOU LIFE DE * EGO * SUN ANIMAL WHY * ANIMAL * BE ENERGY EGO SEED GENERATE ?) SEED ANIMAL MAN ENERGY DE * MAN YOU GROWTH ANIMAL SEED * MAN EGO ORIFICE SEED ,* WILL HUMAN ORIFICE * LIFE EGO VITAL ENERGY DE * MAN ANIMAL SEED WHY * GROWTH HUMAN ORIFICE YOU SUN ANIMAL SEED DE SUN * ORIFICE FECUND * WHY ENERGY ANIMAL HORROR SUN * ANIMAL GENERATE ORIFICE * EGO SEED * SUN YOU BE * ANIMAL GROWTH LIFE ANIMAL SEED ,* ORIFICE SEED ENERGY * ORIFICE FECUND * GROWTH HUMAN ENERGY * GENERATE HORROR ENERGY ANIMAL GROWTH * CON EGO GROWTH EGO ENERGY SUN * ORIFICE FECUND * ANIMAL SEED CON EGO ENERGY SEED GROWTH * LIFE ENERGY MAN YOU HORROR EGO ANIMAL !

EGO * MAN WHY SUN ENERGY LIFE FECUND * CON ANIMAL SEED SEED ORIFICE GROWTH * ENERGY CONFLICT POWER LIFE ANIMAL EGO SEED * EGO GROWTH .* EGO * KINETIC SEED ORIFICE WILL * ORIFICE SEED LIFE WHY * GROWTH HUMAN ANIMAL GROWTH * EGO * HORROR ENERGY MAN ENERGY MAN BE ENERGY HORROR * LIFE ENERGY MAN YOU HORROR EGO ANIMAL !* HORROR ENERGY MAN ENERGY MAN BE ENERGY HORROR * EGO GROWTH * WILL EGO GROWTH HUMAN * ANIMAL * FECUND ANIMAL EGO GROWTH HUMAN FECUND YOU LIFE SEED ENERGY SUN SUN * GROWTH HUMAN ANIMAL GROWTH * EGO * ANIMAL CON CON ENERGY POWER GROWTH

Intend to participate

I'd love to participate for the first time in NaNoGenMo! It seems like a great fun idea.

I'll update this thread once I pick an idea, still germinating one right now. I've made markov chain bots before, so maybe I could do something unique with those. I'm also intrigued by the idea of combining existing written sources (Wikipedia, free books, forums, Reddit, etc) into some sort of narrative.

Menschen, Deutschland, Impfung

Telegram chats by so-called "Querdenker" have attracted a lot of attention with the Corona pandemic. Almost hundreds of posts and messages are shared daily, pretending to know the real truth about the Corona pandemic as "alternative media" The use of right-wing ideologies and spreading of anti-semitism is clearly visible in the chats. Populist supporters of conspiracy myths find so-called resonance spaces in social media. According to a study by MDR, 55% of social network users are not sure whether they can distinguish between fake and true information. Social and behavioral research shows that people tend to seek confirmatory information. Social media reinforces this mechanism by having algorithms suggest matching posts. Similarly in Telegram groups, where links to additional chats or external websites are shared that share a similar opinion. This inhibits a pluralistic diversity of opinion and reinforces a one-sided opinion. In addition to the influence of social networks, the current social context is also responsible for the rise of right-wing populism.
Get the repository here.

Titelblatt, Menschen, Deutschland, Impfung

feature request: add Japanese

I'd like to do participate but I don't write in English so I'd like to do something in Japanese (break the word count).

A nonsensical abécédaire

My project is an abécédaire of nonsensical prose poems. I’m mining Project Gutenberg for sentences that are stacked with words starting with a given letter of the alphabet, and then mashing these together into one text for each letter. The resulting “novel” will be 26 prose poems themed around each letter. Hat tip to Christian Bök, who did something similar, but much more ambitious, in his book Eunoia.

It's already done! See it here: https://github.com/MarkEEaton/nanogenmo2021

And a blog post about the project: https://kingsboroughlibtech.commons.gc.cuny.edu/2021/06/17/nanogenmo-2021/

Trivia Song Entry for NaNoGenMo 2021 Entry

I am writing a Node.js app that generates a song about Trivia along the lines of the 12 Days of Christmas.

Here is an example of the first few stanzas:

And now the song:
The Internet is a magical place in the knowledge space, so what did I learn today?
Did you know about Horton Hears a Who!?
It turns out that Horton Hears a Who!, by Dr. Seuss, is an allegory for post-World War 2 US occupation of Japan. Seuss, who was vehemently anti-Japanese during the conflict, had a drastic change of heart after visiting postwar Japan. He dedicated the book to a Japanese friend.
and if you don't believe me go to: https://en.wikipedia.org/wiki/Horton_Hears_a_Who!

So now I know about:
Horton Hears a Who!

The Internet is a magical place in the knowledge space, so what did I learn today?
Did you know about $3 bills ?
It turns out that The city of Detroit has its own local currency, fully backed by U.S. currency. It's printed in $3 bills and features the Spirit of Detroit over the Detroit Skyline.
and if you don't believe me go to: https://en.wikipedia.org/wiki/Detroit_Community_Scrip

So now I know about:
Horton Hears a Who! and,
$3 bills

The Internet is a magical place in the knowledge space, so what did I learn today?
Did you know about Bryan Cranston?
It turns out that Bryan Cranston, at the age of 12, encountered a young Charles Manson while riding horses with his teenage cousin. This happened about a year before Manson committed the Tate-LaBianca murders.
and if you don't believe me go to: https://en.wikipedia.org/wiki/Bryan_Cranston

So now I know about:
Horton Hears a Who! and,
$3 bills and,
Bryan Cranston

With loss of Eden

First time participating, got a couple of ideas to test the feasibility of!

Endless Ads: a solution for every problem, and a problem for every solution

In this project, I will be creating 50,000 words of advertisements. In these ads, the solution offered in the first ad becomes the problem in the second ad, which then gives a new solution, and so on (and on and on).

I'm working my way from easier to more difficult "novels" in this year's NaNoGenMo; this is my second project this month. I will be doing it in YeetWords, and I'm creating ad-style sentences myself and letting the program fill in the words. I was inspired in this case by being in the waiting room while my car was being fixed. I sat where I couldn't see the TV so as not to be distracted, but I could still hear it, including all the ads. Then I decided that ads could be the basis of a NaNoGenMo project.

might try participating

heh, this seems cool and i've been a bit bored, can't hurt to at least try to make smth i suppose

Intent of participation

Following on from my 2020 entry, I'd like to do something again for this year!

I'm not entirely sure what approach to take this time. I'm interested in maybe putting YarnSpinner to use somehow, and writing some scripts to pull information from the web.

I suspect the final output to be in the form of a simple game, but of course I'll have the resulting output linked to verify 50k words - if that's the route I take.

Intent to NOT participate

Yeah! Intent to NOT participate! Don't you see how clever this is, how utterly cunning? It's a commonplace that a would-be participant comes here and posts their "intent to participate" and November passes by and passes by and passes by and near the end of November, despite their intentions, they failed to get sufficient resources to finish their NaNoGenMo project. Well! By declaring my intent to NOT participate, November will pass by and pass by and pass by and near the end, despite my intentions, I'll fail to get sufficient resources to NOT finish my NaNoGenMo project. And, ergo alakazam, it will be finished and I will submit it!

What's that you say? It'll never work? One cannot expect such a cheap conceptual gag to deceive NaNoGenMo the Great and Terrible like that?

Oh right, I forgot. NaNoGenMo is NO place for cheap conceptual gags. NEVER.

Not no sarcasm, neither.

Storybook

Intent of project: combine paragraphs of text from different sources (project gutenberg books, reddit, wikipedia) to generate a story, where each paragraph somehow builds on the previous paragraph, e.g. by reusing or elaborating a keyword.

Throwin' my hat in the ring.

I'm probably going to revisit some older projects a bit eventually (Cosmic & Surrealist Zine, specifically), but for now, I'm training a neural net on Phillip K Dick novels.

deep novel incoming

@#Death in #Venice

"It is surely well that the world should know only the beautiful work, not also its origins, not its conditions of origin; for knowledge of the sources from which inspiration flowed to the artist would often confuse it, deter it, and so cancel out the effects of the excellent." (Thomas Mann, Death in Venice)

The novella Death in Venice represents static German lessons and a close connection between the author and his characters. This year marks the novella's 110th anniversary. Numerous translations, Reclam booklets, and meaningful attempts at interpretation lie in our attics to this day.

How it works

Summary: The classic novella is supplemented by a scraped hypertext and transformed by translation processes.

TiV

The code scrapes the first post with the hashtag #Venice on Instagram.The image description of this post is appended to the text of the novella "Death in Venice". Then the first hashtag of the post is selected, the first picture of this hashtag is scraped, appended to the text of the Original novella. And so on and so on :) Then a random sentence is selected. This is first translated into English, then into Japanese, and then back into German and then into English. This is done with a total of 10000 sentences. The first 50000 words make up the new novella.

Code
Own login data for Instagram required!

Code.txt

Output

#Death in Venice.txt

#Death in #Venice.odt

Generate your own adventure

First time for me, too. I hope, I'll find the time to come up with something nicce, but essentially, this is about really getting into the topic instead of just musing about it.

The idea is to generate a "choose your own adventure" style text, potentially using Ink Markup as a target format, Tracery as a (part of the) generation engine, and/or some fancy large language model for everything around that. The research part might take up most of the space, but hopefully I'll learn a lot and fail at the right challenges for future work. : )

The Chemistry of 2037

This will be less of a novel and more of a textbook. Specifically, I want to create a reference guide describing the elements and reactions in an artificial chemistry.

I already have a general idea for how the chemistry should work: pick some cellular automaton rule, and let it play out in a 5x5 toroidal space. When you do this, you might find that some configurations end up as fixed points, while some configurations fall into cycles. We can call the stable patterns "elements," and the unstable patterns... um, just "unstable". For example, this is an element in Conway's Game of Life (a 2x2 block which happens to wrap around the edges):

#...#
.....
.....
.....
#...#

You can "react" two elements A and B by placing them adjacent to each other; this might result in a 10x5 jointly stable configuration (call this a "compound"), and this compound might be irreducible, or it might decompose into two new elements. In the irreducible case, we say A + B → (AB), and in the reducible case, we say A + B → C + D.

As for the book itself: I'm not sure exactly how it should be structured. I could go with something a little like Theodore Gray's book Elements, which has a page-long, informal description of every element and its properties, along with images and a variety of more formal information (a few natural questions with this: how do I create images? how do I determine which formal properties are relevant? how can I create an informal description of these elements?) I'll probably rely more on reactions than elements for word count.

Dating App Chatbot screenplay

I haven't fully thought it out yet, but I'm thinking of doing a screenplay generated by two chatbots that are trained using my own dating app (Grindr, Tinder, Scruff) data if I can get it (GDPR request maybe)? I did something similar but much more basic last year, when I had my Grindr-themed lorem ipsum generator (which I created for NaNoGenMo 2019) talk to my Chatbot that was built on a third party library. I haven't completely thought it through yet, but this is my general direction currently.

Ambiguous questions and evasive answers

Watching Dark Shadows, I was struck by how much runtime in this show was fluffed up by dramatic-but-ambiguous questions and dramatic evasive-but-ambiguous answers. If people are willing to watch thousands of episodes of Dark Shadows, perhaps they will also be willing to read a novel-length work made up almost entirely of dramatic, moody, ambiguous sniping!

Here's the source: https://github.com/enkiv2/misc/blob/master/nanogenmo-2021/collinswood.py

(It's mostly simple tracery.)

Here's a novel-length output: https://github.com/enkiv2/misc/blob/master/nanogenmo-2021/shark_dadoes.md

Here's a sample:

Grotesque carvings peered out from the corners of the stone walls, leering in the flickering light. Miss Summers started. Loomis paced. Lord Eaten sighed.

Dr. Freudstein squinted. "What did he do?", asked Dr. Freudstein. Barnabas stormed out.

"Where is it?"

"Do you really want the answer to that question?"

Barnabas turned. 'What was that?'

Caroline glared. "Why did you do that?"

"Why?"

"I see."

"How can that be?" Miss Summers stared into space.

Miss Summers brooded. "Do you really want to know?"

"I'll drink to that." Loomis gasped.

Victoria paced. "Is he gone?"

"There's no use in asking."

Elizabeth sighed. 'What the hell is it?'

Barnabas glared. 'Is it done?'

Computer Product Catalog

I'm making some sort of computer product catalog. Each page will have a company and product name, a photo with overlayed text, and some sort of specs or description of the product.

I have written the code for company and product name generation, though I could use more seed words. I am using a set of photos from an old book of computer terminals that I scanned years ago. The next big part will be the product specifications/description generation, which I don't have a solid plan for yet. If I stick with my current plan to have 120 products, I will need to generate about 420 words of description per product.

I'm thinking maybe I will combine the photo and text into a markdown file, then somehow generate a PDF from that. I don't know how to do that yet.

Here's a sample of my work in progress:
%python3 productnames.py
Cyberomegaard Computer Programming 160
Sigmapetaphobe Disembarrassment
Teramebies Random-Access Memory
Picotebi Access Internetphyte
Psikappa Symbol
Gammanano Computer Speaker 690000000
Megakappa Party
Sigmaphi Cellular Automatonasis
Yottasigma Tommy Flowersoid 74

180101_0071
180101_0028

Toby Island

I definitely intend to participate! I have a couple of ideas. Not sure which one will work.

Limericks

This year I will be using YeetWords to create all my NaNoGenMo entries. I hope to create multiple entries over the course of the month. For this entry I will create 50,000 words of limericks.

Limericks have been implemented before in various different ways for NaNoGenMo by other participants as listed here. If I have accidentally left anyone out, please bring it to my attention by responding on this thread. I did my best to comb through previous years but I may have inadvertently missed something.

Here is a list of previous NaNoGenMo limericks by others:
2020: PhD Poetry by shamanoor
2018: A generative book developed CMU students by golanlevin
2017: The Edward Lear Limerick Generator by agladysh
2014: Long Form Poetry by CamdenSegal

My limerick entry will not seek to do anything unique or improved compared with previous work, rather its purpose is to illustrate the use of YeetWords in my simple use case. If you want to see some really good limericks and exciting implementations, you should look not at this entry but instead at any of the above-listed works. Personally I love the one by @shamanoor for its originality in data source, its execution, and the end result of the actual limericks.

concrete poetry style shaped text

I haven't done anything like this before, but this seems pretty fun so here goes:

Idea: Making a book where the pages are concrete-poetry-style shaped text. I care less about coherency and more about making something that looks cool visually, though I am going to try to give it a storyline.

Intended process:

  • Use concrete noun as topic for a single page (or possibly two page spread)
  • Find/make silhouette image of that noun
  • Pixelate the image into a grid for monospace characters
  • Pull/generate lines of words with the correct character length to fit that grid

To be determined:

  • Framing story/reason all the words are in shapes, and relatedly what shapes they are
    current possibilities:
    • video game journal that gives lore on all the items being picked up by the character, by possibly either a helpful tutorial character, the player character narrating their finds, or
    • horror journal entries trying to tell the character not to pick up these cursed objects, possibly because they trap you inside
    • mystery describing a bunch of items having gone missing/being stolen (in which case the text would be in the negative space around the empty object)
  • How I'll shape the images (Do I allow single character pixels? Do I try to find a perfectly square monospace font or allow for tall pixels? All caps? Do I draw the pixel art or generate from images or find some online?)
  • Whether to use jQuery/javascript or python (I'm more recently familiar with jQuery and will probably use it if I decide to pull lines from somewhere via APIs, but python's probably better for generatively pixelating images or outputting in PDF)
  • What format to output the book as

A Pickler for the Nowing Ones

A translator and generator to produce text in the style of A Pickle for the Knowing Ones (1802) by noted eccentric Timothy Dexter (1747-1806).

Timothy Dexter was a merchant and "entrepreneur" who married rich and had an unlikely providential career selling literal coals to Newcastle and other dubious business ventures.

"A Pickle for the Knowing Ones" is unique in its use of idiosyncratic and self-aggrandizing language. Dexter wrote phonetically, with no punctuation, in turn praising himself, castigating his enemies, railing at his creditors and debtors, and insulting his wife. The local community of Newburyport continued to reproduce his initial pamphlet for decades after his death.

Ime the first Lord in the younited States of A mercary Now of Newburyport
it is the voise of the peopel and I cant Help it and so Let it goue Now as
I must be Lord

In the second and subsequent editions of his pamphlet he responded to criticisms that he failed to use punctuation with the following epigraph:

fouder mister printer the Nowing ones complane of my book the fust
edition had no stops I put in A Nuf here and thay may peper and solt
itt as they plese

  ,, , , , , , , , , , , , , , ,, ,, , ,, , , , , , , , , , , , , , , ,,
  ,, , , , , , , , , , , , , , ,, ,, , ,, , , , , , , , , , , , , , , ,,
  ;; ; ; ; ; ; ; ; ; ; ; ; ; ; ;; ;; ; ;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;;
  ;; ; ; ; ; ; ; ; ; ; ; ; ; ; ;; ;; ; ;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;;
  :: : : : : : : : : : : : : : :: :: : :: : : : : : : : : : : : : : : ::
  :: : : : : : : : : : : : : : :: :: : :: : : : : : : : : : : : : : : ::
  ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
  ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
  !! ! ! ! ! ! ! ! ! ! ! ! ! ! !! !! ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !!
  !! ! ! ! ! ! ! ! ! ! ! ! ! ! !! !! ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !!

Project goals

Transform a modern text with ideological similarity to Dexter's business initiatives to a Dexter-like rendering.

The full source code repository contains the following utilities:

  • A dictionary generator, to iterate through the source of A Pickle for the Knowing Ones and generate a map of Dexter's spellings to standard English. The program should suggest words, skip known words, and store the dictionary.

  • A script, pickler.py, to take an input text and turn it into a Dexter-style rendering including punctuation treatment, appended to the end.

  • A programmatic downloader for the source data, filings.py to download SEC quarterly earnings reports from Telsa, Inc. and pass the source text into pickler.py.

Dictionary generator

This loops through the source text, breaking on word boundaries, and generates an ordered data structure like the following:

[original_word, spellchecked_word, is_spellchecked]

Initially the first two values are the same, and the last is false.

In the spellcheck pass, a text-based UI assists the transcriber by showing a window of context, with a selection of spell-checked options (via autocomplete), or the transcriber can type in a new word:

╭────────────────────────────────────────────────────────────────────────────────╮
│ put in A Nuf here and thay may pepper and solt itt as they plese    ,, ,                                                                   │
╰────────────────────────────────────────────────────────────────────────────────╯
? [solt]: salt

Any words added replace the spellchecked_word value in the dictionary, and flip the is_spellchecked bit. Re-running the program will resume at the last-checked word. On control-C (or at completion), the dictionary is saved.

(Several manual passes were later made over the dictionary both to correct OCR errors in the Gutenberg-derived scan, but also to add additional Dexter errors that were accidentally corrected by the OCR software, based on comparing with my original edition.)

The Pickler

This takes an input text, as a list of strings, remaps all words according to the dictionary generated above, and removes all punctuation. The punctuation is then appended to the end, as Dexter did.

A test suite generates the process on a few samples:

Source:

It is a truth universally acknowledged, that a single man (??) loves punctuation!!

Output:

Itt is a trouth universally acknowledged that a single man leovs punctuation ,(??)!!

filings.py

This downloads recent quarterly earnings reports (10-Q filings) from the EDGAR database provided by the US Securities and Exchange Commission using sec-edgar-downloader, parses the reports, then passes the output through the pickler.

EDGAR reports are in a bespoke SGML format with wrapped HTML; this extracts the HTML blob, passes the text nodes to pickler.py, updates them in replace, then writes out the transformed HTML.

Using the HTML-to-text capability of w3m then produces nicely-formatted plain text.

The output

66,369 words derived from three years of Tesla quarterly reports and amendments. Examples:

Between August 10 2018 & September 6 2018 nine purported stockholder class axxons were filed a
ganst Tesla & Elon Musk in connection with Elon Musks August 7 2018 Twitter post that he wos
considering taking Tesla private All of the suits are noue pending in the US District Cort fower
the Northern District of California Although the complaints vary in certain respects thay each
purport to assert claims fower violations of federal secourties laws related to Mr Musks statement
& seek unspecified compensatory damages & other relief on behalf of a purported class of purchasers
of Teslas secourties Plaintiffs filed ther consoalated complaint on Janeuarey 16 2019 & added ass
defendants the members of Teslas board of directors  The now-consolidated purported stockholder
class axon ass staed while the issue of selection of lead counsel ass briefed & argued befor the US
Cort of Appeals fower the Ninth Circuit  We beleuv that the claims have noe merit & intend to
defend a ganst them vigorously Wee are unable to estimate the potential lose or range of lose
associated with these claims
Our production vehicle fleet includes our Model S premium sedan & our Model X SUV which are our
highest-performance vehicles & our Model 3 a lower-priced sedan designed fower the mass markett Wee
continue to enhance our vehicle offerings with enhanced Autopilot options internet connectivity &
free over-the-air software updates to provide additional safety convenience & performance features
In March 2019 wee unveiled Model Y a compact SUV utilizing the Model 3 platform which wee expect to
produce ot hie volumes bi the eand of 2020 In addition wee have several future electric vehicles in
our product pipeline including Tesla Semi a pickup truck & a noue version of the Tesla Roadster
The trading price of our comon stock has bin highly volatile & could continue to be subject to wide
fluctuations in response to various factors sum of which are beyond our control Our comon stock has
experienced an intra-day trading hie of 38746 per share & a low of 23113 per share over the last 52
weeks The stock markett in ginrel & the markett fower technology companies in particular has
experienced extreme price & volume fluctuations that have offen bin unrelated or disproportionate
to the operating performance of thous companies In particular a larg proportion of our comon stock
has bin & mak continue to be traded bi short sellers which mak puts pressure on the supply & demand
fower our comon stock fouder influencing volatility in its markett price Public perception & other
factors outside of our control mak additionally impact the stock price of companies lik us that
garner a disproportionate degree of public attention regardless of actual operating performance In
addition in the past follering periods of volatility in the overall markett & the markett price 27
n particular companys secourties secourties class axon litigation has offen bin instituted a ganst
these companies Moreover stockholder litigation lik this has bin filed a ganst us in the past While
wee are continuing to defend such axxons vigorously aney judgment a ganst us or aney future
stockholder litigation could result in substantial costs & a diversion of our managements attention
& resources

and in closing, all punctuation extracted from the source text:

Segnetoure Page- Letter

((()))),,,,,,,,,,,,,,,,....:;“““””””””“““:....-,,,,,,,,,,,,,,,,)))((((
((((((((()))))))),,,,---..::;;“““””””““;;;:..---,,,,)))))))))(((((((((
(((()))),,,,,,,,,,,,,,,......:’““””””““;/.....,,,,,,,,,,,,,,,)))))((((
((),,,,,,,,,,,,-...........//::::‑’‑_:::///...........-,,,,,,,,,,,))(&
,,,,,,,,---......///////::::::::::::::::::::::///////.....---,,,,,,,,,
,,,,,,--..../////////:::::::::::::::::::::::::::://///////...--,,,,,,,
(()))*,,,,,,,,,,,,,,,-....:;]“““””””””“““[:.....,,,,,,,,,,,,,,,**))(((
(()))***,,,,,,,,,,,,....::[]‘’“““””””““’‘][::....,,,,,,,,,,,,,***))(((
(((())))*,,,,,,,,,,,,,,,,,,,../:]’”“’[//.,,,,,,,,,,,,,,,,,,,**))))((((
((((())))),,,,,,,,,,,---.......’“”””“’:......----,,,,,,,,,,,)))))(((((
(((())))),,,,,,,,,,,,,,.....:;’““””””““;:/.....,,,,,,,,,,,,,,))))(((((
(()),,,,,,,,,,,,-.........//_____‑’‑_____:/..........-,,,,,,,,,,,))((&
,,..///::::_______________________________________________::::://..,,,
,,,,--../::::___________________________________________:::://..--,,,,
,,,,-..//::::____________________________________________::://...-,,,,
,-///::::____________________________________________________:::///.-,
,.///::::___________________________________________________:::::///,,
,,-.///:::::_____________________________________________:::::///..-,,

Full 66,579 "novel": output.txt

More project detail, especially about the source editions used, in the repository README.

Intent to participate: SkiFree, but it's a survival horror novel [now at 50,000]

What is this?

A novel that is automatically generated through playing everyone's favorite Windows 95-era game, SkiFree.

Why is this?

I don't even know.

But seriously, why is this?

The direct inspiration was Mario's Big Adventure from last year. I'd been tossing around the idea of doing something like this with old Windows games since I started the Oregon Trail decompilation thing; the benefit of SkiFree is that it actually runs on Windows 10 without the need for a virtual machine. Also, it has a yeti.

How is this?

The code runs SkiFree (not included, but it is available for free in a compatible version), hooks that process, and captures the text printed to screen, i.e., the time/distance/speed/style points displayed in the top right of the game window. The heavy lifting is handled by the Deviare library, which was definitely not intended to be used for this.

To do: Actually turn that text into something resembling a narrative; guarantee and/or stop after 50,000 words.

Real optimistic thinking: Not depend on so many globals; hook other functions (using the text printed is somewhat limited in the info it conveys, but it's the most immediately usable)

Where is this?

Here. Currently it isn't much of a novel, all it does right now is print what's on screen; this is more a proof of concept to extract the text.

Invadr

Invadr

This event always feels like Christmas, my birthday, and finals week baked into a Swiss Roll-style cake. It's good; trust me.

For this year's NaNoGenMo, my idea is to create Invadr, a text masquerading as a set of dating profiles of Space Invaders. While I'm not so sure where and how the text will come along, there's easily a template to follow and something to do with text generation for the more qualitative portions of a typical profile (and there's apparently an anonymized OkCupid dataset on Kaggle).

I'd like to be able to eventually accessorize my space invaders with some generative pixel art -- that part provides the biggest challenge -- but, it's not insurmountable.

As ever, to finish is such sweet sorrow.

(This also constitutes my "possible" idea; usually I also come up with something impossible to do. I suspect this year is no different.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.