Tumgik
#Though it's actually a really fun font to write in :D Was fun to sketch
gargaj · 4 years
Text
A breakdown of the Revision 2020 Threeway Battle shader
Those of you who have been following this year's edition of Revision probably remember the unexpected twist in Sunday's timeline, where I was pitted in a coding "battle" against two of the best shader-coders in the world to fend for myself. Admittedly the buzz it caused caught me by surprise, but not as much as the feedback on the final shader I produced, so I hope to shed some light on how the shader works, in a way that's hopefully understandable to beginners and at least entertaining to experts, as well as providing some glimpses into my thought process along the way.
youtube
Recorded video of the event
But before we dive into the math and code, however, I think it's important to get some context by recounting the story of how we got here.
A brief history of demoscene live-coding
Visual coding has been massively opened up when graphics APIs began to introduce programmable fragment rendering, perhaps best known to most people as "pixel shaders"; this allowed programmers to run entire programmable functions on each pixel of a triangle, and none was more adamant to do that than a fellow named Iñigo Quilez (IQ), an understated genius who early on recognized the opportunity in covering the entire screen with a single polygon, and just doing the heavy lifting of creating geometry in the shader itself. His vision eventually spiraled into not only the modern 4k scene, but also the website ShaderToy, which almost every graphics programmer uses to test prototypes or just play around with algorithms. IQ, an old friend of mine since the mid-00s, eventually moved to the US, worked at Pixar and Oculus, and became something of a world-revered guru of computer graphics, but that (and life) has unfortunately caused him to shift away from the scene.
His vision of single-shader-single-quad-single-pass shader coding, in the meantime, created a very spectacular kind of live coding competition in the scene where two coders get only 25 minutes and the attention of an entire party hall, and they have to improvise their way out of the duel - this has been wildly successful at parties for the sheer showmanship and spectacle akin to rap battles, and none emerged from this little sport more remarkably than Flopine, a bubbly French girl who routinely shuffled up on stage wearing round spectacles and cat ears (actually they might be pony ears on second thought), and mopped the floor up with the competition. Her and a handful of other live-coders regularly stream on Twitch as practice, and have honed their live-coding craft for a few years at this point, garnering a considerable following.
youtube
Just a sample of insanity these people can do.
My contribution to this little sub-scene was coming up with a fancy name for it ("Shader Showdown"), as well as providing a little tool I called Bonzomatic (named after Bonzaj / Plastic, a mutual friend of IQ and myself, and the first person to create a live coding environment for demoparties) that I still maintain, but even though I feel a degree of involvement through the architectural side, I myself haven't been interested in participating: I know I can do okay under time pressure, but I don't really enjoy it, and while there's a certain overlap in what they do and what I do, I was always more interested in things like visual detail and representative geometry aided by editing and direction rather than looping abstract, fractal-like things. It just wasn't my thing.
Mistakes were made
But if I'm not attracted to this type of competition, how did I end up in the crossfire anyway? What I can't say is that it wasn't, to a considerable degree, my fault: as Revision 2020 was entirely online, most of the scene took it to themselves to sit in the demoscene Discord to get an experience closest to on-site socializing, given the somber circumstances of physical distancing. This also allowed a number of people who hasn't been around for a while to pop in to chat - like IQ, who, given his past, was mostly interested in the showdowns (during which Flopine crushed the competition) and the 4k compo.
As I haven't seen him around for a while, and as my mind is always looking for an angle, I somehow put two and two together, and asked him if he would consider taking part in a showdown at some point; he replied that he was up for it - this was around Saturday 10PM. I quickly pinged the rest of the showdown participants and organizers, as I spotted that Bullet was doing a DJ set the next day (which would've been in a relatively convenient timezone for IQ in California as well), and assumed that he didn't really have visuals for it - as there was already a "coding jam" over Ronny's set the day before, I figured there's a chance for squeezing an "extra round" of coding. Flopine was, of course, beyond excited by just the prospect of going against IQ, and by midnight we essentially got everything planned out (Bullet's consent notwithstanding, as he was completely out of the loop on this), and I was excited to watch...
...that is, until Havoc, the head honcho for the showdowns, off-handedly asked me about an at that point entirely hypothetical scenario: what would happen if IQ would, for some reason, challenge me instead of Flopine? Now, as said, I wasn't really into this, but being one to not let a good plan go to waste (especially if it was mine), I told Havoc I'd take one for the team and do it, although it probably wouldn't be very fun to watch. I then proceeded to quickly brief IQ in private and run him through the technicalities of the setup, the tool, the traditions and so on, and all is swell...
...that is, until IQ (this is at around 2AM) offhandedly mentions that "Havoc suggested we do a three-way with me, Flopine... and you." I quickly try to backpedal, but IQ seems to be into the idea, and worst of all, I've already essentially agreed to it, and to me, the only thing worse than being whipped in front of a few thousand people would be going back on your word. The only way out was through.
Weeks of coding can spare you hours of thinking
So now that I've got myself into this jar of pickles, I needed some ideas, and quick. (I didn't sleep much that night.) First off, I didn't want to do anything obviously 3D - both IQ and Flopine are masters of this, and I find it exhausting and frustrating, and it would've failed on every level possible. Fractals I'm awful at and while they do provide a decent amount of visual detail, they need a lot of practice and routine to get right. I also didn't want something very basic 2D, like a byte-beat, because those have a very limited degree of variation available, and the end result always looks a bit crude.
Luckily a few months ago an article I saw do rounds was a write-up by Sasha Martinsen on how to do "FUI"-s, or Fictional User Interfaces; overly complicated and abstract user interfaces that are prominent in sci-fi, with Gmunk being the Michael Jordan of the genre.
Tumblr media
Image courtesy of Sasha Martinsen.
Sasha's idea is simple: make a few basic decent looking elements, and then just pile them on top of each other until it looks nice, maybe choose some careful colors, move them around a bit, place them around tastefully in 3D, et voilà, you're hacking the Gibson. It's something I attempted before, if somewhat unsuccessfully, in "Reboot", but I came back to it a few more times in my little private motion graphics experiments with much better results, and my prediction was that it would be doable in the given timeframe - or at least I hoped that my hazy 3AM brain was on the right track.
A bit of math
How to make this whole thing work? First, let's think about our rendering: We have a single rectangle and a single-pass shader that runs on it: this means no meshes, no geometry, no custom textures, no postprocessing, no particle systems and no fonts, which isn't a good place to start from. However, looking at some of Sasha's 3D GIFs, some of them look like they're variations of the same render put on planes one after the other - and as long as we can do one, we can do multiple of that.
Tumblr media
Rough sketch of what we want to do; the planes would obviously be infinite in size but this representation is good enough for now.
Can we render multiple planes via a single shader? Sure, but we want them to look nice, and that requires a bit of thinking: The most common technique to render a "2D" shader and get a "3D" look is raymarching, specifically with signed distance fields - starting on a ray, and continually testing distances until a hit is found. This is a good method for "solid-ish" looking objects and scenes, but the idea for us is to have many infinite planes that also have some sort of alpha channel, so we'd have a big problem with 1) inaccuracy, as we'd never find a hit, just something "reasonably close", and even that would take us a few dozen steps, which is costly even for a single plane and 2) the handling of an alpha map can be really annoying, since we'd only find out our alpha value after our initial march, after which if our alpha is transparent we'd need to march again.
But wait - it's just infinite planes and a ray, right? So why don't we just assume that our ray is always hitting the plane (which it is, since we're looking at it), and just calculate an intersection the analytical way?
Note: I would normally refer to this method as "raytracing", but after some consultation with people smarter than I am, we concluded that the terms are used somewhat ambiguously, so let's just stick to "analytical ray solving" or something equally pedantic.
We know the mathematical equation for a ray is position = origin + direction * t (where t is a scalar that represents the distance/progress from the ray origin), and we know that the formula for a plane is A * x + B * y + C * z + D = 0, where (A, B, C) is the normal vector of the plane, and D is the distance from the origin. First, since the intersection will be the point in space that satisfies both equations, we substitute the ray (the above o + d * t for each axis) into the plane:
A * (ox + dx * t) + B * (oy + dy * t) + C * (oz + dz * t) + D = 0
To find out where this point is in space, we need to solve this for t, but it's currently mighty complicated. Luckily, since we assume that our planes are parallel to the X-Y plane, we know our (A, B, C) normal is (0, 0, 1), so we can simplify it down to:
oz + dz * t + D = 0
Which we can easily solve to t:
t = (D - oz) / dz
That's right: analytically finding a ray hit of a plane is literally a single subtraction and a division! Our frame rate (on this part) should be safe, and we're always guaranteed a hit as long as we're not looking completely perpendicular to the planes; we should have everything to start setting up our code.
Full disclosure: Given my (and in a way IQ's) lack of "live coding" experience, we agreed that there would be no voting for the round, and it'd be for glory only, but also that I'd be allowed to use a small cheat sheet of math like the equations for 2D rotation or e.g. the above final equation since I don't do this often enough to remember these things by heart, and I only had a few hours notice before the whole thing.
Setting up the rendering
Time to start coding then. First, let's calculate our texture coordinates in the 0..1 domain using the screen coordinates and the known backbuffer resolution (which is provided to us in Bonzomatic):
vec2 uv = vec2(gl_FragCoord.x / v2Resolution.x, gl_FragCoord.y / v2Resolution.y);
Then, let's create a ray from that:
vec3 rayDir = vec3( uv * 2 - 1, -1.0 ); rayDir.x *= v2Resolution.x / v2Resolution.y; // adjust for aspect ratio vec3 rayOrigin = vec3( 0, 0, 0 );
This creates a 3D vector for our direction that is -1,-1,-1 in the top left corner and 1,1,-1 in the bottom right (i.e. we're looking so that Z is decreasing into the screen), then we adjust the X coordinate since our screen isn't square, but our coordinates currently are - no need to even bother with normalizing, it'll be fine. Our origin is currently just sitting in the center.
Then, let's define (loosely) our plane, which is parallel to the XY plane:
float planeDist = 1.0f; // distance between each plane float planeZ = -5.0f; // Z position of the first plane
And solve our equation to t, as math'd out above:
float t = (planeZ - rayOrigin.z) / rayDir.z;
Then, calculate WHERE the hit is by taking that t by inserting it back to the original ray equation using our current direction and origin:
vec3 hitPos = rayOrigin + t * rayDir;
And now we have our intersection; since we already know the Z value, we can texture our plane by using the X and Y components to get a color value:
vec4 color = fui( hitPos.xy ); // XY plane our_color = color;
Of course we're gonna need the actual FUI function, which will be our procedural animated FUI texture, but let's just put something dummy there now, like a simple circle:
vec4 fui ( vec2 uv ) { return length(uv - 0.5) < 0.5 ? vec4(1) : vec(0); }
And here we go:
Tumblr media
Very good, we have a single circle and if we animate the camera we can indeed tell that it is on a plane.
So first, let's tile it by using a modulo function; the modulo (or modulus) function simply wraps a number around another number (kinda like the remainder after a division, but for floating point numbers) and thus becomes extremely useful for tiling or repeating things:
Tumblr media
We'll be using the modulo function rather extensively in this little exercise, so strap in. (Illustration via the Desmos calculator.)
vec4 layer = fui( mod( hitPos.xy, 1.0 ) );
This will wrap the texture coordinates of -inf..inf between 0..1:
Tumblr media
We also need multiple planes, but how do we combine them? We could just blend them additively, but with the amount of content we have, we'd just burn them in to white and it'd look like a mess (and not the good kind of mess). We could instead just use normal "crossfade" / "lerp" blending based on the alpha value; the only trick here is to make sure we're rendering them from back to front since the front renders will blend over the back renders:
int steps = 10; float planeDist = 1.0f; for (int i=steps; i>=0; i--) { float planeZ = -1.0f * i * planeDist; float t = (planeZ - rayOrigin.z) / rayDir.z; if (t > 0.0f) // check if "t" is in front of us { vec3 hitPos = rayOrigin + t * rayDir; vec4 layer = fui( hitPos.xy, 2.0 ); // blend layers based on alpha output colour = mix( colour, layer, layer.a ); } }
And here we go:
Tumblr media
We decreased the circles a bit in size to see the effect more.
Not bad! First thing we can do is just fade off the back layers, as if they were in a fog:
layer *= (steps - i) / float(steps);
Tumblr media
We have a problem though: we should probably increase the sci-fi effect by moving the camera continually forward, but if we do, we're gonna run into a problem: Currently, since our planeZ is fixed to the 0.0 origin, they won't move with the camera. We could just add our camera Z to them, but then they would be fixed with the camera and wouldn't appear moving. What we instead want is to just render them AS IF they would be the closest 10 planes in front of the camera; the way we could do that is that if e.g. our planes' distance from each other is 5, then round the camera Z down to the nearest multiple of 5 (e.g. if the Z is at 13, we round down to 10), and start drawing from there; rounding up would be more accurate, but rounding down is easier, since we can just subtract the division remainder from Z like so:
float planeZ = (rayOrigin.z - mod(rayOrigin.z, planeDist)) - i * planeDist;
Tumblr media
And now we have movement! Our basic rendering path is done.
Our little fictional UI
So now that we have the basic pipeline in place, let's see which elements can we adapt from Sasha's design pieces.
The first one I decided to go with wasn't strictly speaking in the set, but it was something that I saw used as design elements over the last two decades, and that's a thick hatch pattern element; I think it's often used because it has a nice industrial feel with it. Doing it in 2D is easy: We just add X and Y together, which will result in a diagonal gradient, and then we just turn that into an alternating pattern using, again, the modulo. All we need to do is limit it between two strips, and we have a perfectly functional "Police Line Do Not Cross" simulation.
return mod( uv.x + uv.y, 1 ) < 0.5 ? vec4(1) : vec4(0);
Tumblr media
So let's stop here for a few moments; this isn't bad, but we're gonna need a few things. First, the repetition doesn't give us the nice symmetric look that Sasha recommends us to do, and secondly, we want them to look alive, to animate a bit.
Solving symmetry can be done just by modifying our repetition code a bit: instead of a straight up modulo with 1.0 that gives us a 0..1 range, let's use 2.0 to get a 0..2 range, then subtract 1.0 to get a -1..1 range, and then take the absolute value.
Tumblr media
vec4 layer = fui( abs( mod( hitPos.xy, 2.0 ) - 1 ) );
This will give us a triangle-wave-like function, that goes from 0 to 1, then back to 0, then back to 1; in terms of texture coordinates, it will go back and forth between mirroring the texture in both directions, which, let's face it, looks Totally Sweet.
Tumblr media
For animation, first I needed some sort of random value, but one that stayed deterministic based on a seed - in other words, I needed a function that took in a value, and returned a mangled version of it, but in a way that if I sent that value in twice, it would return the same mangled value twice. The most common way of doing it is taking the incoming "seed" value, and then driving it into some sort of function with a very large value that causes the function to alias, and then just returning the fraction portion of the number:
float rand(float x) { return fract(sin(x) * 430147.8193); }
Does it make any sense? No. Is it secure? No. Will it serve our purpose perfectly? Oh yes.
So how do we animate our layers? The obvious choice is animating both the hatch "gradient" value to make it crawl, and the start and end of our hatch pattern which causes the hatched strip to move up and down: simply take a random - seeded by our time value - of somewhere sensible (like between 0.2 and 0.8 so that it doesn't touch the edges) and add another random to it, seasoned to taste - we can even take a binary random to pick between horizontal and vertical strips:
Tumblr media
The problems here are, of course, that currently they're moving 1) way too fast and 2) in unison. The fast motion obviously happens because the time value changes every frame, so it seeds our random differently every frame - this is easy to solve by just rounding our time value down to the nearest integer: this will result in some lovely jittery "digital" motion. The unison is also easy to solve: simply take the number of the layer, and add it to our time, thus shifting the time value for each layer; I also chose to multiply the layer ID with a random-ish number so that the layers actually animate independently, and the stutter doesn't happen in unison either:
vec4 fui( vec2 uv, float t ) { t = int(t); float start = rand(t) * 0.8 + 0.1; float end = start + 0.1; [...] } vec4 layer = fui( abs(mod(hitPos.xy, 2.0)-1), fGlobalTime + i * 4.7 );
Tumblr media
Lovely!
Note: In hindsight using the Z coordinate of the plane would've given a more consistent result, but the way it animates, it doesn't really matter.
So let's think of more elements: the best looking one that seems to get the best mileage out in Sasha's blog is what I can best describe as the "slant" or "hockey stick" - a simple line, with a 45-degree turn in it. What I love about it is that the symmetry allows it to create little tunnels, gates, corridors, which will work great for our motion.
Creating it is easy: We just take a thin horizontal rectangle, and attach another rectangle to the end, but shift the coordinate of the second rectangle vertically, so that it gives us the 45-degree angle:
float p1 = 0.2; float p2 = 0.5; float p3 = 0.7; float y = 0.5; float thicc = 0.0025; if (p1 < uv.x && uv.x < p2 && y - thicc < uv.y && uv.y < y + thicc ) { return vec4(1); } if (p2 < uv.x && uv.x < p3 && y - thicc < uv.y - (uv.x - p2) && uv.y - (uv.x - p2) < y + thicc ) { return vec4(1); }
Tumblr media
Note: In the final code, I had a rect() call which I originally intended to use as baking glow around my rectangle using a little routine I prototyped out earlier that morning, but I was ultimately too stressed to properly pull that off. Also, it's amazing how juvenile your variable names turn when people are watching.
Looks nice, but since this is such a thin sparse element, let's just... add more of it!
Tumblr media
So what more can we add? Well, no sci-fi FUI is complete without random text and numbers, but we don't really have a font at hand. Or do we? For years, Bonzomatic has been "shipping" with this really gross checkerboard texture ostensibly for UV map testing:
Tumblr media
What if we just desaturate and invert it?
Tumblr media
We can then "slice" it up and render little sprites all over our texture: we already know how to draw a rectangle, so all we need is just 1) calculate which sprite we want to show 2) calculate the texture coordinate WITHIN that sprite and 3) sample the texture:
float sx = 0.3; float sy = 0.3; float size = 0.1; if (sx < uv.x && uv.x < sx + size && sy < uv.y &&uv.y < sy + size) { float spx = 2.0 / 8.0; // we have 8 tiles in the texture float spy = 3.0 / 8.0; vec2 spriteUV = (uv - vec2(sx,sy)) / size; vec4 sam = texture( texChecker, vec2(spx,spy) + spriteUV / 8.0 ); return dot( sam.rgb, vec3(0.33) ); }
Note: In the final code, I was only using the red component instead of desaturation because I forgot the texture doesn't always have red content - I stared at it for waaaay too long during the round trying to figure out why some sprites weren't working.
Tumblr media
And again, let's just have more of it:
Tumblr media
Getting there!
At this point the last thing I added was just circles and dots, because I was running out of ideas; but I also felt my visual content amount was getting to where I wanted them to be; it was also time to make it look a bit prettier.
Tumblr media
Post-production / compositing
So we have our layers, they move, they might even have colors, but I'm still not happy with the visual result, since they are too single-colored, there's not enough tone in the picture.
The first thing I try nowadays when I'm on a black background is to just add either a single color, or a gradient:
vec4 colour = renderPlanes(uv); vec4 gradient = mix( vec4(0,0,0.2,1), vec4(0,0,0,1), uv.y); vec4 finalRender = mix( gradient, vec4(colour.xyz,1), colour.a);
Tumblr media
This added a good chunk of depth considerably to the image, but I was still not happy with the too much separation between colors.
A very common method used in compositing in digital graphics is to just add bloom / glow; when used right, this helps us add us more luminance content to areas that would otherwise be solid color, and it helps the colors to blend a bit by providing some middle ground; unfortunately if we only have a single pass, the only way to get blur (and by extension, bloom) is repeatedly rendering the picture, and that'd tank our frame rate quickly.
Instead, I went back to one of the classics: the Variform "pixelize" overlay:
Tumblr media
This is almost the same as a bloom effect, except instead of blurring the image, all you do is turn it into a lower resolution nearest point sampled version of itself, and blend that over the original image - since this doesn't need more than one sample per pixel (as we can reproduce pixelation by just messing with the texture coordinates), we can get away by rendering the scene only twice:
vec4 colour = renderPlanes(uv); colour += renderPlanes(uv - mod( uv, 0.1 ) ) * 0.4;
Tumblr media
Much better tonal content!
So what else can we do? Well, most of the colors I chose are in the blue/orange/red range, and we don't get a lot of the green content; one of the things that I learned that it can look quite pretty if one takes a two-tone picture, and uses color-grading to push the midrange of a third tone - that way, the dominant colors will stay in the highlights, and the third tone will cover the mid-tones. (Naturally you have to be careful with this.)
"Boosting" a color in the mids is easy: lucky for us, if we consider the 0..1 range, exponential functions suit our purpose perfectly, because they start at 0, end at 1, but we can change how they get here:
Tumblr media
So let's just push the green channel a tiny bit:
finalRender.g = pow(finalRender.g, 0.7);
Tumblr media
Now all we need is to roll our camera for maximum cyberspace effect and we're done!
Tumblr media
Best laid plans of OBS
As you can see from the code I posted the above, I wrote the final shader in GLSL; those who know me know that I'm a lot more comfortable with DirectX / HLSL, and may wonder why I switched, but of course there's another story here:
Given the remote nature of the event, all of the shader coding competition was performed online as well: since transmitting video from the coder's computer to a mixer, and then to another mixer, and then to a streaming provider, and then to the end user would've probably turned the image to mush, Alkama and Nusan came up with the idea of skipping a step and rigging up a version of Bonzo that ran on the coder's computer, but instead of streaming video, it sent the shader down to another instance of Bonzo, running on Diffty's computer, who then captured that instance and streamed it to the main Revision streaming hub. This, of course, meant that in a three-way, Diffty had to run three separate instances of Bonzo - but it worked fine with GLSL earlier, so why worry?
What we didn't necessarily realize at the time, is that the DirectX 11 shader compiler takes no hostages, and as soon as the shader reached un-unrollable level of complexity, it thoroughly locked down Diffty's machine, to the point that even the video of the DJ set he was playing started to drop out. I, on the other hand, didn't notice any of this, since my single local instance was doing fine, so I spent the first 15 minutes casually nuking Diffty's PC to shreds remotely, until I noticed Diffty and Havoc pleading on Discord to switch to GLSL because I'm setting things on fire unknowingly.
Tumblr media
This is fine.
I was reluctant to do so, simply because of the muscle memory, but I was also aware that I should keep the show going if I can because if I bow out without a result, that would be a colossal embarrassment to everyone involved, and I only can take one of those once every week, and I was already above my quota - so, I quickly closed the DX11 version of Bonzo, loaded the shader up in a text editor, replaced "floatX" with "vecX" (fun drinking game: take a shot every time I messed it up during the live event), commented the whole thing out, loaded it into a GLSL bonzo, and quickly fixed all the other syntax differences (of which there were luckily not many, stuff like "mix" instead of "lerp", constructors, etc.), and within a few minutes I was back up and running.
This, weirdly, helped my morale a bit, because it was the kind of clutch move that for some reason appealed to me, and made me quite happy - although at that point I locked in so bad that not only did I pay absolutely not attention to the stream to see what the other two are doing, but that the drinks and snacks I prepared for the hour of battling went completely untouched.
In the end, when the hour clocked off, the shader itself turned out more or less how I wanted it, it worked really well with Bullet's techno-/psy-/hardtrance mix (not necessarily my jam, as everyone knows I'm more a broken beat guy, but pounding monotony can go well with coding focus), and I came away satisfied, although the perhaps saddest point of the adventure was yet to come: the lack of cathartic real-life ending that was taken from us due to the physical distance, when after all the excitement, all the cheers and hugs were merely lines of text on a screen - but you gotta deal with what you gotta deal with.
Tumblr media
A small sampling of the Twitch reaction.
Conclusion
In the end, what was my takeaway from the experience?
First off, scoping is everything: Always aim to get an idea where you can maximize the outcome of the time invested with the highest amount of confidence of pulling it off. In this case, even though I was on short notice and in an environment I was unfamiliar with, I relied on something I knew, something I've done before, but no one else really has.
Secondly, broaden your influence: You never know when you can take something that seems initially unrelated, and bend it into something that you're doing with good results.
Thirdly, and perhaps most importantly, step out of your comfort zone every so often; you'll never know what you'll find.
(And don't agree to everything willy-nilly, you absolute moron.)
10 notes · View notes
dxmedstudent · 5 years
Text
Weird Asks that Say a Lot  Meme...
My friend the wonderful @meanwhileonwednesday suggested I fill out Every even number for the 'weird asks that say a lot', so here I am. Thanks, friend! XD
2. chocolate bars or lollipops?
Chocolates.
4. how did your elementary school teachers describe you?
At my first school? Artistically talented and perceptive (one teacher was very vividly impressed by my grasp of duck anatomy at like 5 years old). Then there’s the teacher at my new school who thought I had special needs because I was withdrawn (I was being bullied by most of the class, really); she was a new teacher and not really equipped to deal with that. By the end of primary school, I went back to being commended on my work ethic and smarts and artistic ability.
6. pastel, boho, tomboy, preppy, goth, grunge, formal or sportswear?
Hmmm I think my work clothes are mostly a formal/preppy mix. With a little bit of boho thrown in, particularly when I’m at home.
8. movies or tv shows?
I prefer movies, because they represent a lot less commitment (America, please stop giving everything like 17 seasons, I beg of you!), however TV show episodes are shorter and easier to slot into your life than a full movie.
10. game you were best at in p.e.?
I was generally awful in PE. I liked benchball, can’t say that I was good in it, being yet another game where being short doesn’t do you any favours.
12. name of your favorite playlist?
Either my Kickass playlist, or my Reflective playlist.
14. favorite non-chocolate candy?
Starburst.
16. most comfortable position to sit in?
Curled up, on my side, in a nice big armchair with my legs hanging off the side. Surrounded by pillows, and probably a cat or two.
18. ideal weather?
Picture this: it’s a sunny day; warm but not too hot. Maybe around 24 degrees celsius. There’s a warm breeze; it’s not stifling, and it’s not cold enough to make you shiver. The trees rustle with the sound of the wind; change is in the air. You can go out in short sleeves, perhaps with the thinnest of cardigans if like me your metabolism basically died 300 years ago.
20. preferred place to write (i.e., in a note book, on your laptop, sketchpad, post-it notes, etc.)?
Depends on what I’m writing. I am the kind of ineffectual person who starts to write tings in a notebook, but also a couple of word docs. I have post- it notes for important things. I document ideas for my comic in a note/sketch book. I love doodling in my sketchbooks.
22. role model?
I never really had one, growing up. I guess the closest I’d get is David Attenborough.
24. favorite crystal?
My birthstone is ruby (which is red; my favourite colour!) however I also love opals; I love their irdescent (OK, opalescent, technically) sparkliness and the way they shimmer with lots of colours. I don’t see why everyone prefers massive diamonds when opals are like... so much cooler. I I don’t actually own any, but maybe one day I’ll be able to buy myself a nice one.
26. favorite activity to do in warm weather?
Go for a nice long walk, take lots of pictures, have a picnic in the park. No, I lie, my favourite activity is roping someone I care about into doing it all with me, and having even more fun. 
28. five songs to describe you?
Home - Ellie Goulding Fight Song - Rachel Platten Working Woman’s Blues - Valerie June Alive - Bird Set Free My Medea - Vienna Teng
30. places that you find sacred?
Already been answered.
32. top five favorite vines?
Alas, hard to name off the top of my head. I mainly know vines from various compilations.
34. advertisements you have stuck in your head?
Right now? Thankfully none of them.
36. what is the first meme you remember ever seeing?
That’s impossible to say! Memes were a thing before internet memes became a thing. I’d say that ‘S’ shape we all drew in primary school? Nursery rhymes? Who knows.
38. lemonade or tea?
They don’t usually compete for my love, but i have tea more often than lemonade, purely due to availability reasons.
40. weirdest thing to ever happen at your school?
Some students climbed onto the roof.
42. jacket pockets or pants pockets?
Honestly? Skirt pockets. But being a woman, jacket pockets are usually woefully ineffectual and small. Trouser pockets are a bit better, but again usually small. Whereas if someone puts pockets on a skirt, they make sure they are actually proper pockets!
44. favorite scent for soap?
Maybe honey, or roses, or jasmine.
46. most comfortable outfit to sleep in?
A baggy pair of PJs; I’m a dress for comfort kind of girl. Particularly since the places I’ve lived haven’t always been great in the heating department. I’ve been known to sleep in a hoodie when it gets cold.
48. if you were a fruit, what kind would you be?
I would like to be a berry, or maybe an apple. Something pinkish red. Sweet, and a little sharp.
50. what made you laugh the hardest you ever have?
Probably my little brother astounding me with how grown-up he is about things. He’s pretty awesome. Or my mum just saying something wildly, hilariously inappropriate XD
52. favorite font?
I love the Komika font family for my comic. I used to use Bookman Old Style, Book Antiqa, Georgia or classic Arial for essays and things like that, when they didn’t specify Times New Roman.
54. what did you learn from your first job?
Always call the med reg if you are stuck, be nice to the nurses and always help each other. OK, I did lots of volunteering in hospital before FY1. In which case my
56. favorite tradition?
My family/culture have a specific tradition on the morning of an exam/interview/life event where you fill a cup with water and a couple of plant leaves (Slavs love putting greenery into everything). You place it at the threshold,  and give it a good kick it with your dominant foot. It symbolises your knowledge flowing, and I guess it’s a good luck charm.. You also aren’t meant to look back (literally); because you should be focusing on the task at hand. As a kid it was a comforting good luck ritual, and I don’t think I ever really grew out of it.
58. four talents you’re proud of having?
I’m proud of my artistic skills, modest though they are. I enjoy creating, and I enjoy that I can make things to cheer up my friends, or things that people here can relate to.
By extension, I’m good with my hands, and that usually translates to picking up procedures and things like that pretty quickly at work. And yes, I love being able to get that cannula in (especially if it’s on the first go!)  when nobody else can. It’s a tiny, tiny thing, but it sparks a little joy. I can develop good rapports with people; which means I can help them to confide their problems, and can help them to feel better or to address things that are bothering them. It’s really mostly about listening and not being judgemental. I am proud that I can sometimes make people feel better, and feel listened to. I’m proud that I learned to try to work through my feelings. As a young person who was really quite stressed, I somehow learned how to apply what’s basically CBT to keep myself relatively sane, and I think it’s helped me a lot. It was only much later that I realised it was basically CBT when I was comparing notes with friends actually going through those kinds of therapies. I’m not perfect at it, and my mind tests me on a regular basis, but it helps.
60. if you were a character in an anime, what kind of anime would you want it to be?
I don’t know what I’d like to be in? Maybe a Ghibli film. I think I’d like that.  When I was at school, a close friend of mine just turned around and said “OMG, you’re just like an anime character”, to fervent agreement from my peers. I guess they meant one of those chirpy, ditzy shojo anime characters. I can still see myself as some shojo series heroine; frantically trying to keep it together under the pressures of magical girldom, being romantically inept, trying to fight off the baddie of the week whilst learning lessons about getting along with each other, being helpful and not being mean.
62. seven characters you relate to?
Right now? Sophie from Howl’s moving castle, Princess Carolyn from Bojack Horseman, Miranda Otto from D. Gray-Man, Elinor Dashwood from Sense and Sensibility, The Red Blood Cell from Cells at Work, Kiki from Kiki’s delivery service, and Aggressive Retsuko.
64. favorite website from your childhood?
I used to love looking at other people’s art on Elfwood or Deviantart.
66. favorite flower(s)?
Today I’m feeling the answer is lilacs.
68. worst flavor of any food or drink you’ve ever tried?
Ugh anything bitter.
70. left or right handed?
I’m ridiculously right handed, but I’ve learned to use my left hand more effectively because of procedures etc. I’m really good with my hands, but my right hand takes over like 80% of the work.
72. worst subject?
PE in school, biochemistry at university.
74. at what pain level out of ten (1 through 10) do you have to be at before you take an advil or ibuprofen?
At home, maybe a 3, because I don’t see the point in suffering needlessly. However at work I’ll do whatever it takes to keep functional including taking pain relief before it gets bad because I don’t want to have to deal with pain and an on-call. I’m not sure if the scale is logarithmic? I’d rate the worst pain that I’ve had 5 ot a 6, and that made me vomit and curl up into a ball and basically unable to do anything. But I can imagine pain that’s much, much worse than that was, so perhaps I just can’t thin
76. what’s your favorite potato food (i.e. tater tots, baked potatoes, fries, chips, etc.)?
This kind of new potato salad my mum makes with onions. Raw onions are totally a trigger food for my IBS, and any time my mum feeds me anything full of onions, she’ll tell me I can take them out if they upset my tummy. And every single time I’ll pile even more onions into my plate because there’s no way I’m letting my gut dictate my life. Turns out, I’m even more stubborn than my IBS; I just don’t want to give up some of the foods that set things off. My GP once recommended a FODMAP diet, and having had a look at all the stuff I’d have to cut, I resolved I’d only start cutting things if my symptoms got really bad.
78. coffee from a gas station or sushi from a grocery store?
Honestly, I have no pretentions to snobbery. The best coffee is the one you get when you are about to collapse on a night shift, even if much, much better coffee exists in the world. And the best sushi is the plain supermarket one you get between on-calls to treat yourself, even if the one from a good restaurat is so much nicer.
80. earth tones or jewel tones?
I wear a lot of jewel tones, but I also wear a lot of earth tones, and I don’t really see them as being in competition. Rock all the colours!
82. pc or console?
Phone. XD I don’t play much on either, mainly due to time. Phone has the benefit of being in my pocket when I’m at a loose end on the bus, or at my parents’. I don’t sit down and make time to play, I play games in the stolen minutes here and there when I don’t have much to do.
84. podcasts or talk radio?
Classical music radio in the office (because it’s the most neutral), retro stations in the car (or whatever your guests would like), and podcasts at home when you are by yourself.
84. barbie or polly pocket?
I didn’t have a real Barbie (fairly sure ours were knockoff dolls) but I do have fond memories of making outfits for our toys. Though our favourites were always various little animal models who got into all sorts of adventures.
86. cookies or cupcakes?
Cookies, but it’s a close call. Really, I’d have to say biscuits, since I eat those more often than either of the above.
88. your greatest wish?
For myself? To be happy. For others? Ditto. 
90. luckiest mistake?
Getting into my first degree. Feels like I fell into it, but it set me off on a great path, and I don’t regret that my initial path was far from straightforward.
92. lamps, overhead lights, sunlight or fairy lights?
All of the above.
94. favorite season?
That kind of Spring-Summer interface when all the plants are in bloom, and the weather is warm but not too hot, and the days are long.
96. desktop background?
Arietty’s bedroom from the Ghibli Borrowers film adaptation. I’m a sucker for ghibli aesthetic; usually because my rooms end up similarly haphazardly adorned with cool things. 
98. favorite historical era?
Every era has its own awesomeness. I feel very fondly for the regency period because of all the books I’ve read set in it, likewise the Victorian period. Though both aren’t without their problems. I realised that I style my hair like a Victorian; centrally parted with a neat, low bun at the nape of the neck. XD
I think that might be all the questions! Phew!
7 notes · View notes
theibgirls · 6 years
Photo
Tumblr media
CAS is an essential part of the IB programme, but coming up with ideas for it can be very challenging, especially if money is tight. Therefore, I present to you 99 Free (or at the very least, inexpensive) CAS ideas!
Please like/reblog if this helped you, and so that it can help others! ❤︎
Creativity
1. Learn a new language: Free apps or websites like Duolingo or Mondly can help you learn a variety of languages. Here is a post about the language availability on various apps. You can even practice by manually translating song lyrics, which really is just an excuse to listen to Bollywood hits, K-pop, or even Shakira- there’s no reason to not have a little fun with it! If you do just 10 minutes a day you’ll get over an hour of CAS done every week. If you do 20 minutes a day, you’ll get over 2 hours a week, and by spending a little more than 20 minutes on one or two days you can easily get 2 and a half hours of CAS a week. 10 weeks of this and you’ll have 50% of your creativity hours done, and all while having fun listening to songs, and not having to spend a penny!
2. Making gifs or edits: You’re already on tumblr, why not use it as an opportunity for CAS? Making original content takes time, and will quickly fill up those 50 hours! If you don’t want your CAS supervisor see which fandoms you’re a part of, make school related content, for example making subject moodboards (self spon), edits of your required reading (maybe typography for your favourite quotes?), or giffing your favourite historical figures. If you’re experienced you can mass produce content, and if you’re a beginner you can check that “new skills” box! GIMP is free, and Photoshop has a free trial. After that you can either pay for it, or perhaps scour the internet for alternative ways to keep it (though you didn’t hear it from me). If you fulfill requests then it counts as service as well.
3. Art: You can either create digital art using the programs listed in the previous suggestion, or you can do it the old fashioned. While art supplies tend to cost a lot, there is no shame in making sketches or comics using good ol’ ink and lead pencils that you already have in your pencil case, and doing it in a notebook. If you’re willing to splurge, there are tons of ways to go with your art!
4. Photography: While a good camera is expensive, you probably already have a camera in your phone. The quality won’t be ideal, but you can easily practice photographing different motifs in different styles. You can also retouch and enhance the photos with GIMP and Photoshop, as mentioned above.
5. Join or create a low maintenance club: Baking and music may be fun, but ingredients cost money, and so do instruments. A debate club or film club won’t cost anything, except maybe if you buy popcorn! Regular meetings will ensure regular CAS hours.
6. Write poetry: Writing a good poem can take many, many hours, which in the context of CAS is a good thing! Take a stroll in the forest or by the seaside and feel those creative juices flowing!
7. Write a book: You know that idea for a novel you’ve had for ages? Write it down. It may feel awkward to show to your writing to your supervisor, but think of it as a free editor or focus group. This is a great excuse to fulfill your dream of becoming an author. Who knows? Maybe the final product is good enough to send to a publisher, or to self-publish on amazon so you can make some money!
8. Make Redbubble designs: A spin-off of the digital art suggestion. Whether it’s simple text or intricate fanart, Redbubble is a great place to display your creativity, and can even make you some money if you’re lucky!
9. Join a choir: Privately owned choirs may cost to join, but your local church will probably let you in for free.
10. Play an instrument: If you don’t already own an instrument, this isn’t a great option on a budget. However, some of you will already own a keyboard or a guitar, and may even already be taking lessons. If you are, then there is no reason not to use it for CAS. And if you own an instrument but don’t go to classes, simply practice on our own or watch tutorials on YouTube.
11. Dungeons and Dragons: Shocking, I know, but it is actually quite easy to justify D&D as creativity. A friend of mine succeeded in doing this, stating that it involved team work, initiative, commitment and problem solving. It goes to show that most things can be justified as CAS if you word everything well enough.
12. Makeup, nail art, or body paint: I highly doubt that applying mascara in the morning counts, but there are certainly many ways to express yourself with makeup. SFX, intricate patterns and new techniques certainly require creativity.
13. Dance: Dance will be expanded on in the Action section, but dance is not only exercise, but a form of expression which requires passion and creativity.
14. Learn coding: Coding has become a valuable skill in the recent years. There’s an endless amount of sources online, many of them free. Not only is it an interesting skill, but it’s an impressive skill to see on a résumé.
15. Make a game or an app: Game development is certainly not easy, but that just means that there will be plenty of hours for you to log! It also has the potential to make you money, which of course is a plus!
16. Start a YouTube channel: Buying a microphone and camera is expensive, but unless you’re aiming to become a YouTube star there’s no reason to spend money on equipment. CAS doesn’t discriminate between a $500 camera and a built in webcam, or between Adobe Premiere and Windows Movie Maker, so utilize what you have.
17. Join the school newspaper: The school newspaper is a great way to ensure regular hours, and can even count as service. There are many different types of articles, so you can get some variety in it too.
18. Send in articles to a newspaper: If you think the school newspaper is aiming too low, you can always submit articles to local newspapers or online magazines such as Buzzfeed. Your submissions may not always be published, but it’s worth a try, and the hours will count anyway!
19. Make a PSA video: There are tonnes of important causes you can promote, and a PSA video is a great way to do it. Furthermore, the service aspect will count for service hours, and if you do it with a friend it can count as a CAS project.
20. Acting: There are plenty of auditions around, whether it be to a school play or primetime TV. You don’t even need to get a role, simply auditioning is enough as you’ve been a risk taker (your coordinator will appreciate you using the IB learner profile in your reflections), and been creative.
21. Making a short film: Combining he last two points, making a video and acting, take this chance to make a short film (or a full length one depending on your ambition) and Kenneth Branagh’ it as producer, director, writer and lead.
22. Learn animation: Self-explanatory, and a very impressive skill to have.
23. Free online courses: Whether it be public speaking or anthropology, there are many free courses online which can be justified as creativity. Some courses may even look good on your résumé.
24. Make a board game: Board games are a lot of fun, but harder to make than they seem. Your creation might not be the next Monopoly, but it may provide some entertainment when you’re meeting your friends, and wouldn’t playing games with your friend be a great way to get CAS hours?
25. Gardening: A beautiful garden is a challenge to create, but challenges are a part of CAS! From a terrarium to a full scale English garden, there are many options for gardening. Here are some cheap ideas.
26. Make a podcast: Podcasts have become quite popular in the last few years, so try it out for yourself! There are many different topics you could cover, some which could count as service. Discussing one of those topics with a friend could be a great idea for a CAS project.
27. Make a website: This one is quite self-explanatory. Like the podcast, you could easily add a service aspect into it, and working with a friend could make it a CAS project.
28. Translating transcripts of spoken word poem: this one comes from @kahvia, who says “I found the transcripts of the poems on the Internet (some are hard to get, so once I just messaged the author on Facebook) and translated into my native language. It's hard and time consuming, but can be done on the go, so you can do CAS when commuting.”
29. Calligraphy: I must confess that I don’t know a lot about calligraphy, but I assume that amazing tools can cost quite a bit. But remember, CAS isn’t about quality, it’s about quantity, so screw expensive tools and just go for it!
30. Create your own font: Like with most things in life, wikihow has got your back.
31. Make an interactive story: Cool and largely uncharted territory, and definitely a unique experience. This will help you out.
32. Learn origami: Origami is beautiful, and the possibilities are endless. Although origami paper is preferred, it is possible to use regular paper too, which will save you some bucks. Google and YouTube have a million tutorials, so they got you covered.
33.  Make a Studyblr: Do you have any idea how many hours I’m getting just by making this list?
Action
1. Go jogging: Perhaps the most obvious free exercise is jogging. All you need is a pair of sneakers and you’re good to go (jogging)!
2. Play Pokémon Go: If you are still one of the few people playing Pokémon Go, walk until your eggs hatch. You could simply walk, but games make it a bit more interesting. On your CAS worksheet you can simply say you plan on walking 2km a day, but in your head and your heart it’s an epic quest for Pikachu.
3. Yoga: Yoga has numerous health benefits and is a great choice for those who don’t like exercise. Power yoga is an option for those who prefer a challenge, but beginner’s yoga isn’t too strenuous and can easily be done at home. Although a yoga mat is preferable, a lot of the moves can be done on the bed or just the floor. YouTube and the app store have thousands of free options, so there’s plenty to choose from, from 10 minutes to an hour. Half an hour before bed each day will have you finishing up your activity hours in no time!
4. Swimming in a public pool, lake or ocean: There are some public pools, but many pools require an entrance fee. The ocean does not. It’s not as easy to swim laps as in a pool, but it will do in a pinch.
5. A 30 day exercise challenge: The internet is full of 30 day exercise plans. Although they’re usually not an ideal fitness plan it will challenge your commitment, and you can get a month worth of CAS.
6.  Biking: Assuming you already have a bike, biking is a very cheap method of exercise, but very efficient. Biking to and from school will count, and if takes about 20 minutes back and forth a day, you’ll get 100 minutes in a school week. It’s regular exercise, and therefore it’s regular CAS.
7. Free apps: There’s an almost unlimited amount of exercise apps in the app store, and many of them are free. Try them out! Even a 7 minute exercise app can be useful. 49 minutes every week can be rounded up to 50 minutes, which is a great place to start if you’re new to CAS.
8. Dog walking: If you have your own dog, good for you! Take the adorable little pupper out for a walk. And if not, ask a neighbour if you can steal their dog take their dog for walks. Another case of regular exercise resulting in regular CAS hours.
9. Dance: Not all dancing has to be taught in class. Online you will find numerous tutorials for various dance styles, from belly dancing to hip hop. And if you choose to learn a dance style from another culture, like India’s kathak or the Latin samba you get to learn about other cultures and therefore be a global citizen (as the IBO likes to tell us to be).
10. Dance apps or games: This activity isn’t as focused on independent learning as the previous dance suggestion, but it works nonetheless. Games like DDR or Just Dance are found in many households, so you might already have access to them at home. Just Dance includes an exercise mode, so give it a go! And if you don’t have them, there’s always the free Just Dance app, which should do the trick, memes aside.
11. PlayStation or Wii games: Certainly not a cheap option if you don’t already have the consoles or games, but if you have Wii Sports or PlayStation 3 Sports Champions you have a great way to exercise without leaving your living room.
12. Self-defense: When you can’t afford to go to a self-defense class, we have the internet. Learning proper self-defense is sadly very important, but since it’s important to learn, why not learn it for CAS? Practice with a friend until you’re a ninja, or until you have 15 hours of activity completed.
13. Celebrity workout tape: You know the ones. It doesn’t necessarily have to be a Jane Fonda tape from the 80s which you recreate in a leotard, but then again, why not? You could use a random person’s workout tape, but I think Jane Fonda can be trusted (I mean she’s 80 and have you seen how good she looks?). Cheesy as celebrity workout tapes are, especially the ones from the 80s, there’s something special about them. Many of them can be found online, so give them a go, leotard or no!
14. Jump rope: Chances are you still have a jump rope lying around the house from when you were a kid. Rope jumping is actually very good exercise, so try to find your old toy again- it will come in handy!
15. Chair workouts: Fulfill your dream of becoming Britney Spears with some chair exercises. There’s no need to buy fancy equipment when you can just go to your kitchen instead.
16. Basketball: No need to join a team as long as you have a hoop at home. Many people still have a hoop over the garage door from when they were children, why not utilize them?
17. Join a school club: Of course, any club works, but most clubs will require an entry fee. School owned ones are unlikely to ask for one.
18. Hiking: Fresh air, breath-taking views, and all that crap.
19. Running competitions: 5k runs are frequently put on, why not join one?
20. Walk home: Is it cheating? Probably. But walking is activity, so why shouldn’t you take advantage of it? You don’t need to specify that you’re walking home, you can simply say a daily walk of x minutes.
21. Basic gymnastics or acrobatics: When I say basic, I mean basic. Somersaults, cartwheels, the works. It’s technically exercise, and you can say you’re doing acrobatics without going into further details.
22. Tree climbing: An alternative to rock climbing, only it’s free.
23. Use stockings as resistance bands: I honestly don’t know how well this works, but google said it works so it must be true.
24. Water gymnastics: Once again, doing things properly is overrated. Go to a pool and try to figure it out yourself, or with a friend. It may look ridiculous, but you’ll be trying. Another option is to do it some meters away from an ongoing class, because stealing exercise kinda works according to an episode of Will and Grace.
25. Badminton: When I say badminton, I don’t mean fancy professional badminton, I mean “get a gas station badminton racket and play in the park or your lawn”.
26. Foraging: Go look for mushrooms in a forest and keep track of how long you’ve been out and how long you’ve walked.
27. Orienteering: Although I personally despise orienteering with a violent passion, I have many friends who enjoy it, one who even does it for fun. Orienteering can be planned with friends, and can take place in a forest or a city.
28. Treasure hunt: Almost an extension of orienteering, you can plan a treasure hunt in a city or a forest. With the added element of the treasure hunt, there’s a case for creativity, and doing it in a group can work as a CAS project.
29. Frisbee: Frisbees are cheap and can be bought at a gas station, and work as a fun group activity.
30. Help the elderly: As you will see in the Service section, elderly neighbours might need some help cutting grass or shoveling snow. And as anyone who has ever shoveled snow knows, it’s a surprisingly efficient exercise.
31. Gym trial: Many gyms offer a free trial for a day or a week, or even a month, which is easy to take advantage of. Use the free days to their full extent, and if that isn’t enough, go to another gym chain and use their trial. Obviously this won’t be a long term thing, but if you work long, and not necessarily hard, 15 hours should be manageable.
32. Pilates: An alternative to yoga that works as well at home as at a gym.
33. PARKOUR: … don’t die.
 Service
1. Join Amnesty: Amnesty is an organization that raises awareness for a number of important issues, and often collect signatures for their causes. Be the one who hunts for signatures and watch the service hours roll in.
2. Join the Red Cross, or any other charitable organization: The Red Cross needs no introduction. It is perhaps the most famous charity in the world, and does a lot of good. However, there have been controversies surrounding it in the past, so if you want to support another charity instead, go for it! Find a charity that is important to you and the service hours will feel even sweeter.
3. Blood donation, or spreading awareness for it: Donating blood will often get you a small payment, and you can’t do it often, so it isn’t ideal for service. However, going to your local donation center and asking for pamphlets and sign up forms to bring to school or a stand at the mall is a great way to raise awareness and encourage other people to go donate blood. It’s one of those things people talk about doing but always put off, so be the person that changes their mind-set!
4. Helping out at school events: School discos, bake sales, or bazaars always need volunteers, and it’s a great way to get many hours done at once. Contact the PTA at your school or other schools in the area and see when upcoming events are taking place and you’ll easily get at least 15 hours of service done. If you really phrase things well you might even be able to get some creativity hours.
5. Dog walking: Expanding on the point in Action, you can walk other people’s dogs as service. Ask a neighbour if they need help, or post an ad at the grocery store. Service hours and spending time with dogs, what more could you want?
6. Volunteer at an animal shelter: Like the previous point, this really is just a great excuse to hang out with animals. Check the local shelter to see if they need any helpers!
7. Volunteering at a senior center: Senior centers are always in need of more hands. Whether it’s cleaning the resident’s rooms, walking with them or just making sure they have some company, there will always be something the center will need help with.
8. Volunteering at a hospital: Not all hospitals allow untrained volunteers, but some hospitals do. If you volunteer at a hospital you will not perform the duties of a nurse, but instead simply provide some company for the people staying there.
9. Homeless shelter: Homeless shelters always need more volunteers. There’s a variety of roles you can fill, from handing out food to collecting donations. No matter what it is you do, it will have a great impact on the people who rely on the shelters.
10. Make a PSA video: As mentioned in the Creativity section, making a PSA video is a great idea for a CAS project as it combines creativity and service, and results in lots of hours.
11. Bake sales: Baking yourself will obviously cost a bit, but most ingredients can probably already be found in your home. Set up a stand in the school corridor, and find a charity to donate the profits to.
12. Volunteer at a library: Most libraries have a variety of volunteer opportunities, from tutoring children to teaching seniors how to use technology. Go to your local library and see what volunteer programs they have!
13. Shoveling snow: Winter doesn’t treat people who live in cold places well. In case of snow you might have several neighbours struggling to clear the snow from their lot. Offer them a hand and feel the CAS hours piling up!
14. Cutting grass: Like shoveling snow, cutting grass is something people need to get done, but it’s backbreaking and time consuming. Go around the neighbourhood and see if anyone needs any help with it!
15. Assisting elderly neighbours: If you have any elderly neighbours, offer to do chores for them, like cleaning and cooking. They’ll be sure to appreciate it, and it can get you semi regular CAS hours.
16. Car washing: No, this does not have to include a red bikini, but it does give you two options: either offer to wash cars for free as service, or to set a price so you can give the profits to charity. All you need is a sponge and some water, so get scrubbing!
17. Scouts: Most scout groups require a member fee, so it’s not ideal to become a scout if you aren’t one. However, if you’re already a member, being a scout leader will get you many, many hours, so take advantage of it!
18. Student union: Student unions work hard, and can therefore get you many hours. There will be a wide range of activities to organize and participate in, so you’ll have some much needed variety.
19. Prom committee: If you’re not interested in joining the student union, there may be some committees that are separate from the union. Prom committees, graduation committees, etc., are all great options that can get you plenty of hours.
20. Babysitting: Give your neighbours a night off by offering to babysit for free. Remember, it doesn’t count as service if you get paid, so make sure the only money you get is to pay for dinner.
21. Tutoring: Some schools have study halls, or a homework club, aka after school homework help for the younger kids. And if your school doesn’t offer it already, ask if you can start it. It’ll be a chance for you to tutor younger kids, and if nobody shows up and wants your help, so what? You offered the service, and even if no one came, the hours count.
22. Start a club: Being a member of a club will get you creativity hours, starting one will get you both. Do it with a friend and you’ve got a CAS project.
23. Join a big brother/big sister organization: There are several of these organizations going around, and a popular one in the US is bbbs.org, which states that their mission is to “Provide children facing adversity with strong and enduring, professionally supported one-to-one relationships that change their lives for the better, forever.” A noble cause for sure, and one which your CAS coordinator will adore. It will tick most outcome boxes, and you will gain something from it too.
24. Volunteer in a political campaign: If there are any elections happening in your country soon, get involved for the good of your community, and your CAS hours!
25. Volunteer at a hotline: Many countries have crisis hotlines that often need more volunteers, why not help out?
26. Start Kiva team: kiva.org is a great website that revolves around microloans. It has the option to make or join teams of lenders. Make a team and try to gain members, spread awareness and get donations to lend money to people in need around the world. As they are loans, you get money back in kiva credit which you can then donate to someone new, thus creating a circle of good. Team meetings to decide which individuals, countries or field partners to donate to next will get you many CAS hours.
27. Plan an athletic event for charity: Whether it be a 5k, orienteering, a treasure hunt (all as mentioned in the activity section), or anything else you can think of, it’s a great way to involve a community, and any entrance fee can be donated to charity. By participating yourself, you can tick all three CAS boxes, and doing it with one or more people makes it a great CAS project.
28. Writing letters to soldiers: This may not be an option everywhere, but some countries have organizations where you can write letters to the soldiers overseas who don’t have anyone writing to them, which is sure to be a morale booster.
29. Host a free workshop: Workshops are a great way to learn new skills, or to teach your skills. Maybe you can teach something you learned from/for your creativity hours!
30. Neighbourhood watch: Neighbourhood watches are a great way to help ensure safety in your local area, so either join one or start one.
31. Volunteer to help immigrants and/or refugees: There are many organizations that work to help immigrants and refugees become integrated in society, whether it be activities for children or events to help newly arrived people learn the local language. Look up any local organizations and see if they’re looking for volunteers!
32. Park maintenance: Many parks need help with a lot of maintenance, from cleaning to repainting benches. Contact whoever is in charge and see if they need any volunteers.
33. Studyblr: Coming up with 99 free CAS ideas is surprisingly time consuming, and so is everything else about a studyblr, so give it a go and get those hours!
82 notes · View notes
resbang-bookclub · 6 years
Text
AMA Transcript: A Little Town Called Death
For our next AMA, @rogha and @soundofez stopped by to talk about their Resbang, A Little Town Called Death! Here’s some of what went down:
Q: Fez, [I] loved your art for this story. How did you decide what you were going to draw?
fez: I grew up with a lot of poker card games, so p much the second I saw crones and cards together I kind of Knew that was what I'd do. :) Also card reading/divination is something I wanted to look into, so I kinda mashed them together. x) And as much as I would have liked to make an entire poker deck, I was not crazy enough to assume that i'd be able to make that happen. :'D
Q: What most inspired you in the fic in terms of choosing what to create?
Fez: FALADA. Uhhhhhhh man idk like… all of it? I mean, I knew I wanted to draw Soul, Maka, Falada, and an ace of spades card. Rogha was messing with the idea of dream crows too, so they made it in.
Q: Did you have any other ideas before deciding to go with the cards? Or did you just know that’s what you wanted to go with?
Fez: I toyed with the idea of wanted posters bc western au? But I didn't really want to dig around for blocky old western fonts, so cards it was. :')
Q: Tell us about your art process for this bang.
Fez: The process came down to roughly: - cards - read up on card divinations and decide what cards to use in what order - sketch cards and be hella dissatisfied - come back after a month or so and resketch the cards - decide to figure out some last minute crones for a title illustration
Q: What are you most proud of for the piece/pieces you did?
fez: The piano was the most fun and somehow also the most smooth.
[Rogha appears!]
Q: Rogha, how did you come up with the idea for the fic?
Rogha: I was watching Wynonna Earp and listening to Hadestown on repeat. And also I really wanted to tackle a genre switch like Pirates of Caribbean. So really, doing a demon western was like the first thing that came to mind.
Q: How was Soul escaping from having his soul collected? Can you elaborate a little more on Maka's truth telling ability - is it just that she can see when people are lying or is there more to that?
Rogha: Soul is fleeing in abject terror. The demon finds this highly entertaining probably, which is why he’s not been caught yet. Maka is sort of in an older line of fairy tales and legends as someone who has like The Sight, and [is] also maybe sort of a Cassandra figure in the story. There’s a lot of influence from fairy tales and mythology in there, but basically she sees what Soul sees when he’s using the seeing stone/coin but like, all the time.
Q: What were the easiest and hardest scenes to write?
Rogha: The hardest were like, the murder mystery scenes and the ending. I wrote like 7000 words in one day before posting, which isn’t a lot to some people, but that’s like, half the entire fic.
fez: It's a lot.                        
Rogha: The easiest was soul and Chrona’s meeting, cause I was pumped as hell for shit to start getting real finally. The whole time I was yelling ‘SOUL ITS MAGIC, THE TOWN IS FULL OF MAGIC’ and he was ignoring me until that moment.
fez: He's good at doing that. :')
Q: How did you go about choosing the roles of each character in the town? Were there some that took a while to pick and some that you knew from the beginning?
Rogha: There were some I knew straight away - like that Lord Death would be the preacher and that one line about Sheriff Albarn wearing the badge but miss Albarn being the Law was one of the first things I wrote. And then others - like I knew what Liz Patti and Kid would be magically, I didn’t know what they be in the context of the western. Which is weird, cause they’re really important. And Black Star and Tsubaki, who I knew exactly what they would be from the get go, never showed up.
Q: How do you think your writing has changed/grown from this?
Rogha: It’s been a while since I wrote anything that wasn’t just like, shits and giggles? So it was really nice to challenge myself and try do a different style. I tried messing around with my like, phrasing and lexicon, which was a lot of reading back what I had just said in my best Georgia accent. Also it had like, almost an actual plot, which is weird for me.
Q: I was going to ask if you had more plans with the AU since it seems like you could do so much with it.
Rogha: I didn’t intentionally leave room for a sequel, but there were a lot of things I just let go in the rush to get it all done, like soul never confronted his demon, Medusa deus ex villaina’s out at the end. [So] it’s a maybe. But I said that about Cryptid so don’t hold your breath.
Q: So what were your plans for Black Star and Tsubaki?
Rogha: Blacksmith husband and wife duo. [They] would make iron tools imbedded with protective magic and Tsubaki was like, going to be some kind of selkie-type being, but I hadn’t figured out what just yet. I was like ‘’cross that bridge when I get to it’ and I never got to it. Also I would just like to say that I asked marsh for permission to do a ‘cowboy thing’ back when I was planning to write a western, and she was like ‘sure I don’t own the concept of cowboys.’ And then I told it was going to be ‘a murder mystery but actually demons’ and she laughed at me a lot for reasons I didn’t understand at the time but do now.
Q: How are you so funny and fast with writing?
Rogha: Well, I’m really bad at being sad and slow at writing so I think these things just balance out. Also, I used to want to be a stand-up comedian but then I got really lazy and realized I could write funny while seated. Still can’t spell though, and I heard that doesn’t count against you in stand-up so I might still do that instead. In the words of Fab, ‘you type like you’re being electrocuted.’
---
Thanks to Rogha and fez for stopping by!! Stay tuned for more transcripts, coming soon!
1 note · View note