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

misunderstood- and misapplied- narratology #6

Open
MichaelPaulukonis opened this issue Oct 20, 2014 · 75 comments
Open

misunderstood- and misapplied- narratology #6

MichaelPaulukonis opened this issue Oct 20, 2014 · 75 comments

Comments

@MichaelPaulukonis
Copy link

body of declaration of intent

I haven't done as much text-twiddling this year as I had hoped. November may up-end that statistic.

end of body of declaration of intent

@MichaelPaulukonis
Copy link
Author

Things I'm fiddling with will be in https://github.com/MichaelPaulukonis/NaNoGenMo2014

@MichaelPaulukonis
Copy link
Author

Bloody hell, why does prep for this year involve staring at scans of photocopies of pages of Fortran V printouts?

@cpressey
Copy link

Hm! I don't know, but it just gave me an idea: use ImageMagick (or something) to make a cut-up novel out of a bunch of scanned images of pages of books and papers and magazines and such things.

@hugovk
Copy link
Collaborator

hugovk commented Oct 31, 2014

I made a simple Python wrapper around the Chronicling America API, full of scanned newspaper images. From each search result you get an id (eg '/lccn/sn86063756/1911-03-23/ed-1/seq-3/') which you can easily get the image (eg http://chroniclingamerica.loc.gov//lccn/sn86063756/1911-03-23/ed-1/seq-3.jp2).

https://github.com/hugovk/chroniclingamerica.py

@cpressey
Copy link

@hugovk Oh gosh. Availability of source materials! That is really tipping me in the direction of trying this.

@hugovk
Copy link
Collaborator

hugovk commented Oct 31, 2014

@cpressey The Library of Congress is also on Flickr, along with over a million images from the British Library, 2.6m Internet Archive Book Images and scores more also in Flickr Commons.

(I'll cross post this in #1.)

@MichaelPaulukonis
Copy link
Author

cut in at any intersection point! Those are awesome ideas!

Crap. I knew I'd get distracted.....

I took on the challenge of dealing with narrative because it seemed so daunting last year, and because so many things were interesting on the sentence-by-sentence level, but lost it after a paragraph.

Don't know as I'll get to one coherent narrative novel -- and I'm thinking tiny narraive stories, anyway -- but I'm enjoying the journey, once again.

@hugovk
Copy link
Collaborator

hugovk commented Oct 31, 2014

@MichaelPaulukonis If you can't get one 50k novel, you can always settle with a compendium of (say, 50 x 1k, or 500 x 0.1k) shorter stories :)

@MichaelPaulukonis
Copy link
Author

@hugovk That is the idea. I go into more detail here. In addition to leading me to learn about Vladimir Propp and revisiting Levi-Struass, I'm playing with grabbing characters, locations, and staring at manuals for software written in Fortan V back in the 1970s. Crazy fun!

Primary fuzzy text I'm staring at is Modeling Propp and Levi-Strauss in a Meta-Symbolic Simulation System. There's too much real theory to understand/boil-down for November, but it's leading me in interesting directions. Or getting me think about directions before discarding them.

@cpressey would have to have some sort of algo to "count" that it's ~= 50K words. Define an image as an average (assuming a certain threshold black:white pixels) word-count?

@cpressey
Copy link

cpressey commented Nov 2, 2014

@MichaelPaulukonis I can't speak for my co-participants, but when it comes to text + image, I'm content with human judgment instead of an algorithm: "does it feel 50,000-words-ish?" Or maybe just assume there are at least 100 words per page on average, and generate 500 pages... Anyway, I'm pleased to report that my initial experiment with cut-ups, though simplistic, has not been too disappointing.

I don't know Propp from a hole in the ground and my one experiment with narrative so far this year is mostly a joke I'm sorry to say, so I'll cease polluting your intent-to-participate issue with my nonsense :)

@MichaelPaulukonis
Copy link
Author

This is a discussion forum! All Most are welcome!

It's a funny joke (for certain, limited definitions of the term "funny"). I'm not one to throw stones; I've found digging through the old documents from the 70s filled with Fortan V code to be "fun". I'm digging too much into theory, though, I think. Need to balance it out. Especially since I've spent two weeks and have no text to show for it.

I've spent too much time on this, I suppose.

@MichaelPaulukonis MichaelPaulukonis changed the title declaration of intent misunderstood- and misapplied- narratology Nov 3, 2014
@cpressey
Copy link

cpressey commented Nov 3, 2014

Alright -- well, I'll try to keep my nonsense topical anyway.

I confess, I did a bit of "precoding" before November started too -- just little experiments to warm up, of course -- and since then have done only, um, more little experiments. I could set for myself the goal of doing one little experiment (on average) per day for the month, and then just pick one at the end and run it for 50,000 words. I don't know, maybe that's just not cricket, but it is appealing. At any rate, even though it's experiments rather than theory, I may be in the same "academic" boat as yourself -- finding no real purchase on the practical side of things yet.

And now I'm starting to be overwhelmed by seeing the amount of quality stuff that has already been produced this year, and it's still only the 3rd...

That narrative Makefile might not be entirely a geeky joke. The thought processes were obscure, but I'm sure at some point it involved a memory of this joke from The Simpsons:

Lisa Simpson: How can a hamster write mysteries?
Clerk: Well, he gets the ending first, then he writes backward.

Followed by the realization that there's already a (much-maligned) tool that does that.

@hugovk
Copy link
Collaborator

hugovk commented Nov 4, 2014

I could set for myself the goal of doing one little experiment (on average) per day for the month, and then just pick one at the end and run it for 50,000 words. I don't know, maybe that's just not cricket, but it is appealing.

I think that's a good idea. You never know what might produce something really interesting. You might find discover something along the way and decide to develop that a little longer.

@MichaelPaulukonis
Copy link
Author

Sample output with very tiny wordbank. Basically a proof-of-concept as I work out some functions and templates. Long way to go....


Holly Shiftwell lives in New Haven. Holly Shiftwell lives with Jaffar and PeeWee Herman.

Jaffar unexpectedly dies, leaving Holly Shiftwell devastated.

Spirit of 1776 gains information.

Spirit of 1776 attempts to deceive victim.

Holly Shiftwell unwittingly helps Spirit of 1776.

Holly Shiftwell leaves to walk the dog.

Holly Shiftwell is chased.

Spirit of 1776 is given a tongue-lashing by Holly Shiftwell.

Everything works out for Holly Shiftwell.

@MichaelPaulukonis
Copy link
Author

Filling in some more templates and the associated code to populate them.
I'm feeling that templating is a poor method.
But it's what I'm working with for now....


Allison lives in a valley. Allison lives with Jolly Green Giant, Ella, Spirit of 1776, Noah, and Hailey.

Savannah warns Allison to not talk to Makayla.

As soon as Savannah is gone, Allison runs off to find Makayla and has an interesting conversation.

Makayla attempts to deceive victim.

Allison unwittingly helps Makayla.

Allison and Makayla do battle.

Makayla is defeated.

Allison sets out for a valley.

Makayla is hung, drawn, and quartered by Allison.

Allison settles down and has parking tickets forgiven.

@MichaelPaulukonis
Copy link
Author

Getting adjectives and a larger wordbank for people, places and things (and verbs) is planned. For now, I'm trying to get a working structure going.

@enkiv2
Copy link

enkiv2 commented Nov 6, 2014

This one is amusing. Do you have a template?

On Thu Nov 06 2014 at 1:49:07 PM Michael Paulukonis <
notifications@github.com> wrote:

Getting adjectives and a larger wordbank for people, places and things
(and verbs) is planned. For now, I'm trying to get a working structure
going.


Reply to this email directly or view it on GitHub
#6 (comment)
.

@MichaelPaulukonis
Copy link
Author

The following files were used

proppian.fairy.tale.gen.1.0.htm
propp.js

templates.js

from https://github.com/MichaelPaulukonis/NaNoGenMo2014/tree/master/propp.gen

there are some css and other files required. as well as node modules that are installed manually (see scripts included at the bottom of the .htm file).

The template are primarily in the templates.js file, but some things (like interdiction and violation) are within propp.js.

My separation of concerns could be better. I'm feeling this out as I go along. Not sure what is needed, nor how to best do it. I do know I have not implemented things the way I will want them, but they are giving me output for now.

@cpressey
Copy link

cpressey commented Nov 7, 2014

I really like these generated synopses BUT every time I read one I can't help wondering who victim is.

Perhaps I am overthinking things?

@MichaelPaulukonis
Copy link
Author

Nope; "victim" hasn't been built out yet. A lot of the templates need background functions to set up characters and things that interact elsewhere.

There's one function/template that is about the hero overcoming their loss from the beginning of the story. This could be about a parent/relative/friend returning home, or acceptance of their death. But they'd need some programming to allow a proper response, instead of just dumb words.

So I'm building this slowly, getting pieces to work, revising other pieces as required. Also trying to understand the ideas behind the Propp schema.

I did build a package.json file last night, and put some more separation between the GUI and the generator.

There's also 3 kids and a wife in the background that need some detailing. That's not in the code, that's in my house!

@MichaelPaulukonis
Copy link
Author

Still haven't resolved the victim thing. Bigger fish have remained unfried while I work on some smaller fish.


Katherine lives in grass hut. Katherine lives with Kaylee, Sydney, Jaylin, Benjamin, William, Anthony, and Daniel. David, Nicholas, and PeeWee Herman are friends of Katherine.

Kaylee unexpectedly dies, leaving Katherine devastated.

Savannah warns Katherine to not talk to Jessica. Savannah introduces LinearMia to Katherine.

As soon as Savannah is gone, Katherine runs off to find Jessica and has an interesting conversation. Alexandra, the Spirit of 1776, Morgan, Joseph, Megan, the Easter Bunny, Phoenix, Dylan, Nathan, Allison, and Lily are in league with Jessica.

Jessica pays a visit to grass hut.

While skulking about grass hut, Jessica overhears some gossip about Katherine.

Jessica attempts to deceive victim.

Katherine unwittingly helps Jessica.

Jessica forcibly seizes LinearMia.

The need is identified (Lack)

Katherine discovers the lack.

Katherine chooses positive action.

Katherine leaves to walk the dog.

Katherine is challenged to prove heroic qualities.

Katherine responds to test.

Savannah gives Katherine Neural-Dynamic-Internal Deflector.

Katherine and Jessica do battle.

Katherine manipulates Neural-Dynamic-Internal Deflector to defeat Jessica.

Katherine sets out for grass hut.

Katherine is chased.

Jessica is hung, drawn, and quartered by Katherine.

Becomes a god, Katherine retires to a life of farming.

@MichaelPaulukonis
Copy link
Author

Things are moving slowly. It's a template engine. Which is somewhat dull. It's enforcing some rules that suggest how narrative "wonder tales" could play out. More NLP stuff could make it lively. perhaps.

Anyway. It's fun.


Anna works in a office near first floor in Goliath National Bank. Anna works with Sydney, Mia, Hailey, and Brienne of Tarth. S/he knows Joan of Arc, Allison, and Savannah from work.

Suddenly, it becomes as night. Rachel has shut off the power!

Anna leaves to cook the books.

Anna and Rachel do battle.

Through deft use of potted plant, Rachel is defeated.

Anna sets out for first floor.

Rachel is sent to the mailroom by Anna.

Anna settles down and is made CEO.

@MichaelPaulukonis
Copy link
Author

"Hello there, Allison" said Jessica.
"Hello there, yourself, Jessica" replied Allison.
"Well, you certainly are affectionate," remarked Jessica.
"Yes, I am," conceded Allison. "It's been said that I'm also testy!"
Allison warns Jessica to avoid East Lansing.
Allison introduces Alternate River to Jessica

Despite the warning, Jessica goes to East Lansing. Jasmine, a rather bad and dishonorable person, appears.

Jasmine kills Alexandra.

Allison gives Jessica Infinite Parameter.

Jessica and Jasmine do battle.

Through deft use of Infinite Parameter, Jasmine is defeated.

Jessica settles down and dates for a few years, but decides to remain single. Jessica still mourns the stinging loss of Alexandra.

@cpressey
Copy link

I like how this is getting steadily weirder while retaining something resembling a plot. Can't wait to see the undoubtedly Dragon Ball Z-like sequence that "do battle" will unfold into.

@enkiv2
Copy link

enkiv2 commented Nov 12, 2014

Do all these stories have exactly two characters? You could probably string
them together while keeping one character name, producing an epic wherein a
single character defeats many worthy foes.

On Wed Nov 12 2014 at 5:26:20 AM Chris Pressey notifications@github.com
wrote:

I like how this is getting steadily weirder while retaining something
resembling a plot. Can't wait to see the undoubtedly Dragon Ball Z-like
sequence that "do battle" will unfold into.


Reply to this email directly or view it on GitHub
#6 (comment)
.

@MichaelPaulukonis
Copy link
Author

I've been (trying/learning) to following the Vladimir Propp classification of fairy tales/Russian wonder stories. These have 2 primary characters (hero/villain). Then there's the hero-advisor (Allison in this case) and an assistant ("Alternate River" here; doesn't appear again, though). The original schema has family, and I've added acquantainces of the hero, not listed here, although Alexandra is killed and remembered. The villain has minions (and family) (not in the original model).

The battle will quite possibly involve family, acquaintances and minions.

I'm working on too many pieces of this at once, in small dribs and drabs. But the superstructure is coming together!

The "need for dialogue" came at me last night and I whipped it out. It's pretty awful, but serves as a placeholder for future expansion, and as an early test for the description adjectives I had just loaded on each character. I almost had every member of the family talk to each other; that would have been interminable!

@enkiv2 That's an interesting idea. Not where I was planning on going with this, but I could see tweaking it to go in that direction......

@MichaelPaulukonis
Copy link
Author

Starting the battle code pushed me in other directions. Whatever. It's in-progress!


Kayla the Cautious lives in a small house near Oblivion in Talexico. Kayla lives with Practical Megan, Julia the Respectful, Sensitive Anna, Idle Joan of Arc, Candid Natalie, Makayla the Logical, and Unwilling Jessica. Kaylee the Enterprising, Ridiculous Sydney, Haley the Earnest, Unguarded Lauren, Jennifer the Local, Morgan the Deep, Kaitlyn the Illogical, Jasmine the Peevish, Allison the Surly, Hailey the Content, Katherine the Immodest, and Smart Victoria are known to Kayla.

Joan of Arc unexpectedly dies, leaving Kayla devastated. "Bye!" said Kayla to nobody in particular.

@MichaelPaulukonis
Copy link
Author

Doing some sideways study of Nick Monfort's Curveship.

@MichaelPaulukonis
Copy link
Author

Something that isn't that big of a deal, but the default gender for the html-runner (it's not headless (yet!)) is female. This is partly because I get the feeling that most generative-narrative examples I've seen involve male protagonists, with females as bystanders, victims, people to be interacted with. Making the hero/villain female by default (can be set to male, or randomized) was my reaction to this. I should note that it is a feeling, a sense: I haven't done any rigorous analysis to back this up.

@MichaelPaulukonis
Copy link
Author

Hey, thanks for the mad Propp-props, as well as calling it "less facile."

Maybe. Although templating seems... easy. Compared to finding related words and concepts, and stitching them together unrandomly.

@ikarth
Copy link

ikarth commented Nov 20, 2014

At least for me, my own work feels more convincing the more its out of my direct control: I know the trick, as it were. Other people's work retains some of that sparkle, even when I know how they did it, because I didn't go through the motions myself.

There have been a lot of major research projects that have turned out generated text that's less convincing than this one is producing.

One of the things I noticed last year was that the strongest works tended to have a solid concept behind them. Having a theme to relate back to helped even the hiccups in the system make sense. So picking one technique and sticking to it seems like a strong statement.

Of course, "we're going to try as many techniques as possible" also counts as a single, strong technique.

@MichaelPaulukonis
Copy link
Author

Two ideas:

  1. "No Exit" - characters enter a room and introduce themselves. Existing characters say hello. ALL OF THEM. New char asks about an exit? Existing characters say there is none. ALL OF THEM. Later, rinse, repeat until 50K words are reached.
  2. [Redacted Novel], where selected words and passages have their non-whitespace characters replaced with the the unicode character black vertical rectangle? It was the best of █████, it was the █████ of times; Suggested by one of my comments in Limited Vocabulary Writing #108.

@DHDPIC
Copy link

DHDPIC commented Nov 21, 2014

Yes I really like the idea of a redacted story; visually and contextually interesting with a lot of associations. Earlier today I was actually thinking about something like this as a follow on to the project I put up this afternoon!

@ikarth
Copy link

ikarth commented Nov 21, 2014

That sounds like a ███████████ idea.

@MichaelPaulukonis
Copy link
Author

first No Exit text.

@DHDPIC
Copy link

DHDPIC commented Nov 21, 2014

Ha ha, nice. So you ended up with 199 characters to get to the 50k number of words?

@MichaelPaulukonis
Copy link
Author

Only 100 characters to make > 50K words.

I've got a word-count function, but haven't implemented it as the loop-controller.

@cpressey
Copy link

first No Exit text.

See, this is a perfect example of what I was just saying. C'est vrai avant-garde.

@MichaelPaulukonis
Copy link
Author

And now here is the first WONDER TALE NOVEL

It's preliminary, and more of a proof-of-concept of node.js running, word-count looping, and file-writing.

I want to make some unit-tests, I think, because I've got some vicious bugs that I can't track down.

Eh, who knows. Lots of other fish to fry by the end of the month....

@MichaelPaulukonis
Copy link
Author

Progress is slow, and I'm making a list of things I can, sadly, skip in order to get this somewhere personally acceptable by the 30th (swappable templates and wordbanks ain't happening [yet], conversations may never get better, magical items are too simplistic, and locations are less than rough).

Punishments are being meted out a bit better, for some gruesome definitions of better.

I really need to focus on obtaining a random selection of "functions", then go back to playing with hero's family, battle, travel, and false-hero.

What I'd REALLY like is for things to be more .... semantic. Villain adjectives have something to do with their fantastic appearance (oh, that was added. The villain could be a bear, or a swarm of ants, for instance), their actions and method of punishment have some echoes as well. This would help things hold together better.

But that just ain't gonna happen this month.

Maybe in the spring. I hope I keep playing with this.


Katherine of Orange County

Katherine remembered the Temporal-Phase Shield she had been given before.
Irritable Katherine manipulated the Temporal-Phase Shield to vanquish Victoria.

Seeing that Victoria was perfectly enfeebled, Irritable Katherine snatched from her her keen faulchion, and with a single blow struck off her head. Behind her voices began to cry: "Strike again! strike again! or she will come to life!" "No," replied Irritable Katherine, "a hero's hand does not strike twice, but finishes its work with a single blow." Irritable Katherine said, "Into the bottomless pit with you! Out of sight, accursed one!" God did it to punish Worthless Victoria for her great worthlessness.

Allison was exposed.

So Irritable Katherine hung, drawn, and quartered Repulsive Allison. and they placed her in a coffin, and carried it to church, whereupon it burst into horrible flames, singeing the hands of those who dared carry it. Repulsive Allison sits to this day in the pit - in Tartarus.

This may sound fantastic, but it all happened exactly as I have told you.

@cpressey
Copy link

On the bright side, the occasional synopsis-like statements interspersed lend it an interesting flavour, like the storyteller is glossing over parts that are, perhaps, just too painful or distasteful to re-tell.

@MichaelPaulukonis
Copy link
Author

Thanks. They do work nicely in a short story. But when 25-40 of them are strung together to make 50,000 words? Repetitive.

But, like I said, I trying to pick my battles (ooooh, loook, a shiny template that can be tweaked!).

@MichaelPaulukonis
Copy link
Author

Hunh. A recent novel run produced 179 stories in order to get to 50K words. OUCH.

list of titles

@MichaelPaulukonis
Copy link
Author

has titles like THE TALE OF SIDNEY AND ITS ADVENTURES because Sidney is a neuter name, and the neuter possessive was used.

I think I'm going to ditch this. Neuter names will get male/female at random. :::sigh:::

SO MUCH FOR (cheap) INCLUSIVITY.

@hugovk hugovk added the preview label Nov 27, 2014
@MichaelPaulukonis
Copy link
Author

There have been minor fixes -- like removing weird neuter things that didn't work, added some words to templates, but nothing major. Battle and journey and family are still still-born. The whole family has had colds this week - and while colds seem minor, 5 people, including a 6-month-old baby having one at the same time is draining. I've got a lot of plans for this, but not much will happen by the end of the month. I'll post a "novel" today or tomorrow, and that's it. :::sigh:::

A bigger question is -- what could I have done differently? The incomplete list is all about templating. Could I have gathered texts that "fit" the propp model (which again, is descriptive, rather than proscriptive, and thus a "bad" model)?

Since the main system allows for switching templates and wordbanks, I can still use this framework to explore other avenues in the future.

A side-though, back towards templating, is using concept-networks, so that characters and their adjectives etc. more guide their actions, powers, encounters. Moist villainy involves water, etc.

We shall see.

I used some new libraries and techniques, and did a lot of thinking about narrative -- something I'm usually allergic to.

So: good month.

@MichaelPaulukonis
Copy link
Author

This is it

Given that I have spent the better part of the past 26 years working on anti- and a- narrative texts, I'm pleased with what I have done.


I think I have a sinus infection.

@hugovk hugovk added completed and removed preview labels Dec 1, 2014
@cpressey
Copy link

cpressey commented Dec 1, 2014

Congrats (on the finish, not the infection, obviously!)

Could I have gathered texts that "fit" the propp model (which again, is descriptive, rather than proscriptive, and thus a "bad" model)?

Again this brings to mind this -- it would be not-too-difficult for a person to look at a scene in a fairy tale and try to assign one of Propp's functions to it, and then lift it for use as a template -- but getting a computer to do that? Eek.

So very inclined to try writing some code that just reads a novel as best it can. #maybenextyear

@ikarth
Copy link

ikarth commented Dec 1, 2014

This is surprisingly effective at inventing new stories.

@MichaelPaulukonis
Copy link
Author

Something that looks like a bug, but is actually uncompleted code is the folllwing:

JAYDEN THE FAIL AND CHRISTIAN THE EARNEST

A long time ago, in the distant country of Middle Earth, Christian
lived in a shed near Leninsk-Kuznetsky.

Christian lived with Anthony the Judgmental, Artistic Kai, Peyton the
Irascible, Cameron the Suspicious, Guarded Kayden, and Chic Micah.

Noah the Judgmental, Jacob the Churlish, Exacting Jonathan, the Spirit
of 1776 the Clean, and Sulky Harley were friends of Christian.

Sooner or later, the Spirit of 1776 died. It happens to everyone
eventually. It happened to him sooner.

"Oho," said Christian the Earnest to nobody in particular.

There came into the region of Leninsk-Kuznetsky a very fail rabbit
known as Jayden.

While skulking about Leninsk-Kuznetsky, Jayden the Fail overhearded
some gossip about Christian.

Jayden attempted to deceive victim.

Christian unwittingly helped Jayden the Fail.

Christian left shed to find a hammer.

Christian was chased.

Such behavior could not be tolerated: Christian fell upon Cameron the
Greedy, bound him with ropes. and that was that.

Christian settled down and married. Years passed, but Christian still
mourned the stinging loss of the Spirit of 1776 the Clean. After that
he lived long and happily, survived to a great age, and then died
peacefully.

This may sound fantastic, but it all happened exactly as I have told
you. 

The person killed is not the villain that has been introduced, so who the heck is it?

It's a false-hero/false-friend that has not been introduced previously. In addition, with the absence of villain-punishment/defeat, the villain should have been the false-friend all along. This was on the massive TODO list.

@MichaelPaulukonis
Copy link
Author

I'm starting up an out-of-season email group @ http://groups.google.com/group/generativetext.

Before I post it as a regular issue, anybody see any issues with the group as of now (it's now public).

Also there is last year's (nearly) empty https://github.com/TextGenTex/TextGenTex

@MichaelPaulukonis
Copy link
Author

For anybody still watching at home, I'm moving the generator to a solo repo @ https://github.com/MichaelPaulukonis/malepropp

The web-based interface is available at http://michaelpaulukonis.github.io/malepropp/

Thanks for another fantastic year!

@cpressey
Copy link

It's somehow even better with the UI. Maybe because it makes me wonder exactly what all those switches are doing under the hood...

@MichaelPaulukonis
Copy link
Author

The UI has actually been there since the beginning, with the node.js version hacked into shape in late-November. It should have been the other way around, but like a cowboy, I rustled up somebody else's code and started hacking at it before I understood it.

There are even more switches that could be made available, I think. They just haven't been coded up yet.

And the "neuter" gender doesn't work so well for the pronouns and posessives and whatnot, so whenever neuter is actually selected, a name from the neutral list is used, but a gender is randomly assigned. :::sigh::: Best of intentions, and all that.

Now that I've made it public, I've done more work on cleaning up the interface, and there is more I'd like to do.

As well as a ton of internals. :::sigh::: Unit-tests, for one thing. So I don't have to keep hammering at the UI to find the (randomly selected via the UI) one squirrely scenario that keeps throwing errors.

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

6 participants