r1: true passClues: '' set1: ['Blond wood','Brutalist concrete','Oak paneling'] plug1: set1[Math.floor(random.fraction*set1.length)] set2: ['mangled chair-desks','ranked benches','deserted pews'] plug2: set2[Math.floor(random.fraction*set2.length)] set3: ['psychic traces','faint tang','lingering aura'] plug3: set3[Math.floor(random.fraction*set3.length)] set4: ['boredom and befuddlement','angst and ennui','pointless speculation'] plug4: set4[Math.floor(random.fraction*set4.length)] set5: ['battered podium','spavined lectern','teacher&apos;s desk'] plug5: set5[Math.floor(random.fraction*set5.length)] set6: ['clove cigarette','pyre of old papers','vile cigar'] plug6: set6[Math.floor(random.fraction*set6.length)] set7: ['smolders','gutters','smokes itself out'] plug7: set7[Math.floor(random.fraction*set7.length)] set8: ['old blackboard','delaminated whiteboard','ancient wall slate'] plug8: set8[Math.floor(random.fraction*set8.length)] set9: ['a good cleaning','some timely maintenance','a serious scrub'] plug9: set9[Math.floor(random.fraction*set9.length)] -- <p style="background-color: #AAAAAA; color: #FFFFFF; font-size: 15pt; font-weight: 700; padding-left: 5px"> Lecture Hall </p> <p> {plug1}, {plug2}, {plug3} of {plug4}. At the {plug5} a {plug6} {plug7}. The {plug8} could use {plug9}. You can make out some words there: </p> {embed passage: 'cluetrain'} <div style="font: 9pt/14pt Verdana; font-weight: 700; color: #BB0000; padding-left: 30px;"> {passClues} </div><br/> --- <div style="text-align: center"> [[ahead->3 Writers Room]] &middot; [[up->6 Top of the World]] &middot; [[behind->4 Lunch Room]] &middot; [[down->5 Scary Basement]] {embed passage: 'tracker'} </div> r5: true passClues: '' set0: ['','',''] plug0: set0[Math.floor(random.fraction*set0.length)] set1: ['An ancient lightbulb','A rickety fluorescent','A forlorn nightlight'] plug1: set1[Math.floor(random.fraction*set1.length)] set2: ['flickers once','feebly strobes','flares briefly'] plug2: set2[Math.floor(random.fraction*set2.length)] set3: ['dies horribly','gives up the ghost','surrenders to darkness'] plug3: set3[Math.floor(random.fraction*set3.length)] set4: ['monitory','uncanny','phantasmic'] plug4: set4[Math.floor(random.fraction*set4.length)] set5: ['canopic jars','shamanic relics','stones of dubious virtue'] plug5: set5[Math.floor(random.fraction*set5.length)] set6: ['eldritch apparatus','otherworldly contraptions','astral manifolds'] plug6: set6[Math.floor(random.fraction*set6.length)] set7: ['golf bags','unspeakable appliances','a cleaner of vacuum'] plug7: set7[Math.floor(random.fraction*set7.length)] set8: ['an old cigar','a dying shrubbery','an unvoiced syllable'] plug8: set8[Math.floor(random.fraction*set8.length)] set9: ['cries out','intones','wails'] plug9: set9[Math.floor(random.fraction*set9.length)] set10: ['GO BACK','TAKE FLIGHT','BEGONE'] plug10: set10[Math.floor(random.fraction*set10.length)] set11: ['grisly hand','flaming wand','hovering presence'] plug11: set11[Math.floor(random.fraction*set11.length)] set12: ['skin of reality','membrane of spacetime','surface of existence'] plug12: set12[Math.floor(random.fraction*set12.length)] -- <p style="background-color: #AAAAAA; color: #FFFFFF; font-size: 15pt; font-weight: 700; padding-left: 5px"> omygosh it's the SCARY BASEMENT! </p> <p> {plug1} {plug2} then {plug3}. The room is filled with {plug4} shapes... {plug5}... {plug6}... {plug7}. A voice like {plug8} {plug9}, "{plug10}!" You are about to do just that when a {plug11} appears, scrawling words across the {plug12}: </p> {embed passage: 'cluetrain'} <div style="font: 9pt/14pt Verdana; font-weight: 700; color: #BB0000; padding-left: 30px;"> {passClues} </div><br/> --- <div style="text-align: center"> [[upstairs->3 Writers Room]] &middot; [[abovedecks->1 The Lecture Hall]] &middot; [[overhead->4 Lunch Room]] &middot; [[up yonder->2 Committee Room]] {embed passage: 'tracker'} </div>r2: true passClues: '' set1: ['admit','reveal','expose'] plug1: set1[Math.floor(random.fraction*set1.length)] set2: ['owlish mug','massive forehead','plausible kisser'] plug2: set2[Math.floor(random.fraction*set2.length)] set3: ['Deputy Assistant Secretary','Acting Special Assistant for Concept','Shadow Minister for Culture and Navigation'] plug3: set3[Math.floor(random.fraction*set3.length)] set4: ['Private meeting','Closed session','Nothing to see here'] plug4: set4[Math.floor(random.fraction*set4.length)] set5: ['she informs you','they allege','he demurs'] plug5: set5[Math.floor(random.fraction*set5.length)] set6: ['sonorous voices','persons unknown','the high and mighty'] plug6: set6[Math.floor(random.fraction*set6.length)] set7: ['saying','muttering','exclaiming'] plug7: set7[Math.floor(random.fraction*set7.length)] -- <p style="background-color: #AAAAAA; color: #FFFFFF; font-size: 15pt; font-weight: 700; padding-left: 5px"> Committee Room </p> <p> The door opens just enough to {plug1} the {plug2} of the {plug3}. "{plug4}," {plug5}. Inside you hear {plug6} {plug7}: </p> {embed passage: 'cluetrain'} <div style="font: 9pt/14pt Verdana; font-weight: 700; color: #BB0000; padding-left: 30px;"> {passClues} </div><br/> --- <div style="text-align: center"> [[ahead->3 Writers Room]] &middot; [[down->5 Scary Basement]] &middot; [[behind->4 Lunch Room]] &middot; [[up->6 Top of the World]] {embed passage: 'tracker'} </div>r3: true passClues: '' set1: ['head writer shouts','associate producer rumbles','creative director fumes'] plug1: set1[Math.floor(random.fraction*set1.length)] set2: ['SCRAM KID','GO PLAY IN THE STREET','TAKE A HIKE'] plug2: set2[Math.floor(random.fraction*set2.length)] set3: ['tosses a wad of ill considered passages','hurls a heap of contradictory drafts','launches a curiously shaped fiction'] plug3: set3[Math.floor(random.fraction*set3.length)] set4: ['in your general direction','at your head','toward your person'] plug4: set4[Math.floor(random.fraction*set4.length)] set5: ['CAN&apos;T YOU SEE WE&apos;VE GOT AN I.F. TO FINISH HERE?','THIS THING IS NOT GONNA CODE ITSELF!','WE GOT LINKS TO WRITE UP IN HERE!'] plug5: set5[Math.floor(random.fraction*set5.length)] set6: ['maniacal','unhinged','unstable'] plug6: set6[Math.floor(random.fraction*set6.length)] set7: ['shouting','crying','chanting'] plug7: set7[Math.floor(random.fraction*set7.length)] -- <p style="background-color: #AAAAAA; color: #FFFFFF; font-size: 15pt; font-weight: 700; padding-left: 5px"> Writers Room </p> <p> When you attempt to peek in, the {plug1}, "{plug2}" and {plug3} {plug4}. "{plug5}" As the door slams you hear {plug6} voices {plug7}: </p> {embed passage: 'cluetrain'} <div style="font: 9pt/14pt Verdana; font-weight: 700; color: #BB0000; padding-left: 30px;"> {passClues} </div><br/> --- <div style="text-align: center"> [[up->6 Top of the World]] &middot; [[behind->1 The Lecture Hall]] &middot; [[down->5 Scary Basement]] &middot; [[ahead->2 Committee Room]] {embed passage: 'tracker'} </div>r4: true passClues: '' set1: ['nobody in here has any clothes on','nobody has thought to dress for lunch -- or at all','everybody here is going super-commando'] plug1: set1[Math.floor(random.fraction*set1.length)] set2:['mortifying lack of bareness','overdressed self','scandalous attire'] plug2: set2[Math.floor(random.fraction*set2.length)] set3:['The lunch is always naked','Some people can&apos;t handle the truth','In your dreams'] plug3: set3[Math.floor(random.fraction*set3.length)] -- <p style="background-color: #AAAAAA; color: #FFFFFF; font-size: 15pt; font-weight: 700; padding-left: 5px"> Lunchroom </p> <p> For some reason {plug1}. Guess we forgot to tell you it's a Naked Lunchroom! All eyes stare at your {plug2}. As you back out the door you hear people muttering, "{plug3}." Also: </p> {embed passage: 'cluetrain'} <div style="font: 9pt/14pt Verdana; font-weight: 700; color: #BB0000; padding-left: 30px;"> {passClues} </div><br/> --- <div style="text-align: center"> [[down->5 Scary Basement]] &middot; [[behind->1 The Lecture Hall]] &middot; [[up->6 Top of the World]] &middot; [[ahead->2 Committee Room]] {embed passage: 'tracker'} </div>r6: true passClues: '' set1: ['revolving restaurants','eye-in-the-sky lounges','corporate mega-skyboxes'] plug1: set1[Math.floor(random.fraction*set1.length)] set2: ['the bridge of some uncanonical starship','an extraterrestrial call center','an Illuminati control pod'] plug2: set2[Math.floor(random.fraction*set2.length)] set3: ['waitroid human','hosting unit','hospitality droid'] plug3: set3[Math.floor(random.fraction*set3.length)] set4: ['drink order','soulprint','measurements'] plug4: set4[Math.floor(random.fraction*set4.length)] set5: ['console','crew station','mediatronic interface'] plug5: set5[Math.floor(random.fraction*set5.length)] set6: ['tabs on the LCARS','knobs and sliders','flashing red indicators'] plug6: set6[Math.floor(random.fraction*set6.length)] set7: ['dematerialize the Third Ward','trigger a massive baryon cascade','jettison the city&apos;s antimatter core'] plug7: set7[Math.floor(random.fraction*set7.length)] -- <p style="background-color: #AAAAAA; color: #FFFFFF; font-size: 15pt; font-weight: 700; padding-left: 5px"> Top of the World </p> <p> It's a cross between one of those {plug1} and {plug2}. The {plug3} takes your {plug4} and shows you to a {plug5}. You idly thumb some {plug6} and {plug7}. Diners at nearby tables murmur: </p> {embed passage: 'cluetrain'} <div style="font: 9pt/14pt Verdana; font-weight: 700; color: #BB0000; padding-left: 30px;"> {passClues} </div><br/> --- <div style="text-align: center"> [[downward->3 Writers Room]] &middot; [[beneath->2 Committee Room]] &middot; [[under->4 Lunch Room]] &middot; [[below->1 The Lecture Hall]] {embed passage: 'tracker'} </div>rt: ["CROSBY PARTNER NOT NASH","THING WITH FEATHERS","FAIREY OBAMA","BYGONE FUNNYMAN BOB","AND CHANGE","FINGERS CROSSED","I FEEL LUCKY","LOOK, A SWALLOW!","BRIGHTENING SKIES","OPPOSITE OF NOPE","WHAT YOU NEED WHEN OUT OF ROPE","PANDORA SPECIALTY","BOTTOM OF THE BOX","IT'S ALIVE!","PONTIFICAL RHYME","CLINTONIAN HOMETOWN","'A VERY UNRULY EMOTION' - G. STEINEM","PRICEY DIAMOND","SPRINGS ETERNAL","IN THE HUMAN BREAST","FAITH N CHARITY N THE OTHER 1","CAPE OF GOOD","FOR THE BEST PREPARE FOR THE WORST","CROSSING HEART AND","CHICAGO HAD IT ONCE","NEITHER GREAT NOR WHITE"] passClues: passClues + rt[Math.floor(random.fraction*rt.length)] + '<br />' -- wt: ["SEVENTH OF SIX","IF YOU CAN READ THIS","THIS IS NOT A CLUE","TIME FADES AWAY","IS TIME EMITS I","I IS ANOTHER","YOU ARE NOT READING THIS","THE MOST SUBLIME ACT","EXPECT POISON FROM STANDING WATER","YOU ARE NOT THE TARGET","THIS IS THE WAY THE WORLD BENDS","THE HIGH COST OF ANTIMONY","RHINOCEROS IS MY PROFESSION","WORD THAT TIME FORGOT","CENTRIPETAL","RHOMBOID","HOLD FOR THE NEXT ROBOCALL","TORVEX","CREPUSCULE WITH NELLY","BANDICOOT'S DESIRE","SILENT SERVIETTE","DIAGRAM OF RADIANCE","ANAGRAM OF ITSELF","A DOOR IS A JAR","JUST BECAUSE YOU SAY SO","ONE IS NEVER TOO YOUNG FOR BISCUITS","ALL MEN ARE PORTALS","TWO WOULD MAKE A CRAB","YOU ARE CATCHING A CRAB","UNRECOGNIZED PREPOSITION","ITALIA IRREDENTATA","TIMEWARDS","WE SAY HELLO","GRAND MAL RECIPE","WELTSCHMERZENLEBENSDIENST","BALDY MISPELLED","COULD HAVE BEEN SOMEONE","WELL SO COULD ANYONE","SO NEVERMIND","NOW THIS","WORLD WITHOUT AND","HAMSTRING OF THE WEST","NOT STIRRED","THE OPPOSITE OF DIRT","MAN OF PARTS","WOMAN OF THE WEST","CHANGE OF SCENERY","ACT III SCENE I","PRINCE OF POLAND","FEARING AID","MALICIOUS TWITCHERY","BAD TOUCH","WORST OF SEVERAL","GOOD DOG","VENDING MARINES","HOLE CLOTH","FICTIVITY","MEMORABLE FANCY","LONG, STRANGE TRIP","PAY NO ATTENTION TO THAT MAN","LAND OF 1000 CHANCES","MEXICAN BAKE OFF","THE ABILITY TO SWING","COLOR OF A SKY","BANNED CRAYOLA","PONTIFICAL DITTY","HER, TO THEM THAT KNOW","WHAT A MULE BELIEVES","HOLE IN SKY","GIFT FOR THIRD ANNIVERSARY","EXTRAJUDICIAL","BLATANT, CHROMATIC","INTOLERANT WITTICISM","ET CETERA, ETC.","WHOLE BELOW THE WATERLINE","JAMBS KICKED OUT","NOBODY HOME","MORPH ON DEMAND","PLASTICULE","CONFIGURED FOR DUE DENSITY","THE ENCUMBRANCE OF A CIRCLE"] passClues: passClues + wt[Math.floor(random.fraction*wt.length)] + '<br />' -- r: random.d6 set1: ['outside in','below the surface','on the inward side'] plug1: set1[Math.floor(random.fraction*set1.length)] set2: ['reaching the heart of the matter','coming to core','getting down to it'] plug2: set2[Math.floor(random.fraction*set2.length)] set3: ['at the finale','ready for the test','all done but the guessing'] plug3: set3[Math.floor(random.fraction*set3.length)] -- <p style="background-color: #AAAAAA; color: #FFFFFF; font-size: 15pt; font-weight: 700; padding-left: 5px"> Inside the Box </p> So here we are... {plug1}... {plug2}... {plug3}. Moment of truth -- or the other thing: ~~**what's in the box?**~~ Use the cycling link below to choose your answer, then proceed. <div style="font: 12pt Verdana; font-weight: 700; color: #BB0000; text-align: center"> [if r===1] {cycling link for: 'answer', choices: ['PUZZLE','NOTHINGNESS','ILLUSION','UNKNOWING','SECRECY','CONCEALMENT','HOPE']} [cont'd] [if r===2] {cycling link for: 'answer', choices: ['VOID','EMPTINESS','VACANCY','DISAPPOINTMENT','FRUSTRATION','HOPE','NULLITY']} [cont'd] [if r===3] {cycling link for: 'answer', choices: ['DREAMS','BEASTS','SEX','DARKNESS','HOPE','ENIGMA','TRAGEDY']} [cont'd] [if r===4] {cycling link for: 'answer', choices: ['YOU','THEY','ME','HOPE','NOBODY','EVERYBODY','ANYBODY']} [cont'd] [if r===5] {cycling link for: 'answer', choices: ['ROPE','DOPE','HOPE','ROPE','POPE','SOAP','CANTELOUPE']} [cont'd] [if r===6] {cycling link for: 'answer', choices: ['APORIA','HOPE','ALEA','AGON','ILINX','MIMESIS','LUDUS']} [cont'd] </div> <div style="text-align: right; font-weight: 700"> [[Are you right?->REVEAL]] </div> [if r1===true && r2===true && r3===true && r4===true && r5===true && r6===true] <p style="text-align: center"> [[inward ->INSIDE]] </p>r1: false r2: false r3: false r4: false r5: false r6: false passClues: '' -- <div style="text-align: center"> {embed image: 'title.png', alt: 'Title image: box with twine'} </div> <div style="text-align: center"> [[About the Work]] &middot; [[Begin ->1 The Lecture Hall]] <br /> </div>[if answer==='HOPE'] <div style="text-align: center"> {embed image: 'finish.png', alt: 'Swallow in flight'} </div> [else] The box retains its mystery. (Hint: The first clue may be useful. Unless it's the second.) <div style="text-align: right"> [[Play on...->And... box]] </div> March-April 2020 Elaborated version of a project for the last Practical chapter of "Twine Box" is just what the name says: a box of a riddle of a story, made with the Chapbook story format on the Twine platform. It explores the intersection of geometry and fiction, also Nick Montfort's fundamental insight that stories of this sort are basically riddles. The places of the story articulate as the six sides of a box. In each place you will receive a set of clues. Once you have visited all six places once, a link is offered to a seventh locale, Inside the Box, where you are asked to solve the riddle. You can put off taking this link as long as you like, if you need more time with the clues. Some pointers: - However much they may seem to work together, the clues are individual statements delivered in random order. - There is only one solution to the riddle. <div style="text-align: right"> [[And... box]] </div> <div style="text-indent: 2em"> [if random.coinFlip] {embed passage: 'wrong'} [continued] {embed passage: 'right'} [if random.coinFlip] {embed passage: 'wrong'} [continued] [if random.coinFlip] {embed passage: 'wrong'} [continued] </div>