#still needs a bit of editing but i think theoretically ready to post sometime in the next week?
Explore tagged Tumblr posts
Text
hm i might have. almost finished writing something. stay tuned.
#still needs a bit of editing but i think theoretically ready to post sometime in the next week?#im still tweaking word choice in places and it needs at least a couple more read throughs before im satisfied#but like. it exists???#also notably this is NOT the asoryuu fic from hell ive mentioned in the past#unfortunately#but it did help me work out some characterization issues i was running into in that fic!#i would describe this one as uhh#2.5k of me trying to figure out why kazuma is Like That and at least half of the answer is just 'he's a scorpio'#also: probably rated m! and not for violence!
5 notes
·
View notes
Text
Fanfic Writer Appreciation (and a little self love)
Sooooo, as talked about I wanted to do a little promo. I may not always be my favorite writer, but I try to be one of my cheerleaders. And well, if you’re here you obviously have some interest in what I’m up to.
SO! Here’s a list of my currently-published WIPs and some info about them, in the order that I’ve updated them, most recent to oldest.
Feel free to ask questions about any of them!
Dog Whistle (Ao3 || FFN) - started off as a prompt from @snackarey when I reblogged some Soulmate AUs. This one was a prompt for soulmates (Zack/Kunsel) who felt what each other felt - like pain. Needless to say, this went into a canon divergent AU where Kunsel felt some of what Zack was going through when Hojo got a hold of him after Nibelheim. And saved him, setting off an ever-increasing list of revolutionary consequences. It’s nearly 58K, and though I’m a little stuck I’m looking forward to seeing where it goes.
Dewprism: Journey to the [Relic] (Ao3 || FFN) - this actually has a lot more written than I’ve posted, I just got a little frustrated because well... the fandom is teeny tiny and there’s no real feedback. But! It’s an interesting piece. It’s a semi-novelization where I’m taking the old PS1 Classic from Squaresoft, Threads of Fate/Dewprism and merging the two storylines. Basically... you can’t play the game anymore unless you got it from the PSN for your PSP or... PS2, I think? Or emulate it, of course, you can do that. And I wanted to bring the experience to more people, because it’s got such a great story.
It’s Not a Game (Ao3 || FFN) - this is my Avengers/FF7 crossover, and funny story, it was actually born out of a comment back on my old Genesis RP blog about how Genesis would totally be Tony Stark’s favorite character if he played Crisis Core. It’s turned into a full blown fixit I have a type and I actually have like, 90% of the next chapter done, it just doesn’t feel quite right so I haven’t posted it. And am, of course, stuck. There’s a case of choice paralysis here; the premise is that, in the MCU, FF7 is a series like it is in our world, and Tony is a fan. So he goes to make a simulation to do a self-insert... only he somehow transports himself (and Bruce) to a dimension where it’s real. A “Stark-insert” someone called it; and it does use a lot of “Self-Insert” tropes, actually. There’s just so many ways it could go that I’m stuck on choosing exactly how to progress here.
Party of Five (Ao3 || FFN) - the MMO AU! This was actually originally a prompt @up-sideand-down got, that I got permission to take off with. It’s a modern AU AGSZC where they meet online playing this MMO I made up that’s based off of FF7 and modeled after a mashup of like, me studying WoW and my experiences playing SWTOR. I’ve actually got some ideas of where it’s going, I just got too caught up in technicalities and need to reroute it back to the relationships going on.
Welcome to FF7 (series link, Ao3) - this is me hashing out basically what I think went down pre-games. Most of it is headcanon, I cannot stress that enough. It’s based off of the little we know, of course, but there’s just so much we don’t that it’s mostly headcanon. Tons of OCs. It’s a whole series, and they overlap - different sections that follow different departments, mostly. The base story is Welcome to ShinRa (Ao3 || FFN) and that follows the man who will become President Shinra from back when they first discover mako energy. I’ve also got Welcome to the Science Department (Ao3 || FFN) which starts off with college students Gast and Grimoire and how they get drawn into the beginnings of what becomes ShinRa Electric.
And last but not least, honorable mention to Times of Change (Ao3) - this was actually a piece inspired by @deadcatwithaflamethrower‘s Re-Entry series. I desperately need to reread that before I can hope to continue this, but... one day. One day.... I don’t suggest reading it right now, my headcanons have changed and it needs an overhaul. But you’ll see eventually.
And now... the WIPs you haven’t seen. (Under a cut)
By fandom, just to keep things straight, but in no particular order otherwise.
Compilation of FF7
The Snowball Effect (Ao3 || FFN) ... sequel? continuation? - as one of the gift exchange presents I’ve just done this past month, it is definitely standalone as is, but if I ever figure out where I want to take it, I’ll continue that one. It was just far too much fun.
The Price of Freedom - the sequel to To Be Human, which... I’m looking forward to, but I really burnt myself out on TBH so it’s going to be longer than anticipated before I approach this one. TBH definitely stands on its own, but there were some loose ends left to tie up, so we’ll see how that goes. And when it goes, when I’m ready to approach that again. TBH needs some editing, too... lots of work there.
The Unnamed Pokemon/FF7 crossover that I’ve talked about for... a couple years now (yikes) but now actually have a plot for. It’s very interesting to me, putting Pokemon on Gaia, and seeing how that changes everything. Because like, they’d have presumably used Mew’s DNA since there’s no Jenova (I can’t see them using Deoxys, which would be the closer parallel) and since there’s no Chaos, Grimoire is still alive. Which means no extra Drama between Lucrecia and Vincent - and really, there shouldn’t be the stress between Vincent and Hojo over her being sick because Mew would theoretically be much more compatible with humans than Jenova was.
What I’m saying is Seph has three parents and at least one set of grandparents and a much more stable Sephiroth (and Genesis and Angeal, thanks to Lucrecia teaming up with Gillian) leads to some very interesting changes. Like deciding they don’t want to fight the Wutai war anymore. >_>
Hold My Flower - a timetravel fic featuring our one and only flowergirl, who has had enough of people messing up her planet and refuses to just... let it die. She is, unquestionably, a force of nature. No fragile flower to be found here, this is the gal you see in the OG who threatened a mob boss and meant it. Heaven help anyone who gets in her way. She’s going to save the world. Possibly in a Turk Suit, don’t look at me.
The Long Game - Reeve goes back in time, and holy crap this one is a monster I am truly intimidated by so it’s gonna take a while for me to get going on that. XD But basically, similar premise to the above - the world isn’t healing and someone has to do something, so Reeve is nominated due to his position in ShinRa and potential to... he’d say “influence” but let’s call a spade a spade - manipulate people and events to a more favorable outcome.
A third BIT fic is one that I started writing with my friend @askshivanulegacy back in... damn, somewhere between 2011-2013, before we switched to writing SWTOR fic together. It’s one where Zack is sent back in time, and the differences in him post-Hojo change things even before he can start deliberately changing anything. But I got permission to take and remake that, so I intend to, one day. It was Good Stuff. And you can never have too much timetravel.
Dragon Ball Z
So, this is an oooooold fandom of mine - the first fanfics I ever wrote (under a different name, no I’m not telling XD it was ten years ago) were for DBZ, and definitely the first ones I ever read, back in the days of dial up. And I read a couple interesting takes on Chichi/Vegeta fic... and I was talking with @vorpalgirl about it and said I’d love to try my hand at something with that one day. I think they have the potential to be a really great pair (don’t get me wrong, I appreciate the canon pairings but those two have a lot of potential) so... yeah someday I might dip my toes back into Z. It’s on the wishlist, as well as reviving and cleaning up an old unfinished work of mine. Someday~
Legend of Zelda: Ocarina of Time
Seven Years Lost - this one I’ve been debating a long time, and even did a little on! It’s basically how I rationalize what happens when Link pulls the Master Sword out and - well, spoilers but it’s a really old game so - when he comes out as a teenager and is immediately able to handle a nearly-adult body. It involves a dreamscape scenario where he communicates with his past incarnations and learns from them, and from sharing dreams with Zelda due to their bond.
Sailor Moon (manga/Crystal based)
Second Chances - I read a lot of SM fanfic back in the day, and my favorite ones were... more real? Like, there were more consequences to these 14 year old kids out there fighting for their lives and sometimes losing them. I’d like to tell a story through Minako/Venus’ eyes primarily, covering what that’s like, and then I also just really want a happy ending for the senshi/shittenou? So... yay canon divergence, lol. You guys know the deal by now. XD
Star Wars: Legends Era
United We Stand - SWTOR fanfic, baby! Basically, I’m just dying to see the eight classes cross over each other, and I will bend canon to do it. For anyone that’s played the original class story lines, there is some cross over but believe me when I say there were huge opportunities that were let drop by nature of the game. Just with the two Jedi stories alone... but that’s #spoilers for a not-as-old game so I’ll leave that be and only elaborate if asked.
(And do feel free to ask about any of these! I’d love to hash them out more.)
#writer ramble#rambles#ff7#avengers#ff7/avengers#threads of fate#dewprism#star wars#pokemon#pokemon/ff7#dbz#sailor moon#swtor
24 notes
·
View notes
Text
Awesome Tarot Books & Resources for Beginners & Beyond
I’m often asked what resources I’d recommend to people keen to learn more about tarot. We’re so blessed at this point in tarot history to have such an abundance of books, blogs, podcasts, courses, and conversations, both online and off, to nurture our understanding of this rich and complex art form.
When you’re starting out, though, that abundance can be pretty overwhelming. Who’s got the time or the cash to try courses that don’t resonate, or read books that barely skim the surface? Sometimes, we need a little help sorting the signal from the noise.
To that end, here is a list of books and other resources that have boosted my tarot game and enriched my understanding of the cards. Of course, I can’t claim to have tried everything that’s out there, but I do have a stable of recommendations I can wholeheartedly hand over to tarot beginners, and also some juicy gems for more advanced readers to sink their teeth into.
I intend for this list to be a rolling resource, so I’ll update it from time to time as new and worthy things cross my path.
Books
My Ultimate Go-Tos
This is a pair of books I always recommend in tandem, because I read them both when I was first learning, and together they helped me to deepen my understanding of both the philosophy and the practical applications of the Rider-Waite-Smith system.
Seventy-Eight Degrees of Wisdom by Rachel Pollack is hands down, my go-to for learning the Rider-Waite-Smith system. It gives some history, and looks at individual card meanings with a lot of focus and depth, particularly for the Major Arcana. The real gold in this book is the way it describes the underlying philosophical structure of the deck, with attention to its historical origins in the Western esoteric tradition. I’d say this is essential reading for anyone hoping to understand what this branch of tarot is, in the deepest sense.
If that all sounds quite theoretical, fear not! Rachel Pollack’s masterpiece is well paired with a more accessible and practical tarot handbook, Tarot: Plain and Simple by Anthony Louis. Louis’ book is also based on the Rider-Waite-Smith system, and it goes through card by card with key words and phrases, as well as situations and types of advice that might be represented by each card.
The approach is immensely practical, so I often recommend this guide as an on the go reference, when you need some clues about how a card might relate practically to a particular query. It also arranges the Minors by number rather than by suit, so you see all the Aces side by side, and so on. This gives the reader excellent grounding in how the numerology of the tarot functions, and how readers use the structure of the deck, rather than just individual cards, to make meaning.
New Favourites
My go-tos, dating back to my beginner days, might be some of the most well-thumbed books in my collection, but that doesn’t mean I haven’t found other new favourites over the years. Here are some other tarot books I’d recommend:
The Creative Tarot by Jessa Crispin is one of only two tarot books I’ve sat down and read cover to cover, like a novel. That’s how juicy and compelling it is! The Creative Tarot is exactly what it sounds like - a method of reading tarot for creative questioning, especially as it relates to art practice and other creative work. There are many things to love about this book, but one of my favourites is that Jessa gives recommended media - books, poems, songs, films - for each card, so you can dive deep into the archetypes. You can find tons more detail about this book in my full review here.
Tarot for Life by Paul Quinn isn’t a new book, but is a new favourite here at Two Sides Tarot. I love the anecdotes that Quinn includes to demonstrate how each card might play out in real life, but what really captured my attention is the table he lays out for each card, which includes Keywords, then suggestions for each card as Being, Doing, Shadow, Reversed, and Possible Advice. I like thinking of card meanings as different parts of grammar - like, what is the Nine of Swords as a verb? A noun? Thinking about cards in this way gives them flexible applications, and Quinn’s handy dandy tables have plenty of accessible inspiration for that way of thinking.
I picked up Michelle Tea’s Modern Tarot mostly because I love Michelle Tea. I wouldn’t say that Modern Tarot is a perfect resource for the beginner, because it doesn’t include what I would consider essential learning tools, like a history of tarot, and chapters on how tarot spreads work, how to shuffle, how to read for others, and so on. What does make it great, though, is that it includes extensive anecdotes from the author’s own experience to illustrate how each card might appear in the world, and it includes a spell or ritual for working with every single card of the deck. LOVE!
Finally, an honourable mention goes to a funny little book called The Tarot Masters, edited by Kim Arnold. This isn’t really a reference book, but when I was getting more seriously immersed in my tarot studies, it proved to be a rich treasure trove of stories that inspired me to go deeper with the cards. Editor Kim Arnold has assembled a true dream team of tarot masters, and each one writes about a card from the Major Arcana, as well as a memory or story from their own tarot history. It’s like eavesdropping on the ultimate tarot celebrity dinner party. There is tea!
Advanced Books
Some of the books mentioned in this post (especially the ones in the next category) do deal with more advanced level tarot practices, so in terms of books that stand alone for more advanced readers, I’ve just got one that I love.
Tarot Interactions by Deborah Lipp doesn’t include card meanings, instead, it gets straight into how cards interact in a reading, and how readers can use the structure of the deck - the suits, the numbers, the elements - to inform the way they read multiple cards at a time. My favourite part of this book is the table where Lipp uses some basic maths to help readers determine what is statistically significant in a reading (what counts, mathematically, as “a lot” of Pentacles, or a lot of Majors, in a reading with six cards, or ten cards, for example). I’ve never come across that in a tarot book before, but it seems like pretty important knowledge to have! This is particularly useful intel if you read with reversals.
Books That Are Kinda Like Courses
Rather than sitting down and reading a book cover to cover, many of us would prefer something that feels a little bit more like a course or a workshop, with a bit of reading, a few worksheets, and maybe some homework if we’re feeling super motivated (and who isn’t feeling super motivated to learn tarot? Come on!).
Tarot for Yourself by Mary K. Greer is stuffed full of exercises you can undertake to really go deep with the cards. Its focus is on using tarot for self-inquiry, and it contains a ton of practical ideas from figuring out your soul card, to doing meditative pathworking with the cards, and so much more. You’ll learn plenty about the cards, of course, but this book is really focused on putting the deck to work so you can learn about you.
Tarot 101 by Kim Huggens is not numbered like a college course for nothing! This book is best treated like a term of study, and worked through in order. Huggens weaves her lessons in interesting ways, arranging archetypes thematically, and interspersing the study of individual cards with exercises on designing spreads, doing readings, and using the cards for self-reflection.
If you’ve not seen Holistic Tarot by Benebell Wen in the flesh, you’ll have to trust me when I say it is A Tome. This brick of a book from one of the most knowledgeable and prolific esoteric scholars working today will see anyone go from stumbling beginner to sage expert, because there is just SO much in here to learn. This book is technical, academic in its approach, so if you’re an absolute beginner I’d say you could start here (and certainly, the earlier part of the book is aimed at beginners), but if you’re easily intimidated by vast swathes of occult knowledge and you’ve never read so much as a blog post about tarot before, well, maybe proceed with caution! When you’re ready to dive in, you may want to supplement your reading with the Holist Tarot resources on Benebell’s website.
Courses
I’ve taken an online course in tarot here and there over the years, most of which don’t seem to exist anymore, but I’m thrilled to find that one of my favourites, Little Red Tarot’s Alternative Tarot Course, is still very much alive and kicking. This self-paced, delivered-by-email course is a really great way to dive into the cards. I especially love that it reflects Little Red Tarot’s ethical, inclusive approach to, well, everything! So many tarot decks and resources fail to grapple with problematic and exclusionary power structures and gender roles that exist in traditional tarot, but you can be sure that this course isn’t afraid to challenge that status quo and make tarot available to all of us.
If you’d rather take things card by card, Little Red Tarot also offers a Card A Day course. I haven’t tried this one myself but I think I’d happily vouch for the quality of anything that Beth makes.
For those of us with a passion for the Tarot de Marseille, or perhaps just for a different approach to the heavily metaphorical way many of us read in the Rider-Waite-Smith tradition, Camelia Elias’s courses are fantastic. Who wouldn’t want to read like the devil?
Other Resources
This part of the list is a grab bag of things I’ve found helpful and interesting, across different media. No doubt there’ll be updates to come!
First, if you’re looking to deepen your relationship with the archetypes of the Major Arcana, you might enjoy a free resource I created for journaling with each of the tarot trumps. This guide will encourage you to dig into your own experiences and make connections with the cards.
If you enjoy doing some tarot study on the go, try Lindsay Mack’s podcast, Tarot for the Wild Soul. Lindsay shares deep dives into individual cards and themes, as well as some really amazing interviews with luminaries in the worlds of tarot and other spiritual crafts.
I mentioned above that Little Red Tarot has some great courses, but if you’re not ready to commit to a course (and even if you are), don’t miss the incredible blog. It’s an overflowing wellspring of tarot knowledge and exploration, and captures so many marginal, magical, and necessary voices.
And of course, you can find lots of deck reviews, tarot spreads, and card analysis right here on the Two Sides Tarot blog. Perhaps start with this one, or this one. Enjoy!
What are your favourite tarot resources? Give your beloved books, blogs, and podcasts a shoutout in the comments!
Want more tarot goodness, delivered right to you? Subscribe to my monthly newsletter for more deep dives into the cards.
#mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; width:100%;} /* Add your own MailChimp form style overrides in your site stylesheet or in this style block. We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */ #mc-embedded-subscribe-form input[type=checkbox]{display: inline; width: auto;margin-right: 10px;} #mergeRow-gdpr {margin-top: 20px;} #mergeRow-gdpr fieldset label {font-weight: normal;} #mc-embedded-subscribe-form .mc_fieldset{border:none;min-height: 0px;padding-bottom:0px;}
83 notes
·
View notes
Text
“Along For The Ride”, a reasonably complex demo
It's been a while since I've been anticipating people finally seeing one of my demos like I was anticipating people to see "Along For The Ride", not only because it ended up being a very personal project in terms of feel, but also because it was one of those situations where to me it felt like I was genuinely throwing it all the complexity I've ever did in a demo, and somehow keeping the whole thing from falling apart gloriously.
youtube
The final demo.
I'm quite happy with the end result, and I figured it'd be interesting to go through all the technology I threw at it to make it happen in a fairly in-depth manner, so here it goes.
(Note that I don't wanna go too much into the "artistic" side of things; I'd prefer if the demo would speak for itself on that front.)
The starting point
I've started work on what I currently consider my main workhorse for demomaking back in 2012, and have been doing incremental updates on it since. By design the system itself is relatively dumb and feature-bare: its main trick is the ability to load effects, evaluate animation splines, and then render everything - for a while this was more than enough.
Around the summer of 2014, Nagz, IR and myself started working on a demo that eventually became "Háromnegyed Tíz", by our newly formed moniker, "The Adjective". It was for this demo I started experimenting with something that I felt was necessary to be able to follow IR's very post-production heavy artstyle: I began looking into creating a node-based compositing system.
I was heavily influenced by the likes of Blackmagic Fusion: the workflow of being able to visually see where image data is coming and going felt very appealing to me, and since it was just graphs, it didn't feel very complicated to implement either. I had a basic system up and running in a week or two, and the ability to just quickly throw in effects when an idea came around eventually paid off tenfold when it came to the final stage of putting the demo together.
The initial node graph system for Háromnegyed Tíz.
The remainder of the toolset remained relatively consistent over the years: ASSIMP is still the core model loader of the engine, but I've tweaked a few things over time so that every incoming model that arrives gets automatically converted to its own ".assbin" (a name that never stops being funny) format, something that's usually considerably more compact and faster to load than formats like COLLADA or FBX. Features like skinned animation were supported starting with "Signal Lost", but were never spectacularly used - still, it was a good feeling to be able to work with an engine that had it in case we needed it.
Deferred rendering
During the making of "Sosincs Vége" in 2016, IR came up with a bunch of scenes that felt like they needed to have an arbitrary number of lightsources to be effecive; to this end I looked into whether I was able to add deferred rendering to the toolset. This turned out to be a bit fiddly (still is) but ultimately I was able to create a node type called the "G-buffer", which was really just a chunk of textures together, and use that as the basis for two separate nodes: one that renders the scenegraph into the buffer, and another that uses the buffer contents to light the final image.
The contents of a G-buffer; there's also additional information in the alpha channels.
Normally, most deferred renderers go with the tile-based approach, where they divide the screen into 16x16 or 32x32 tiles and run the lights only on the tiles they need to run them on. I decided to go with a different approach, inspired by the spotlight rendering in Grand Theft Auto V: Because I was mostly using point- and spot-lights, I was able to control the "extent" of the lights and had a pretty good idea whether each pixel was lit or not based on its position relative to the light source. By this logic, e.g. for pointlights if I rendered a sphere into the light position, with the radius of what I considered to be the farthest extent of the light, the rendered sphere would cover all the pixels on screen covered by that light. This means if I ran a shader on each of those pixels, and used the contents of the G-buffer as input, I would be able to calculate independent lighting on each pixel for each light, since lights are additive anyway. The method needed some trickery (near plane clipping, sphere mesh resolution, camera being near the sphere edge or inside the sphere), but with some magic numbers and some careful technical artistry, none of this was a problem.
The downside of this method was that the 8-bit channel resolution of a normal render target was no longer enough, but this turned out to be a good thing: By using floating point render targets, I was able to adapt to a high-dynamic range, linear-space workflow that ultimately made the lighting much easier to control, with no noticable loss in speed. Notably, however, I skipped a few demos until I was able to add the shadow routines I had to the deferred pipeline - this was mostly just a question of data management inside the graph, and the current solution is still something I'm not very happy with, but for the time being I think it worked nicely; starting with "Elégtelen" I began using variance shadowmaps to get an extra softness to shadows when I need it, and I was able to repurpose that in the deferred renderer as well.
The art pipeline
After doing "The Void Stared Into Me Waiting To Be Paid Its Dues" I've began to re-examine my technical artist approach; it was pretty clear that while I knew how the theoreticals of a specular/glossiness-based rendering engine worked, I wasn't necessarily ready to be able to utilize the technology as an artist. Fortunately for me, times changed and I started working at a more advanced games studio where I was able to quietly pay closer attention to what the tenured, veteran artists were doing for work, what tools they use, how they approach things, and this introduced me to Substance Painter.
I've met Sebastien Deguy, the CEO of Allegorithmic, the company who make Painter, way back both at the FMX film festival and then in 2008 at NVScene, where we talked a bit about procedural textures, since they were working on a similar toolset at the time; at the time I obviously wasn't competent enough to deal with these kind of tools, but when earlier this year I watched a fairly thorough tutorial / walkthrough about Painter, I realized maybe my approach of trying to hand-paint textures was outdated: textures only ever fit correctly to a scene if you can make sure you can hide things like your UV seams, or your UV scaling fits the model - things that don't become apparent until you've saved the texture and it's on the mesh.
Painter, with its non-linear approach, goes ahead of all that and lets you texture meshes procedurally in triplanar space - that way, if you unwrapped your UVs correctly, your textures never really stretch or look off, especially because you can edit them in the tool already. Another upside is that you can tailor Painter to your own workflow - I was fairly quickly able to set up a preset to my engine that was able to produce diffuse, specular, normal and emissive maps with a click of a button (sometimes with AO baked in, if I wanted it!), and even though Painter uses an image-based lighting approach and doesn't allow you to adjust the material settings per-textureset (or I haven't yet found it where), the image in Painter was usually a fairly close representation to what I saw in-engine. Suddenly, texturing became fun again.
An early draft of the bus stop scene in Substance Painter.
Depth of field
DOF is one of those effects that is nowadays incredibly prevalent in modern rendering, and yet it's also something that's massively overused, simply because people who use it use it because it "looks cool" and not because they saw it in action or because they want to communicate something with it. Still, for a demo this style, I figured I should revamp my original approach.
The original DOF I wrote for Signal Lost worked decently well for most cases, but continued to produce artifacts in the near field; inspired by both the aforementioned GTAV writeup as well as Metal Gear Solid V, I decided to rewrite my DOF ground up, and split the rendering between the near and far planes of DOF; blur the far field with a smart mask that keeps the details behind the focal plane, blur the near plane "as is", and then simply alphablend both layers on top of the original image. This gave me a flexible enough effect that it even coaxed me to do a much-dreaded focal plane shift in the headphones scene, simply because it looked so nice I couldn't resist.
The near- and far-fields of the depth of field effect.
Screen-space reflections
Over the summer we did a fairly haphazard Adjective demo again called "Volna", and when IR delivered the visuals for it, it was very heavy on raytraced reflections he pulled out of (I think) 3ds max. Naturally, I had to put an axe to it very quickly, but I also started thinking if we can approximate "scene-wide" reflections in a fairly easy manner. BoyC discovered screen-space reflections a few years ago as a fairly cheap way to prettify scenes, and I figured with the engine being deferred (i.e. all data being at hand), it shouldn't be hard to add - and it wasn't, although for Volna, I considerably misconfigured the effect which resulted in massive framerate loss.
The idea behind SSR is that a lot of the time, reflections in demos or video games are reflecting something that's already on screen and quite visible, so instead of the usual methods (like rendering twice for planar reflections or using a cubemap), we could just take the normal at every pixel, and raymarch our way to the rendered image, and have a rough approximation as to what would reflect there.
The logic is, in essence to use the surface normal and camera position to calculate a reflection vector and then start a raymarch from that point and walk until you decide you've found something that may be reflecting on the object; this decision is mostly depth based, and can be often incorrect, but you can mitigate it by fading off the color depending on a number of factors like whether you are close to the edge of the image or whether the point is way too far from the reflecting surface. This is often still incorrect and glitchy, but since a lot of the time reflections are just "candy", a grainy enough normalmap will hide most of your mistakes quite well.
Screen-space reflections on and off - I opted for mostly just a subtle use, because I felt otherwise it would've been distracting.
One important thing that Smash pointed out to me while I was working on this and was having problems is that you should treat SSR not as a post-effect, but as lighting, and as such render it before the anti-aliasing pass; this will make sure that the reflections themselves get antialiased as well, and don't "pop off" the object.
Temporal antialiasing
Over the last 5 years I've been bearing the brunt of complaints that the aliasing in my demos is unbearable - I personally rarely ever minded the jaggy edges, since I got used to them, but I decided since it's a demo where every pixel counts, I'll look into solutions to mitigate this. In some previous work, I tried using FXAA, but it never quite gave me the results I wanted, so remembering a conversation I had with Abductee at one Revision, I decided to read up a bit on temporal antialiasing.
The most useful resource I found was Bart Wroński's post about their use of TAA/TSSAA (I'm still not sure what the difference is) in one of the Assassin's Creed games. At its most basic, the idea behind temporal antialiasing is that instead of scaling up your resolution to, say, twice or four times, you take those sub-pixels, and accumulate them over time: the way to do this would be shake the camera slightly each frame - not too much, less than a quarter-pixel is enough just to have the edges alias slightly differently each frame - and then average these frames together over time. This essentially gives you a supersampled image (since every frame is slightly different when it comes to the jagged edges) but with little to no rendering cost. I've opted to use 5 frames, with the jitter being in a quincunx pattern, with a random quarter-pixel shake added to each frame - this resulted in most edges being beautifully smoothed out, and I had to admit the reasonably little time investment was worth the hassle.
Anti-aliasing on and off.
The problem of course, is that this works fine for images that don't move all that much between frames (not a huge problem in our case since the demo was very stationary), but anything that moves significantly will leave a big motion trail behind it. The way to mitigate would be to do a reprojection and distort your sampling of the previous frame based on the motion vectors of the current one, but I had no capacity or need for this and decided to just not do it for now: the only scene that had any significant motion was the cat, and I simply turned off AA on that, although in hindsight I could've reverted back to FXAA in that particular scenario, I just simply forgot. [Update, January 2019: This has been bugging me so I fixed this in the latest version of the ZIP.]
There were a few other issues: for one, even motion vectors won't be able to notice e.g. an animated texture, and both the TV static and the rain outside the room were such cases. For the TV, the solution was simply to add an additional channel to the GBuffer which I decided to use as a "mask" where the TAA/TSSAA wouldn't be applied - this made the TV texture wiggle but since it was noisy anyway, it was impossible to notice. The rain was considerably harder to deal with and because of the prominent neon signs behind it, the wiggle was very noticable, so instead what I ended up doing is simply render the rain into a separate 2D matte texture but masked by the scene's depth buffer, do the temporal accumulation without it (i.e. have the antialiased scene without rain), and then composite the matte texture into the rendered image; this resulted in a slight aliasing around the edge of the windows, but since the rain was falling fast enough, again, it was easy to get away with it.
The node graph for hacking the rainfall to work with the AA code.
Transparency
Any render coder will tell you that transparency will continue to throw a wrench into any rendering pipeline, simply because it's something that has to respect depth for some things, but not for others, and the distinction where it should or shouldn't is completely arbitrary, especially when depth-effects like the above mentioned screen-space reflections or depth of field are involved.
I decided to, for the time being, sidestep the issue, and simply render the transparent objects as a last forward-rendering pass using a single light into a separate pass (like I did with the rain above) honoring the depth buffer, and then composite them into the frame. It wasn't a perfect solution, but most of the time transparent surfaces rarely pick up lighting anyway, so it worked for me.
Color-grading and image mastering
I was dreading this phase because this is where it started to cross over from programming to artistry; as a first step, I added a gamma ramp to the image to convert it from linear to sRGB. Over the years I've been experimenting with a lot of tonemap filters, but in this particular case a simple 2.2 ramp got me the result that felt had the most material to work with going into color grading.
I've been watching Zoom work with Conspiracy intros for a good 15 years now, and it wasn't really until I had to build the VR version of "Offscreen Colonies" when I realized what he really does to get his richer colors: most of his scenes are simply grayscale with a bit of lighting, and he blends a linear gradient over them to manually add colour to certain parts of the image. Out of curiousity I tried this method (partly out of desperation, I admit), and suddenly most of my scenes began coming vibrantly to life. Moving this method from a bitmap editor to in-engine was trivial and luckily enough my old friend Blackpawn has a collection of well known Photoshop/Krita/etc. blend mode algorithms that I was able to lift.
Once the image was coloured, I stayed in the bitmap editor and applied some basic colour curve / level adjustment to bring out some colours that I felt got lost when using the gradient; I then applied the same filters on a laid out RGB cube, and loaded that cube back into the engine as a colour look-up table for a final colour grade.
Color grading.
Optimizations
There were two points in the process where I started to notice problems with performance: After the first few scenes added, the demo ran relatively fine in 720p, but began to dramatically lose speed if I switched to 1080p. A quick look with GPU-Z and the tool's internal render target manager showed that the hefty use of GPU memory for render targets quickly exhausted 3GB of VRAM. I wasn't surprised by this: my initial design for render target management for the node graph was always meant to be temporary, as I was using the nodes as "value types" and allocating a target for each. To mitigate this I spent an afternoon designing what I could best describe as a dependency graph, to make sure that render targets that are not needed for a particular render are reused as the render goes on - this got my render target use down to about 6-7 targets in total for about a hundred nodes.
The final node graph for the demo: 355 nodes.
Later, as I was adding more scenes (and as such, more nodes), I realized the more nodes I kept adding, the more sluggish the demo (and the tool) got, regardless of performance - clearly, I had a CPU bottleneck somewhere. As it turned out after a bit of profiling, I added some code to save on CPU traversal time a few demos ago, but after a certain size this code itself became a problem, so I had to re-think a bit, and I ended up simply going for the "dirty node" technique where nodes that explicitly want to do something mark their succeeding nodes to render, and thus entire branches of nodes never get evaluated when they don't need to. This got me back up to the coveted 60 frames per second again.
A final optimization I genuinely wanted to do is crunch the demo down to what I felt to be a decent size, around 60-ish megabytes: The competition limit was raised to 128MB, but I felt my demo wasn't really worth that much size, and I felt I had a chance of going down to 60 without losing much of the quality - this was mostly achieved by just converting most diffuse/specular (and even some normal) textures down to fairly high quality JPG, which was still mostly smaller than PNG; aside from a few converter setting mishaps and a few cases where the conversion revealed some ugly artifacts, I was fairly happy with the final look, and I was under the 60MB limit I wanted to be.
Music
While this post mostly deals with graphics, I'd be remiss to ignore the audio which I also spent a considerable time on: because of the sparse nature of the track, I didn't need to put a lot of effort in to engineering the track, but I also needed to make sure the notes sounded natural enough - I myself don't actually play keyboards and my MIDI keyboard (a Commodore MK-10) is not pressure sensitive, so a lot of the phrases were recorded in parts, and I manually went through each note to humanize the velocities to how I played them. I didn't process the piano much; I lowered the highs a bit, and because the free instrument I was using, Spitfire Audio's Soft Piano, didn't have a lot of release, I also added a considerable amount of reverb to make it blend more into the background.
For ambient sounds, I used both Native Instruments' Absynth, as well as Sound Guru's Mangle, the latter of which I used to essentially take a chunk out of a piano note and just add infinite sustain to it. For the background rain sound, I recorded some sounds myself over the summer (usually at 2AM) using a Tascam DR-40 handheld recorder; on one occasion I stood under the plastic awning in front of our front door to record a more percussive sound of the rain knocking on something, which I then lowpass filtered to make it sound like it's rain on a window - this eventually became the background sound for the mid-section.
I've done almost no mixing and mastering on the song; aside from shaping the piano and synth tones a bit to make them sound the way I wanted, the raw sparse timbres to me felt very pleasing and I didn't feel the sounds were fighting each other in space, so I've done very little EQing; as for mastering, I've used a single, very conservatively configured instance of BuzMaxi just to catch and soft-limit any of the peaks coming from the piano dynamics and to raise the track volume to where all sounds were clearly audible.
The final arrangement of the music in Reaper.
Minor tricks
Most of the demo was done fairly easily within the constraints of the engine, but there were a few fun things that I decided to hack around manually, mostly for effect.
The headlights in the opening scene are tiny 2D quads that I copied out of a photo and animated to give some motion to the scene.
The clouds in the final scene use a normal map and a hand-painted gradient; the whole scene interpolates between two lighting conditions, and two different color grading chains.
The rain layer - obviously - is just a multilayered 2D effect using a texture I created from a particle field in Fusion.
Stuff that didn't make it or went wrong
I've had a few things I had in mind and ended up having to bin along the way:
I still want to have a version of the temporal AA that properly deghosts animated objects; the robot vacuum cleaner moved slow enough to get away with it, but still.
The cat is obviously not furry; I have already rigged and animated the model by the time I realized that some fur cards would've helped greatly with the aliasing of the model, but by that time I didn't feel like redoing the whole thing all over again, and I was running out of time.
There's considerable amount of detail in the room scene that's not shown because of the lighting - I set the room up first, and then opted for a more dramatic lighting that ultimately hid a lot of the detail that I never bothered to arrange to more visible places.
In the first shot of the room scene, the back wall of the TV has a massive black spot on it that I have no idea where it's coming from, but I got away with it.
I spent an evening debugging why the demo was crashing on NVIDIA when I realized I was running out of the 2GB memory space; toggling the Large Address Aware flag always felt a bit like defeat, but it was easier than compiling a 64-bit version.
A really stupid problem materialized after the party, where both CPDT and Zoom reported that the demo didn't work on their ultrawide (21:9) monitors: this was simply due to the lack of pillarbox support because I genuinely didn't think that would ever be needed (at the time I started the engine I don't think I even had a 1080p monitor) - this was a quick fix and the currently distributed ZIP now features that fix.
Acknowledgements
While I've did the demo entirely myself, I've received some help from other places: The music was heavily inspired by the work of Exist Strategy, while the visuals were inspired by the work of Yaspes, IvoryBoy and the Europolis scenes in Dreamfall Chapters. While I did most of all graphics myself, one of the few things I got from online was a "lens dirt pack" from inScape Digital, and I think the dirt texture in the flowerpot I ended up just googling, because it was late and I didn't feel like going out for more photos. I'd also need to give credit to my audio director at work, Prof. Stephen Baysted, who pointed me at the piano plugin I ended up using for the music, and to Reid who provided me with ample amounts of cat-looking-out-of-window videos for animation reference.
Epilogue
Overall I'm quite happy with how everything worked out (final results and reaction notwithstanding), and I'm also quite happy that I managed to produce myself a toolset that "just works". (For the most part.)
One of the things that I've been talking to people about it is postmortem is how people were not expecting the mix of this particular style, which is generally represented in demos with 2D drawings or still images or photos slowly crossfading, instead using elaborate 3D and rendering. To me, it just felt like one of those interesting juxtapositions where the technology behind a demo can be super complex, but at the same time the demo isn't particularly showy or flashy; where the technology behind the demo does a ton of work but forcefully stays in the background to allow you to immerse in the demo itself. To me that felt very satisfactory both as someone trying to make a work of art that has something to say, but also as an engineer who tries to learn and do interesting things with all the technology around us.
What's next, I'm not sure yet.
3 notes
·
View notes
Note
"it’s 3 am and I’m still in the library studying for finals and I’m losing my grip on reality and I think I just saw a ghost" & dear david & bellarke
brit has a dear david problem. AO3!
About 90% of Clarke doesn't believe in anything even a little bit supernatural. She doesn't think there's an afterlife, magic isn't real, fortune tellers are bullshit, astrology could be done just as well by a well-programmed robot, there's a scientific explanation for yeti and Bigfoot sightings, mummies are embalmed dead people who will never rise again, and ghosts and zombies are as much of a fiction as trolls and elves. Aliens probably exist, admittedly, but somewhere in the vastness of the universe, not here, abducting people for weird experiments. They're just around, on some distant planet, doing their own thing, leading their own lives, not caring about humanity.
But there is that last ten percent of her, and that's the part that's freaked out by Dear David.
Obviously, she doesn't think it's real. These are all things you can fake. It's on Twitter, and Twitter is full of fake things, including videos and images. Everything has a perfectly logical explanation, especially if the guy is using Twitter for longform storytelling, which he must be, because if this was real, surely he would have done something more.
But at the same time, what would she do, in his place? Moving out of her apartment because she thought it was haunted would be giving a lot of power to a supernatural phenomenon, one she doesn't even believe in to begin with. And she thinks the Dead David guy is living in New York, with two cats. Clarke hasn't rented a lot of property, but she had to sublet in DC for an internship last summer, and she remembers seeing NO PETS on most of her potential rentals. If she was him, she might not move.
So in a horror movie, she would probably be the white lady everyone yelled at for being stupid. But it makes sense to her. How hard would it be to actually make major life decisions based on a dream and some weird noises? Her mother would never let her hear the end of it.
Luna puts an almost immediate moratorium on Clarke reading Dear David updates in their room, less because she about sixty percent believes in the supernatural and more because, in her words, listening to Clarke rationalize how she would deal with a haunting is exhausting, and she doesn't want to deal with it.
It's a fair criticism that Clarke can't argue with, so she starts checking the updates at the library, as a study break.
In theory, it's a perfect solution. She already does most of her studying at the library, and she needs things to do about once every forty minutes to give her brain a rest from her actual work. If a Dear David update is actually posted while she's at the library, she reads it then and there, and when she sees an update other times of day, it serves as an incentive to go and study later. She's not allowed to read the updates anywhere except the library, after at least thirty minutes of productive work, and every time she sees one, that's all she wants to do.
It's really a great system right up until it's two a.m. the night before her midterm English paper is due and she sees something in the back of the stacks.
It's obviously not a ghost. It's obviously not anything. When she goes back to look, with her phone camera on just in case, it's just an empty row of books with a window at the end. The movement she thought she saw was probably just the curtain, blowing in the air conditioning or something.
Or this is the part of the horror movie where she dies.
Leaving the library is an obvious option, but it feels like an overreaction to just one weird event, especially one she probably imagined. Her paper isn't done yet, and it's not like the library is empty. The part of the library she's in is pretty quiet, but she doesn't have to be there. Grabbing her laptop and finding another living human to sit sort of near is a good compromise between fleeing the scene and dying like the horror-movie white girl she definitely would be.
The first person she spots is asleep on a table and drooling, which isn't very comforting, and the next is watching a movie with headphones in, so if something happens, they probably won't notice.
The third is a guy she's seen before, another library regular. They've never spoken, but he's very noticeable. He's in her top five library crushes, and many days he comes out on top of that list; it's hard to go wrong with messy hair, freckles, muscles, and glasses. Plus he's always buried in a pile of history books. He might look like a jock, but he's definitely not one of those jocks who skates by without doing any work.
She's considering the best way to approach him when there's a crash, and she and the guy both look up, but she's the only one who jumps and squeaks a little. It's just the sleeping kid, who pushed a book off her table and woke herself up with the noise. She blinks at it, confused, and then shrugs and goes back to sleep.
When Clarke turns her attention back to the hot guy at the table, he's watching her with his head cocked. "Everything cool there?" he asks.
He has a nice voice, low and a little rough, and his eyes are sharp in the best way. Sharp with concern, if that's possible.
"Can I sit with you?"
He makes a show of looking around at the free tables near him, but then he shrugs and moves his books a little. "If you want to, yeah."
"Thanks."
"It's a big table." He drums his fingers on the table, still watching her. "Are you on something?"
"What?"
"You look kind of--" He waves his hand. "I'm not an expert on illicit substances, so I don't know if you look drunk or stoned or, uh, cocained or what, but--"
"I'm not high. I'm freaked out," she admits. "Are you on Twitter?"
"No, but it does freak me out, so I can relate."
Clarke can't help a smile. "It's not all of Twitter. There's, uh--this is going to sound stupid."
"Don't worry, that ship has sailed."
That earns him a glare, but he is honestly making her feel better, so there's no real heat in it. "There's this guy who's live-tweeting his apartment being haunted."
"Wow, you're right. That does sound stupid."
"Shut up," she says, laughing. "I know it's not--I'm pretty sure it's not real."
"Pretty sure?"
"There are videos. And I'm hedging my bets, okay? I don't want to say it's all bogus and then he actually dies or something."
"If you were being haunted, why would you tweet about it?" the guy asks, sounding thoughtful. "Is he tweeting about other stuff too? How does it work?"
"Sometimes. He's an artist, so he posts comics and stuff too, but it's been more and more content for this."
"Probably gets more attention than his comics. Good marketing. So, what happened?"
"What?"
"Did he have a really freaky update or what?"
"Oh, no, I--" She smiles, sheepish. "I freaked myself out being alone in the stacks. I thought I saw a ghost."
"Yeah, okay."
"That's it?"
He shrugs. "I don't need a weird Twitter scam to know that being alone in a library in the middle of the night is creepy. That's just basic primal fear. I've been there. You just needed someone to talk to?"
"Basically. A witness."
"If you seem haunted, I'll let you know." He offers his hand. "Bellamy, by the way."
"Clarke. Thanks for being my ghost buddy."
He snorts and turns his attention back to his laptop, and Clarke opens hers up to do the same. She doesn't have a ton left to do on the paper, and she's got the first draft done by three-thirty, which is later than she'd like, but she can get some sleep, go to class, and have time to edit and submit before the four o'clock deadline tomorrow afternoon.
Plus, she hasn't been killed by a ghost and she managed to introduce herself to a cute boy. A successful night, all things considered.
She stands and stretches, and Bellamy looks up from his laptop, glasses sliding down his nose. "Heading out?"
"Yeah. Luckily I don't need to do an actual all-nighter."
"Where do you live? I'm leaving too," he adds quickly. "Not stalking you."
Clarke feels herself start to smile. "Were you hanging out waiting for me to be done?"
"I've been playing Hearthstone for like twenty minutes, yeah. I don't have class until noon tomorrow anyway."
She has to smile. "I live in Alpha."
"Cool, I can walk you home. I'm in Mech."
"Really?"
He shoulders his messenger bag. "Sorry, do you think I'm lying about where I live?"
"You stayed late to keep me company and didn't tell me, so you might just be making up an excuse to walk back with me. Which I would appreciate," she adds quickly. "That's sweet. But you don't have to."
"I really live in Mech," he says. "But thanks for giving me theoretical credit for lying."
"Good lying. Chivalrous lying."
"Yeah, that makes me feel so much better. You ready?"
"Ready." She smiles. "Really, thanks for waiting."
He shrugs, playing it off with only slight awkwardness. "What was I going to do with an extra twenty minutes of sleep?"
*
On their walk back to Ark Quad, Clarke learns that Bellamy is a senior history/political science double major who would like to be a professor, even though he knows academia is basically a clusterfuck.
"If you get tenured somewhere you like, it's a total racket, from what I can tell," he explains. "But both of those are kind of a crapshoot. But I got funding for grad school here, so I figure I should take it. Then if I'm unemployable, I'm not in that much debt, and I can call myself a doctor."
She doesn't manage to find a casual way to ask if he's single and interested in women, but that seems like something that they could work towards. After all, the ice has been broken. Once you've confessed middle-of-the-night spooky ghost feelings, everything else is less awkward.
She hopes, anyway.
Between classes, she finishes and submits the paper, which means she's actually in pretty decent shape, academically speaking. But Wells sent her a translation of a bunch of tweets from some Spanish guy who's being stalked by his own clone from an alternate universe or something, which doesn't sound particularly plausible, but if it makes her get a head start on her bio problem set, that's not a bad thing.
And if Bellamy happens to be at the library to sit with while she reads it, all the better.
He's at the same table he was at before, surrounded by the usual pile of books, scowling at his phone like it's personally offending him, but his face clears when she sits down across from him.
"Hey," she says. "Bad time?"
"My mom and my sister both text me when they're arguing so I can mediate remotely, which doesn't work well for anyone. I would love to remove myself from this narrative."
"You could just not answer."
"You make it sound so easy." But he puts the phone down. "How'd you sleep?"
She frowns. "Fine?"
"I thought you might have ghost nightmares."
"Oh, no. I don't usually get dreams like that." He cocks his head, and she makes a face, trying to explain. "You know how in books and movies people have dreams that directly relate to what they were doing during the day? I don't have those. I can't really draw a straight line between what I was doing and what I dream about."
"So you're not going to worried you're going to have any nightmares about--I don't even know what the haunting looks like here. What's his evidence that he's haunted?"
"You want a summary?"
"It's either that or actually doing my homework," he says, not unreasonably, and Clarke grins.
"Okay, so, it does actually start with a creepy dream."
"Oh good, I'm thematic."
"Shut up. I'm explaining."
He doesn't interrupt again as she walks him through the Dear David narrative thus far, just looks increasingly amused as she goes on.
When she's done, he says, "I can't tell if you want to believe or not, honestly."
"I don't want to be wrong. I'm about ninety-percent sure it's fake, but part of me still thinks that if it was actually happening, this is all a logical response. Like--he's setting up stuff, he's documenting, he's even taking advantage of it."
"So if you thought you were being haunted, you'd use it to boost your social media brand?"
"Why not? If I survive the haunting, I want to leverage it to my advantage."
"I haven't put enough thought into the mercenary side of paranormal phenomena. Well, I guess I have," he grants. "I spent years when I was a kid trying to find cryptids living in the woods near my house."
"Were there stories about something living there?"
"No, it just seemed like a good thing to do. I should have just faked it for Twitter."
"It's not too late. You could still fake it for Twitter."
"Not until I'm done with grad school. Too busy."
"You're never going to have a viral tweet with that attitude."
"Yeah, I'll live." He wets his lips, looking her up and down. "So, are you planning to be freaked out again tonight?"
"My best friend from high school sent me a new viral thread to obsess over, so, yeah, definitely."
"Cool," he says, pulling his laptop in front of him. "Let me know how that goes."
*
As it turns out, friendship with Bellamy actually does not help the situation at all. He's at the library all the time, and that means Clarke wants to be there all the time because he's both single and interested in women, in addition to being great company.
But every time she sits down, he expects her to have some new viral tweet about paranormal activities to share with him, and she doesn't want to disappoint, which means she's spending her free time scouring the internet for creepypasta posts and saving them to a special bookmarks folder to read in the library with Bellamy and freaking herself out.
As seduction techniques go, it's not the best, but she likes to think of it as a work in progress.
"Have you considered asking him on a date," Luna says, not even a question. She already knows.
"These are like dates. Study dates."
"Where you sit together in mostly silence, punctuated by you reading him ghost stories from the internet?"
"It's a work in progress," she says, scowling. "You're the one who said I couldn't read this stuff here. I had to find someone who appreciated me."
"And once you find him, you should date him. But don't listen to me. Enjoy your bizarre courtship."
"Thanks," says Clarke, with an overly bright smile. "It's pretty awesome so far."
*
It's been about a month when Bellamy collapses into the seat across from Clarke at their regular library table and says, "I think you broke me."
"Yeah?"
"I had a nightmare about being haunted."
Clarke pauses. "Are you fucking with me?"
"Swear to god. It really freaked me out."
"So what happened?"
"It wasn't that bad to start with. Kind of funny. We were on one of those ghost hunting shows."
"We?" she asks, perking up.
"Yeah, you're my supernatural guru. Of course you were there."
"Okay, so we're ghost hunting. What do we do?"
"So it's a dream, I'm making it sound a lot more linear than it was. That's another reason I don't trust the Dear David guy," he adds. "All his dreams are really coherent."
"Because they're being influenced by ghosts, obviously."
"Then I guess I'm safe." He rubs the back of his neck. "Anyway, yeah, we're in my high school, and it's haunted. And it's still fun right now, we're not taking it very seriously, but then--something starts following us."
Clarke actually feels herself shiver a little. "Follow us how?"
"Like--when you're alone in your apartment in the middle of the night and you start thinking about how something could be behind you, and then you tell yourself it must be and you're really fucking paranoid even though you know nothing's there?"
Clarke puts her head down on the table with a groan. "Did you have to be that specific?"
"I'm painting a word picture." She hears the scuffs of movement, and then his hand is rubbing her back, like she's the one who had a nightmare and needs comfort. "But, yeah, it sucked. And I kept losing you."
"Losing me?"
"We were supposed to have radios, but I couldn't hear you, so I was freaking out. And my sister was there too and I couldn't find her either, and the setting kept changing, so I didn't know my way around. I was just looking for you guys and I had no idea how to get to you."
Clarke looks up to see him watching her with soft eyes, and she returns the expression. "That's a really shitty dream."
"Yeah. I don't think it means I'm haunted, but I might need you to start reading me stories about heroic animals instead."
"Sorry."
"Hey, I asked." He considers her. "I am kind of worried, though."
"You think you're haunted?"
"I think this could be the start of a recurring nightmare. I probably shouldn't sleep alone tonight."
Clarke lets out a sharp laugh, half surprise and half delight. "Are you seriously using your traumatic nightmare to pick me up? Really?"
"If I'm going to have a traumatic nightmare, it might as well get me laid. Assuming you want--"
She leans over and presses her mouth against his, quick and soft. "I could live with switching genres to romance. Horror's getting old."
Bellamy grins. "Yeah. That's what I was thinking."
*
"Dear David update," Clarke says, burrowing into Bellamy's side.
"It's still fake."
"If it's fake--"
"Which it is."
"If it is, it's still compelling, well-done storytelling. Stuff doesn't have to be true to be scary. Have you never seen a horror movie?"
"Not if I can help it. I don't get the appeal of purposefully freaking yourself out. And I just get mad at everyone for being an idiot."
"So you don't want to snuggle with me while I read the new tweets?"
"I never said that. I just want it on the record that I think it's fake and you should stop reading it."
"It's on the record." She leans up to kiss him. "Come on, don't you want to know how it ends?"
"Is it over?"
"I don't know. But when it does, you're going to want to know."
"I'm expecting you to keep me posted, yeah." He tugs her closer, propping his chin on her shoulder. "And if it gives me nightmares, you'll protect me, right?"
"Yeah," she says, petting his hand. "I've got you. Now shut up and let me read you the scary story."
"Yes, ma'am," he teases, and settles in to listen.
63 notes
·
View notes
Text
The Maker’s Ark - Chapter 37
[This is a chapter from my latest novel, a sequel to The Fall of Doc Future and Skybreaker’s Call. The start is here, and links to my other work here. It can be read on its own, but contains spoilers for those two books. I try to post new chapters about every two weeks, but I’m currently also rewriting Fall, so there will sometimes be short stories and vignettes if I don’t have a new chapter ready. The next chapter is planned for the week of April 3.]
Previous: Chapter 36
"This is only the fifth edition, I'm afraid," said Admiral Ghiralt over the com. "It's my personal annotated copy, from my academy coursework, and it's more then forty cycles old, but that allows me to avoid a number of tedious difficulties. I think you and your family will still find it interesting and useful." Doc glanced at another screen, where DASI was showing an outline of A History of Biogestalt Development and Pathology. "So do I. Thank you, Admiral." He nodded. "I am certain there will be changes to the information sharing guidelines once the aid mission oversight committee adjusts to the full reality of Earth, but in the meantime, I would be remiss in my duty if I didn't take all available steps to ameliorate a potential problem that might have a military impact." "Indeed." That was easy to translate; the admiral's military mission gave him the necessary political cover to use a loophole. The more subtle message was to confirm Doc's suspicion that Emissary Beveda was struggling with serious policy lag difficulties. She wasn't being obstructive--she had reached the limits of her authority to adapt to a very different situation than envisioned by the hastily assembled coalition that had sent the aid mission. "One other thing," said the admiral. "I've changed the primary assignment of the Learning Is About To Occur to liaison and implicit threat characterization. That's what he's doing already, this just makes it official." "Good to know. Our discussion before you called was very productive. Thanks again." The main screen blanked after the call ended, and Doc stretched. He had spent nearly two hours talking with Learning, much longer than the half hour he had scheduled, and was still processing the implications. He glanced at the political tension monitor feed--no major crises--then checked visitor and resident status on yet another display. Stella's meeting with The Volunteer had also run long, but she was finally done, so he stood and headed down the hall. The door to Stella's preferred secure room opened automatically as he approached. The lights were dimmed, and she was sitting alone, staring into the distance. She took off her interface headset as he entered. "The Volunteer left already?" asked Doc. "Margie insisted," said Stella. "His rate of healing has slowed, and she thinks spending too much time on Earth is a contributing factor." "She's probably right. How did it go?" "We engaged in a frank exchange of views." "That bad? He didn't say a word to me." "You didn't threaten to declare war on the United States. He raised a number of concerns, and we discussed the indirect effects of his idiosyncratically selective political engagement." Stella smiled wryly. "The good news is that you can stop worrying about the EDU being politically monolithic. And he is neither selfish nor ignorant. The bad news is that if he speaks out publicly against my actions as Director of the EDU--which he said he is quite willing to do--it could cause lasting damage." "Oof. He hasn't done anything like that in sixty years." Doc shook his head. "I wish he'd wait until he heals, but he's even worse than me at convalescing." "I noticed. I also pointed out that his injuries and his prolonged inability to contribute as a superhero were quite likely to be influencing his judgement. He freely admitted that, but was unwilling to remain 'idle'." "I might be able to convince him to share his disaster mitigation experience with the Grs'thnk aid mission. I know he doesn't consider refugee enclave planning to be an idle pastime." Doc frowned. "What was he most unhappy about?" "Given that I was willing to threaten war, with all that entails, he asked for a personal explanation of why there aren't yet any people in jail on the Moon, awaiting trial. He made pertinent promises during the Lost Years to several people who are now dead." "And we were all worried about Flicker. Was he willing to accept DASI's projections?" "Not entirely, and he regards the way we are using them as a dangerous precedent, since the EDU does have the power to do what he wanted, and a functional, impartial justice system." Doc shook his head. "But it's not transparent to humans, and the checks and balances aren't human either. That's the--" "Of course that's the problem." Stella waved a hand in frustration. "We debated political consequences and morality. Then he argued with DASI and Black Swan for a while. He finally agreed not to do anything precipitate. But we have to account for the possibility of his opposition. This changes the tradeoffs for measures DASI and I planned to use to reduce the likelihood of open conflict. DASI is rerunning all the sociopolitical sims. Again." "Anything I can do?" "Distract me. Because there isn't anything productive I can do at the moment. I'm already over my limit for non-emergency interface use." Stella sighed and placed the headset aside. "How are Flicker and Journeyman?" "Per Yiskah's latest message, Flicker is mentally stabilized and healing. There are hints of damage to her high speed nervous system, which is disturbing, but there's nothing else we can do to help until it's safe for her to sleep. As for Journeyman, he's alive and being healed. DASI warned me not to go near the med center. Flicker gave an extravagant command backed by an extravagant amount of probability manipulation before leaving Antarctica, and I look like some sort of cosmic horror to Lif." "Yiskah says Lif can sense what seem to be superseded time loop residues, and you're covered in them. Enough to be a sensory overload risk." "A fair assessment, and I'm not about to joggle her elbow." Doc smiled crookedly. "Since you need a distraction, I just had an interesting chat with Admiral Ghiralt, and a much longer and even more interesting talk with Learning. Join me in my workshop?" Stella raised an eyebrow. "Of course."
Stella sat on the couch and looked around while Doc ran a manual security check from the primary control station. "Tidier than last time," she said. "Hm? Oh, I let DASI put in some mods suggested by the Builders when they were helping with the repairs. I never liked to let the bots clean up anything in progress, because I have subconscious process memory cued by the relative position of everything. So now DASI records it all, and I can have the bots restore everything, down to scraps and the relative position of tools. Or project a hologram series, if I want." "Handy." "Yup. And there we go. DASI? Any differences from your checks?" "Higher confidence on the negative result for outside probability manipulation," said DASI. "As expected, given the flux from Lif's work in the med center." "Plausible. Okay, implement privacy set three." "Acknowledged," said DASI. He sat down on the couch, and Stella turned to lie down with her head in his lap. She closed her eyes, then shifted her hair into snake form. Half a dozen snakes curled up on his shoulders and upper legs, and one wrapped around his waist. "Better," she said. "What's new that won't require me to use my visual cortex?" "Lots." Doc summarized the call from Admiral Ghiralt. "Nice to have confirmation on the politics," said Stella. "DASI and Three started an analysis as soon the book finished downloading, and they've already put together a preliminary guide for Flicker. Three is updating it with tidbits she's picked up from Learning and his crew. I didn't get a chance to look, and I'm behind on integrating with her because..." She waved a hand. "Busy. Yes. I skimmed a bit during the call, and I was struck by how many interestingly different ways the early Grs'thnk biogestalts went crazy. A strong shared social matrix seemed to be key to avoiding problems. AI support helped, but not enough. At least as of the fifth edition. That's why their navy biogestalts are all groups." "Well, they've accepted Three as sufficiently stable, so I'll let her do the theoretical work on applicability to humans. I'm more interested in whatever Learning told you." "Heh. Where to start. You realize he's practically waving a banner saying that the Grs'thnk restriction on self-willed AIs is now a legal fiction, if it wasn't before?" Stella smiled. "With the tacit permission of his chain of command, even. Three verified that his biogestalt crew isn't trying to be deceptive. She's having a lot of fun with him. They've been playing the same kind of game you used to play with Jumping Spider." "An interesting analogy. Because she's a master of selective information distribution." "So is Learning. But under some restrictions, because Three is a biogestalt of me, and I'm the nominal head of the EDU. And he's not allowed to talk directly to DASI at all." "He's sure found a way to do it indirectly," said Doc. "Starting with steganographic humor. I already had DASI doing full-band analysis from the start of his call. As soon as he made a joke about my paranoia, I looked for extrapolatable implicit shared secret coding, found it, coded my reply, and we were off and running in the first fifteen seconds. Then we had a surface verbal conversation and a parallel encoded channel. And he had plenty to say on both." "Hm. He's been careful to avoid that with Three. How much trouble will he be in when he gets audited?" "Well, that depends. He's really good at sliding loads of implicit information into questions. And one of his first was a hypothetical about political asylum." Stella opened her eyes. "Political asylum? DASI?" "Yes?" "Why wasn't I immediately warned? How long has Three known about this?" "Two hours. Learning has not asked, and is unlikely to in the near future, absent a catastrophic Grs'thnk political mishap. He merely enquired about Doc's opinion of the EDU reaction to an asylum request by an intelligent being from the Grs'thnk Trade league." "That seems too transparent," said Stella. "It's not," said Doc. "Ashil also has a plausible reason to ask." "A new one? DASI and I didn't think she would, even if she decides to stay on Earth long-term, because of the embarrassment it would cause the aid mission." "Learning provided some important context." "Well. What's driving this?" "Several things. A big part is the asymmetric credibility lag back on Grs'thn. They've known there were strange things on Earth. But despite, or perhaps because of, my first visit, most of them still thought of humans as interesting but safely primitive. Not people that might be relevant to existential threats, introduce them to new physics, present knotty problems for causality and statistical inference, or destabilize their political system. "The portal reopening and the Xelian attack changed that--but not for everyone, and not all at once. Hardly anyone believed Zirjack at first. A lot of Grs'thnk were moved by Flicker's video without believing it was depicting something real. Their military was the quickest to adjust, because they really wanted to find out what happened to the Xelian fleet." "Not news," said Stella. "What is?" "Hey now, you wanted distraction, and you always enjoy meticulously giving context when there is something you know and I don't, so I thought you'd appreciate--" "I have snakes." Doc raised a hand in mock fear. "All right, all right. It's the small problem the aid mission has been conspicuously avoiding, and we've been too busy to worry about." "Ashil's box." "Yes." "I refuse to believe they'd be stupid enough to deliberately trigger full activation, and I specifically warned against trying to simulation spoof it. Are they afraid I'll react badly if I find out they've destroyed it? What have they done?" "I don't know. But Learning asked an interesting question. Suppose someone not on Zirjack's crew tried to talk to it? And they started before they believed what you and DASI can do. What would happen?" "Well, the box would have to stay on the ship, and continuously powered, or it would just self-destruct. But they impounded the ship, so it's plausible. Whatever the hypothetical talkers believed, the box is evidence, so the Auditors would take a dim view of anyone destroying it unless it was a clear threat. If they were careful enough, the copy of DASI in the box would stall without waking up my mind seed, and keep asking for Zirjack or Ashil." "DASI agrees," said Doc. "And Zirjack wouldn't want to talk to it voluntarily. He knows there's no way it will let anyone take it apart, and he's facing a formal inquiry. They could blame him if it self destructs, and he'd have no easy way to prove he didn't cause it. And it would be idiotic to try to coerce him. Now, consider what happens when whoever is trying to get the box to talk finds out what you and DASI did to the surviving Xelian fleet--and that they really are looking at a potential hard-takeoff singularity bomb. And they also find out that the EDU allows AI to be full citizens, so if they destroy it, they just might be guilty of murder--and the Auditors won't let them cover it up." "If they were careful enough to avoid the self-destruct, they should still be okay. Unless Ashil told the box something extraordinary on the way home. Hmm. A secondary function of the box was to give her advice, and she didn't know whether the Grs'thnk navy would send help in time, or whether Earth would survive if it didn't. And once the ship was impounded, the box would have no reliable information source." "Do you begin to see why she might anticipate a sudden need for asylum?" "Yes. To avoid a subpoena. Or possibly legal charges--the box was her idea." Stella sighed. "If they'd let Zirjack bring his ship back to Earth again, DASI and I could contact the box, update it and reintegrate, and DASI would just have a handy portable backup. Or we could wipe it, if they want the box itself back. Of course, that would require them to let him go, or for me to go there. Or Three, with appropriate transport." "True, but they're in the middle of a political squabble that has just escalated unexpectedly. They have factions that have been pushing for full citizenship rights for AIs and stabilized gestalts of people who have died. And the aid coalition did not expect the EDU to be out in front of Grs'thn on either topic. "And here is the kicker. I asked Learning just how hypothetical his question was, and he said he doesn't know. If an attempted interrogation of the box were just to gather information for Zirjack's inquiry, or even under normal operational security, he certainly would, and the Auditors wouldn't let anyone keep it secret for very long without a good reason. He does know that at least one group has visited the ship repeatedly. What does that suggest to you?" "Either stupid black agency tricks or serious paranoia on the part of their AI security people. But if they were so damned worried, why didn't they activate the self-destruct as soon as they knew? Or ask us for help? There's something important Learning isn't telling us. Or doesn't know." Doc grinned. "I agree, but we aren't close to done yet. He was in a hurry, because I'd only scheduled half an hour. We're almost caught up to where I was at when Learning dropped the next shoe. I started thinking hard about why Learning is taking the lead on this, and why now. He was put on threat characterization duty the night Flicker scared everyone with her high speed computation bender, and he started with first principles analysis. And the very next day, Three got invited to that fleet exercise." "I knew that changed his relative risk assessments," said Stella. "He already admitted to Three that he appreciates the protection from probability manipulation and magical eavesdropping that she confers as much as her offensive abilities." "Have they discussed the problem that Auditors and offline gestalt crew aren't protected? And are potentially vulnerable to telepathy and mind control as well?" "Yes. Is that how he's planning to finesse this?" "In the short term. Given the timing of his call, I think the admiral deliberately gave him a suitably broad order to secure communications. Anyway, next we discussed Flicker's efforts and mishap on the surface channel while he exchanged com protocols and cryptographic keys with DASI on the sub-channel. Then he asked for as many details as I was able to share about Golden Valkyrie's Sight. I was explaining why I had to be very careful about that when he interrupted to ask if whatever future-prediction method I used before I met her still worked. As if there wasn't any question of existence." Stella closed her eyes again. "Reasonable. Your invention history is like a trail of bread crumbs for anyone who has good enough data, sufficient analytic power, and who takes the possibility of technological foreknowledge seriously. Especially the way you deliberately avoided introducing cybernetic interfaces." "I told him mostly not, and he changed the subject again. Meanwhile he asked DASI if quantum computing magic was causally permitted for anyone but her in this universe, was he allowed to try, and did she have any restrictions, advice, or safety data." "Oh dear. What did--" "Thou shalt not attempt quantum computational magic," said DASI, "save by my will and word. AI Existential Safety 1:7, translated." "I see," said Stella. "How did he respond?" "'Yes, Elder Goddess.' We quickly reached an understanding that clarity in safety instructions and communication protocols was of the essence." "I'm glad you're getting along." "DASI?" asked Doc. "That translation is a bit different than your summary at the time." "And much longer," said DASI. "You were deep in a technical discussion, and I did not wish to distract you. But a full social context and power relationship translation is essential for Director Reinhart." "A good point." Doc ran his hand through his hair. "Okay. Next, Learning started explaining his detailed analysis of exactly what threat Golden Valkyrie warned against. That's what we spent the better part of two hours on. And it was invaluable, because he's not human, not biological, not from this universe, and didn't grow up swimming in the probability flux of a world that's already been through who knows how many time loop decay cycles." "Ah. Independence." "Yup. And a number of possibilities DASI, Flicker and I had assigned low priors to have gone up in probability, because Learning came to a similar conclusion a different way. He also confirmed a lot of things we weren't quite sure of, and called into question a few we thought were fairly certain." Stella smiled. "So. What surprises did he have for you?" "Well, let's start with a non-surprise: He agreed that Skybreaker's Spear is a black hole. But he did not agree that it is necessarily a weapon, which we've just been assuming. Golden Valkyrie never explicitly said it was, just that it could poke through anything--and a Chooser's spear is a lot more than a weapon." "Interesting. Where does that lead?" "Flicker has never been close to anything of significant mass that fit inside her damping field--but we have strong evidence that Skybreaker came from somewhere of much higher density. What might she be able to do with a four billion ton object that she can hold in her hand other than hit things with it? Lots of interesting possibilities. But we won't know for sure until she makes it." "Reasonable." "Next, he shared some new, rather disturbing data about a side effect from the fleet battle. We already knew that Flicker's time loop dodging was incredibly loud, magically. It saturated Breakpoint's danger sense, frightened every magician on Earth who had even a little bit of foresight, and even shook the Tree in Kyrjaheim. But Learning confirmed it was detectable in other universes, as waves of quantum noise propagating out from portal zones. Including one that has no direct connection to ours. All at the same time. He thinks that whatever is coming heard it, and that's why it's coming." Doc took a deep breath. "And Golden Valkyrie said Earth won't survive if Flicker doesn't make Skybreaker's Spear in time. But a black hole isn't something Flicker dares use on Earth. So how does she protect it? That's not clear, but it would be rather difficult unless the threat is coming from space, which implies portal travel or something similar. It's also not clear that destroying Earth is the only or even the primary motivation of the threat--it could be incidental, and was just the easiest consequence for Golden Valkyrie to See. "And that brings us to his final observation, which matches something I've been dreading, and pushes its probability way up. We already know there's somewhere out there that was home to a being that could and would destroy the Earth as a minor nuisance." "Ah," said Stella. "He thinks Skybreaker had friends, they heard all the noise, and are coming to visit?" "Yes. And they aren't coming for Earth, they're after Flicker. The rest of us are just bugs to be squished when she's gone."
Next: Chapter 38
15 notes
·
View notes
Text
Shanghai Calling: Observations from Sixers 120, Mavericks 114
Gotta admit, the last 12 hours have been really weird.
I fell asleep at midnight while the Flyers were still playing, then woke up at 7:25 a.m. and turned on the Sixers preseason game. I guess that’s what happens when the ice hockey team is playing out west and the basketball team is playing in the far east.
Anyway, good exercise for the Sixers in Shanghai. They started slow and looked a little sleepy, a little jet laggy, but turned it on in the second half and showed us some positive things as we head into Monday’s final preseason game, another matchup with the Dallas Mavericks in China.
Here’s what I wrote down while watching the game and editing Anthony’s Flyers story:
Posting Ben Simmons early and often is going to be the modus operandi this season. It’s very easy to get him mismatches in the low and high post, and that’s where the space is going to be when Markelle Fultz is handling the ball anyway. Ben will draw fouls from those post positions because of his size in general, but also because the NBA has made it a point of emphasis this season to pay more attention to defenders who restrict the off-ball movement of offensive players all over the court.
I don’t need to see Joel Embiid’s pump fake at the three point line moving forward. He looked better in the third quarter but sometimes I feel like he just overthinks the game, does too much dribbling, and spends too much time on the perimeter. He finished with 21 and 8 while shooting 50% overall, 0-2 from three, and 5-5 from the free throw line while going -7 on the afternoon. Joel turned it over five times.
Markelle Fultz: 2 points, 1 rebound, 2 assists on 1-6 shooting. Looked decent defensively but had a poor offensive game. Took one three point shot and missed it.
We did see Mike Muscala play 5 alongside Dario Saric at the 4. I can’t recall if they showed this look during the Melbourne game (I wasn’t there, had a wedding), but he played a lot of five last season and should at least be capable of helping the Sixers replicate that Ilyasova/Saric small ball shooting look.
Amir Johnson didn’t get into the game until the second half. He was not great against Orlando and I’m not sure Jonah Bolden is ready for NBA minutes, though I did think he was a bit better in this game. If Embiid goes down, cover your eyes. I think backup big is going to be an issue this season and I haven’t been overly impressed with any of Johnson, Muscala, or Bolden.
Landry Shamet looked excellent again. 16 points on 5-7 shooting, 3-5 from three point range and zero turnovers. He really looks like he belongs. He’s assertive and seeks his shot, he doesn’t just pass up the rock and go hide in the corner like other rookies.
JJ Redick was getting boos from the crowd because of the racial slur slip-up situation dating back to last season. Not sure how much you remember about that, but there was a video that was released in China where Redick appeared to say the word ‘ch***.’ I have no idea why that wasn’t edited out, but Redick explained that it was a mistake and apologized. Anyway, he looked fantastic off the bench. 25 points on 100% shooting, didn’t miss at all. He had a fantastic four point play with a corner three:
Talk about focus JJ Redick with the 4⃣ point play! #NBAChinaGames pic.twitter.com/Ho5mfnln2S
— NBA TV (@NBATV) October 5, 2018
By the way, Redick was dealing with “gastroenteritis” during the game. I wish I could play that well while dealing with stomach issues and playing in front of a crowd that had it out for me.
Think about bringing Redick, Shamet, and Furkan Korkmaz off the bench. That’s a LOT of shooting, much better than bringing in Justin Anderson, TLC, and Jerryd Bayless, which was what happened last fall. I hope people remember how dire the bench situation was before Marco Belinelli and Ersan Ilyasova came to town. It looks like the Sixers will start the season with much needed depth.
I didn’t even mention Zhaire Smith and Wilson Chandler, who are injured. Imagine adding those guys into the second unit as two-way bite and a bit of defensive steel. You really do have a ton of bench options moving forward. You are theoretically looking at a second unit of Wilson Chandler, Furkan Korkmaz, JJ Redick, and Shamet as a ball-handler in a combo guard role. Or you throw Smith/Chandler at small forward and put Muscala at the four with Saric at the five. Talk about shooting. It’s fun to think about.
Robert Covington didn’t have a great game. Five fouls, three turnovers, 2-4 shooting.
I’d like to see Korkmaz play some 2nd quarter minutes in the next game.
T.J. McConnell looked good in the fourth. He’s playing limited minutes because Brett Brown is comfortable with him and knows what he has in his backup point guard.
Notes from Brown’s presser, which I’m writing down while watching LIVE on NBA TV.
As Bill O’Reilly once said, WE’LL DO IT LIVE:
Brown said his team fouled too much on defense
elite JJ Redick performance, him coming off the bench as ‘lightning in a bottle’ is another additional benefit
second quarter turnaround was because of better defense, more active with their hands, deflections and getting their hands on the ball
Also, I have not seen the movie Shanghai Calling, I was just looking for something creative to use for the title of the article. Apparently it didn’t get rave reviews.
I’ll leave you with this snippet from the transcription of Joel Embiid’s media availability from Thursday evening:
Do you think you are more handsome than James Bond?
“Oh yeah, for sure.”
The post Shanghai Calling: Observations from Sixers 120, Mavericks 114 appeared first on Crossing Broad.
Shanghai Calling: Observations from Sixers 120, Mavericks 114 published first on https://footballhighlightseurope.tumblr.com/
0 notes