diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8017784..a50f78f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,10 @@ name: CI -on: [push, pull_request] +on: + push: + branches: [main, master] + pull_request: + branches: [main, master] env: DATABASE_URL: "https://fake.com" @@ -17,13 +21,10 @@ jobs: run: cp .env.example .env - name: Install Dependencies - run: npm install + run: npm ci - name: Typecheck run: npm run typecheck - name: Lint run: npm run lint - - - name: Print Environment Variable - run: echo $MY_ENV_VAR diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml new file mode 100644 index 0000000..4517ba8 --- /dev/null +++ b/.github/workflows/e2e-tests.yml @@ -0,0 +1,56 @@ +name: E2E Tests + +on: + push: + branches: [main, master] + pull_request: + branches: [main, master] + +jobs: + test: + timeout-minutes: 60 + runs-on: ubuntu-latest + container: + image: mcr.microsoft.com/playwright:v1.42.0-jammy + + services: + mysql: + image: mysql:8.0 + env: + MYSQL_ROOT_PASSWORD: secret + MYSQL_DATABASE: testdb + ports: + - 3306:3306 + options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + - name: Create dummy env file + run: cp .env.example .env + - name: Install Dependencies + run: npm ci + - name: Seed Database + run: | + npx prisma db push + npx prisma db seed + - name: Install Playwright Browsers + run: npx playwright install --with-deps + - name: Start dev server + run: npm run dev > /dev/null 2>&1 & + - name: Wait for dev server to be ready + run: timeout 60s sh -c 'until curl http://localhost:3000 -I; do echo "Waiting for dev server to be running..."; sleep 2; done' + - name: Run Playwright tests + run: npx playwright test + env: + HOME: /root + - uses: actions/upload-artifact@v3 + if: always() + with: + name: playwright-report + path: playwright-report/ + retention-days: 30 + env: + DATABASE_URL: "mysql://root:secret@mysql:3306/testdb" diff --git a/.gitignore b/.gitignore index 6d15b64..b57e61c 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,7 @@ yarn-error.log* # typescript *.tsbuildinfo +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/README.md b/README.md index 8aca208..dae909d 100644 --- a/README.md +++ b/README.md @@ -16,11 +16,11 @@ This is a [T3 Stack](https://create.t3.gg/) project bootstrapped with `create-t3 ### Prerequisites -- A MySQL database URL (you can get one for free at [Planet Scale](https://planetscale.com/)) +- A MySQL database URL (you can get one for free at [Planet Scale](https://planetscale.com/) or use the docker compose file to run MySQL locally) - Google authentication credentials - [Read more](https://next-auth.js.org/providers/google) - (Optional) A free [Upstash](https://upstash.com/) redis URL -Once you have these three things, you can run +### Setup ```bash cp .env.example .env @@ -28,6 +28,36 @@ cp .env.example .env npm install ``` +### Local MySQL database + +You must have docker installed for this to work. You can use a local MySQL database with the following commands + +```bash +docker-compose -f docker-compose.mysql.yml up +# Wait for mysql server to be ready, then run +npx prisma db push +npx prisma db seed +``` + +Then you can just update your `.env` file with `DATABASE_URL=mysql://root:secret@127.0.0.1:3306/testdb`. + +If you ever need to reset the database, you have two options: + +#### 1. Soft reset + +```bash +npx prisma db push --force-reset +npx prisma db seed +``` + +#### 2. Hard reset + +Run the following command to destroy the volumes associated with the mysql database, and then start again from scratch. + +```bash +docker-compose -f docker-compose.mysql.yml down -v +``` + ### Running the project As simple as @@ -42,6 +72,53 @@ You can also run prisma studio with the following command: npx prisma studio ``` +## Running E2E tests locally + +You must have docker installed for this to work. That's because, when running tests locally, we use the same docker container that is used in CI. This ensures that there aren't differences when doing screenshot / visual regression testing. + +You must also make sure that you are using a freshly seeded [local MySQL database](#local-mysql-database). + +### Build the image + +```bash +docker build -t playwright-docker -f tests/Dockerfile-playwright . +docker image ls # Should output "playwright-docker" +``` + +### Run the tests + +```bash +docker run -p 9323:9323 --rm --name playwright-runner -it playwright-docker:latest /bin/bash +# From inside the container now you can run +npx playwright test +``` + +More detailed instructions on the [Docker | Playwright](https://playwright.dev/docs/docker) documentation. Loosely based on [this guide](https://www.digitalocean.com/community/tutorials/how-to-run-end-to-end-tests-using-playwright-and-docker#step-3-mdash-executing-the-tests). + +#### Updating screenshots + +If you need to update the screenshots, then you can run this command instead: + +```bash +npx playwright test --update-snapshots +``` + +And then, once you've run tests, you can update the snapshots in the git repository by running the following (while the docker container is still running, in a separate terminal): + +```bash +docker cp playwright-runner:/app/tests . +``` + +## Updating seed data + +While connected to a production/staging database, run the following: + +```bash +npx tsx prisma/updateSeedData.ts +``` + +This will pull all resources and all public lesson plans into the `seedData.json` file in the git repository. + ## Learn More about T3 To learn more about the [T3 Stack](https://create.t3.gg/), take a look at the following resources: diff --git a/docker-compose.mysql.yml b/docker-compose.mysql.yml new file mode 100644 index 0000000..a186a29 --- /dev/null +++ b/docker-compose.mysql.yml @@ -0,0 +1,31 @@ +# https://github.com/kuroski/github-issue-viewer/blob/main/docker-compose.yml + +version: "3.9" + +services: + db: + image: mysql:oracle + restart: always + environment: + MYSQL_ROOT_PASSWORD: secret + MYSQL_DATABASE: testdb + volumes: + - ./scripts/init.sql:/docker-entrypoint-initdb.d/init-script.sql + - mysql:/var/lib/mysql + ports: + - "3306:3306" + networks: + - mysql + healthcheck: + test: curl --fail http://127.0.0.1:3306/ping || exit 1 + interval: 2s + retries: 10 + start_period: 10s + timeout: 10s + +networks: + mysql: + driver: bridge + +volumes: + mysql: diff --git a/package-lock.json b/package-lock.json index 06d8394..cfd259d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,6 +63,7 @@ }, "devDependencies": { "@next/eslint-plugin-next": "^14.0.3", + "@playwright/test": "^1.42.0", "@tailwindcss/forms": "^0.5.7", "@tailwindcss/typography": "^0.5.10", "@types/eslint": "^8.44.7", @@ -1277,6 +1278,21 @@ "node": ">=14" } }, + "node_modules/@playwright/test": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.42.0.tgz", + "integrity": "sha512-2k1HzC28Fs+HiwbJOQDUwrWMttqSLUVdjCqitBOjdCD0svWOMQUVqrXX6iFD7POps6xXAojsX/dGBpKnjZctLA==", + "dev": true, + "dependencies": { + "playwright": "1.42.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/@prisma/client": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.7.1.tgz", @@ -7831,6 +7847,50 @@ "node": ">= 6" } }, + "node_modules/playwright": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.42.0.tgz", + "integrity": "sha512-Ko7YRUgj5xBHbntrgt4EIw/nE//XBHOKVKnBjO1KuZkmkhlbgyggTe5s9hjqQ1LpN+Xg+kHsQyt5Pa0Bw5XpvQ==", + "dev": true, + "dependencies": { + "playwright-core": "1.42.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.42.0.tgz", + "integrity": "sha512-0HD9y8qEVlcbsAjdpBaFjmaTHf+1FeIddy8VJLeiqwhcNqGCBe4Wp2e8knpqiYbzxtxarxiXyNDw2cG8sCaNMQ==", + "dev": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/postcss": { "version": "8.4.32", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", diff --git a/package.json b/package.json index 7c4ba99..0c2a72f 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ }, "devDependencies": { "@next/eslint-plugin-next": "^14.0.3", + "@playwright/test": "^1.42.0", "@tailwindcss/forms": "^0.5.7", "@tailwindcss/typography": "^0.5.10", "@types/eslint": "^8.44.7", diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 0000000..c31f529 --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,83 @@ +import { defineConfig, devices } from "@playwright/test"; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// require('dotenv').config(); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: "./tests", + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: "html", + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL: + process.env.TEST_ENV === "docker" + ? "http://host.docker.internal:3000" + : "http://127.0.0.1:3000", + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: "on-first-retry", + + // Capture screenshot after each test failure. + screenshot: "only-on-failure", + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: "chromium", + use: { ...devices["Desktop Chrome"] }, + }, + + { + name: "firefox", + use: { ...devices["Desktop Firefox"] }, + }, + + // { + // name: "webkit", + // use: { ...devices["Desktop Safari"] }, + // }, + + /* Test against mobile viewports. */ + // { + // name: "Mobile Chrome", + // use: { ...devices["Pixel 5"] }, + // }, + { + name: "Mobile Safari", + use: { ...devices["iPhone 12"] }, + }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { ...devices['Desktop Edge'], channel: 'msedge' }, + // }, + // { + // name: "Google Chrome", + // use: { ...devices["Desktop Chrome"], channel: "chrome" }, + // }, + ], + + /* Run your local dev server before starting the tests */ + // webServer: { + // command: "npm run dev", + // url: "http://127.0.0.1:3000", + // reuseExistingServer: !process.env.CI, + // }, +}); diff --git a/prisma/seed.ts b/prisma/seed.ts index 34138ef..8feafa8 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -1,54 +1,123 @@ import fs from "fs"; -import { ResourceConfiguration, ResourceType } from "@prisma/client"; -import lodash from "lodash"; +import { type Prisma } from "@prisma/client"; +import { + seedDataFileName, + type getSeedData, + sessionTokenUser, + sessionTokenAdmin, +} from "@/../prisma/seedUtils"; import { db } from "@/server/db"; -import type { RouterOutputs } from "@/utils/api"; -// necessary because of https://stackoverflow.com/a/54302557 -// eslint-disable-next-line @typescript-eslint/unbound-method -const { startCase } = lodash; +async function createUsers() { + console.log("Creating seed users..."); + const date = new Date(); -type JSONResource = RouterOutputs["resource"]["getById"] & { - categories: string[]; -}; + // 1. We make sure a test user exists in our local database, `upsert` will make sure we only have this user in our database + const user = await db.user.upsert({ + where: { + email: "user@e2e.com", + }, + create: { + name: "e2e_user", + email: "user@e2e.com", + // 2. We need a session which is used by NextAuth and represents this `e2e@e2e.com` user login session + sessions: { + create: { + // 2.1. Here we are just making sure the expiration is for a future date, to avoid NextAuth to invalidate our session during the tests + expires: new Date(date.getFullYear(), date.getMonth() + 1, 0), + sessionToken: sessionTokenUser, + }, + }, + // 3. Here we are binding our user with a "Google fake account" + accounts: { + create: { + type: "oauth", + provider: "google", + providerAccountId: "2222222", + access_token: "ggg_zZl1pWIvKkf3UDynZ09zLvuyZsm1yC0YoRPt", + token_type: "Bearer", + scope: + "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid", + }, + }, + }, + update: {}, + }); + + const admin = await db.user.upsert({ + where: { + email: "admin@e2e.com", + }, + create: { + name: "e2e_admin", + email: "admin@e2e.com", + sessions: { + create: { + // 2.1. Here we are just making sure the expiration is for a future date, to avoid NextAuth to invalidate our session during the tests + expires: new Date(date.getFullYear(), date.getMonth() + 1, 0), + sessionToken: sessionTokenAdmin, + }, + }, + // 3. Here we are binding our user with a "Google fake account" + accounts: { + create: { + type: "oauth", + provider: "google", + providerAccountId: "33333333", + access_token: "aaa_zZl1pWIvKkf3UDynZ09zLvuyZsm1yC0YoRPt", + token_type: "Bearer", + scope: + "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid", + }, + }, + }, + update: {}, + }); + + return { user, admin }; +} async function main() { + const DATABASE_URL = process.env.DATABASE_URL; + if ( + // DATABASE_URL used in CI + DATABASE_URL !== "mysql://root:secret@mysql:3306/testdb" && + // DATABASE_URL used when running locally + !DATABASE_URL?.includes("127.0.0.1") + ) { + throw new Error( + "DATABASE_URL is not pointing to a local database. Aborting.", + ); + } + console.log("Start seeding..."); - const seedData = Object.entries( - JSON.parse(fs.readFileSync("./prisma/seed.json", "utf8")) as Record< - string, - JSONResource - >, - ); + const { admin } = await createUsers(); - for (let i = 0; i < seedData.length; i++) { - console.log("Seeding resource: ", i); + const { resources, lessonPlans } = JSON.parse( + fs.readFileSync(seedDataFileName, "utf8"), + ) as Prisma.PromiseReturnType; - const seed = seedData[i]; - if (!seed) { - console.error("Seed data is empty for index: ", i); - continue; - } + const relatedResourcesToProcess: { parentId: string; relatedId: string }[] = + []; - const seedUser = await db.user.findUniqueOrThrow({ - where: { email: "domenicogemoli@gmail.com" }, - }); + for (let i = 0; i < resources.length; i++) { + console.log("Seeding resource: ", i); - const [id, resource] = seed; + const resource = resources[i]!; let categories = {}; - if (resource.categories) { + if (resource.categories.length > 0) { categories = { - create: resource.categories.map((category: string) => { + create: resource.categories.map(({ category }) => { return { category: { connectOrCreate: { - where: { id: category }, - create: { id: category, name: startCase(category) }, + where: { id: category.id }, + create: category, }, }, }; @@ -56,24 +125,97 @@ async function main() { }; } + resource.relatedResources.forEach((relatedResource) => { + relatedResourcesToProcess.push({ + parentId: resource.id, + relatedId: relatedResource.id, + }); + }); + const createResource = { ...resource, categories, relatedResources: { create: [], }, - type: ResourceType.EXERCISE, - configuration: ResourceConfiguration.SCENE, - createdById: seedUser.id, + createdById: admin.id, }; await db.resource.upsert({ - where: { id }, + where: { id: resource.id }, update: createResource, create: createResource, }); } + // We need to update the relatedResources after all resources have been created + // because we need the resource ids to exist before we can connect them + for (let i = 0; i < relatedResourcesToProcess.length; i++) { + console.log("Seeding relatedResources: ", i); + + const { parentId, relatedId } = relatedResourcesToProcess[i]!; + + try { + await db.resource.update({ + where: { id: parentId }, + data: { + relatedResources: { + connect: { + id: relatedId, + }, + }, + }, + }); + } catch (e) { + console.log( + "Skipping related resource connection because the resource does not exist:", + relatedId, + ); + } + } + + for (let i = 0; i < lessonPlans.length; i++) { + console.log("Seeding lessonPlan: ", i); + + const lessonPlan = lessonPlans[i]!; + + const sections = { + create: lessonPlan.sections.map(({ lessonPlanId: _, ...section }) => { + return { + ...section, + items: { + create: section.items.map( + ({ sectionId: __, resourceId: ___, ...item }) => { + return { + ...item, + resource: item.resource?.id + ? { + connect: { + id: item.resource.id, + }, + } + : undefined, + }; + }, + ), + }, + }; + }), + }; + + await db.lessonPlan.upsert({ + where: { id: lessonPlan.id }, + update: { + sections, + }, + create: { + ...lessonPlan, + sections, + createdById: admin.id, + }, + }); + } + console.log("Seeding complete."); } main() diff --git a/prisma/seedData.json b/prisma/seedData.json new file mode 100644 index 0000000..7576901 --- /dev/null +++ b/prisma/seedData.json @@ -0,0 +1,2311 @@ +{ + "resources": [ + { + "id": "7-things", + "title": "7 Things", + "description": "**Objectives:**\n- Thinking on your feet\n- Supporting each others' ideas\n- Allowing yourself to say crazy things\n\n## Setup\n\nEveryone stands in a circle and claps their hands softly.\n\nPlayer one asks the player to their left for a list of any 7 things, ie: “Lance, may I have 7 of your favourite Mexican foods?” “Katie, I would like to know 7 names for cartoon bunnies that don’t exist!” The asks can be fanciful or real life. \n\nPlayer two responds with their list of 7 and the group counts off after each, ie: \n\n- Lance: Tacos!\n- Group: One!\n- L: Chalupas!\n- G: Two!\n\n… and so on until\n\n- L: Fiestaware!\n- G: Seven! Seven things!\n\nAt this point, the player that just listed 7 things turn to the player to their left and prompts them for a new list of seven things. This repeats until the whole circle has had a turn.\n\n## Variations\n\n- Ask the group to only ask for \"improv-y\" things (ie. things that don't have an objective answer)\n- Invite the group to start clapping progressively louder when someone is stalling, to encourage them to allow themselves to say whatever comes to their mind (and not listen to their inner critic)\n- Make two or more circles and get them to race each other", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-21T19:53:15.517Z", + "updatedAt": "2024-01-21T20:01:49.756Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "7-things", + "categoryId": "spontaneity", + "category": { + "id": "spontaneity", + "name": "Spontaneity" + } + } + ], + "relatedResources": [] + }, + { + "id": "agony-aunt", + "title": "Agony Aunt", + "description": "A word-at-a-time game. Ask the audience what problems they are having. The players respond to the problem a word at a time, as one Agony Aunt.\n\n### Examples\n\nProblem: “My housemate won’t clean their dishes, they just leave them in the sink!”\n\nImproviser A: Dear\n\nImproviser B: Derek,\n\nImproviser C: Your\n\nImproviser A: housemate\n\nImproviser B: sounds\n\nImproviser C: annoying\n\nImproviser A: but\n\nImproviser B: perhaps\n\nImproviser C: he\n\nImproviser A: is\n\nImproviser B: busy\n\nImproviser C: or\n\nImproviser A: scared\n\nImproviser B: of\n\nImproviser C: water.\n\nImproviser A: Try\n\nImproviser B: taking\n\nImproviser C: him\n\nImproviser A: swimming.\n\nImproviser B: Love,\n\nImproviser C: Betsy\n\n### Purpose\n\n* Listening and being in the present moment with each other.\n* Storytelling.\n* Accepting and building on offers.\n* Being obvious.\n* Teamwork and support.\n\n### Tips\n\n* Listen\n* Support the other players, you’re working with them\n* You are one character, so remember to say “I” instead of “we”\n* Match the voice/physicality of the other places\n* Remember the names of the person with the problem, and the name of your agony aunt!\n\n### Origin\n\nThis came out of a Hoopla workshop.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This is called Agony Aunt. Our lovely agony aunt is going to help you with some of your problems. Could we get a name for our agony aunt? Betsy Dandelion Great, do any of you have a problem you’d like Betsy’s advice on? What’s your name?", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:16.428Z", + "updatedAt": "2024-01-24T16:17:47.476Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "agony-aunt", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "agony-aunt", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + }, + { + "resourceId": "agony-aunt", + "categoryId": "teamwork-and-support", + "category": { + "id": "teamwork-and-support", + "name": "Teamwork & Support" + } + } + ], + "relatedResources": [] + }, + { + "id": "anecdotes", + "title": "Anecdotes", + "description": "Three improvisers (can be more than three) play characters that have been best friends since they were kids. They will tell the audience about an event that happened to all three of them together and everyone can remember it and was in their right mind. Get a suggestion of what it was (when their car broke down, when they went on the scariest ride at Disneyland, when they got breakfast together, etc.). The best friends can finish each other’s sentences and the storytelling will move around a lot. At the end of the game, they should all have said about the same amount of words.\n\n### Examples\n\nPlayer A: Do you two remember when our car broke down \n\nPlayer B: On holiday in Nevada \n\nPlayer C: In area 51\n\nPlayer B: No one would believe us that we saw \n\nPlayer A: Aliens, who then repair our car\n\nPlayer C: And they let us pay them in Cheetos and beer! \n\nPlayer B: The fly feature they added to the car was so much fun! \n\nPlayer A: Perfect way to see the Grand Canyon \n\nPlayer C: That trip was even better than the time hitchhiked with pirates!\n\n### Purpose\n\nThis game is great for learning how to build instant rapport between characters through, listening, agreement and shared fun times! Also helps players to practice endowing each other with offers and make their teammates look good!\n\n### Tips\n\nThe players should all speak the same amount by the end of the game. If a player is struggling to add the other players should help them to join for example:\n\n_Player A: “Jim you were a superhero on that trip! When you jumped into the river and saved that puppy! Did you feel like a hero?”_ \n\n_Player B: “Yes but I couldn’t believe I jumped in, the water was so cold! I just remember when I got out you guys were waiting there with a blanket and hot chocolate for me!”_ \n\n_Player C: “And we all did the superhero dance”_\n\n_They all start doing the superhero dance._ \n\nMake each other look AWESOME and this game will be a lot of FUN!", + "type": "EXERCISE", + "configuration": "SCENE", + "showIntroduction": null, + "video": null, + "alternativeNames": "Remember When", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:16.864Z", + "updatedAt": "2024-02-03T13:06:14.597Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "anecdotes", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "anecdotes", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + } + ], + "relatedResources": [] + }, + { + "id": "animal-lineup", + "title": "Animal Lineup", + "description": "A real fun one to get the energy high and embrace failure!\n\n## Setup\n\nYou need 6 players to form a backline. The rest of the players (as many as you like) form a queue and wait to enter as soon as a player is eliminated.\n\nThe 6 players take on the persona of an animal, with a very precise order (from left to right). Each animal has a sound and a gesture\n\n1. The **lion** says \"RAWR!\" and raises their \"paws\" \n2. The **giraffe** says \"Gobble gobble!\" while raising their arm straight in the air and mimicking a giraffe looking left and right with their fist\n3. The **worm** says \"Wriggle wriggle\" while miming a a worm with their finger\n4. The **fox** says \"Cunning, cunning.\" while holding their chin in a sly way\n5. The **monkey** says \"Have a banana\" while peeling a banana\n6. The **vulture** says \"KAKAAW KAKAAW\" while flapping their wings\n\nOnce the group has understood the sound and gesture of each animal, the game begins.\n\n## Rules\n\nEach round starts with the lion.\n\nStarting with the lion, each animal must make their own sound and gesture, and then the sound and gesture of another animal in the lineup. Then that second animal becomes the animal \"with the focus\" and continues the trend (their own sound & gesture, then the sound & gesture of another animal in the lineup).\n\nWhenever someone takes too long or makes the wrong sound/gesture, they are eliminated. Everyone, starting with the animal eliminated, moves one place to the right, and someone new from the queue becomes the new vulture.\n\n## Examples\n\n(The examples omit the gestures for clarity)\n\nLion: RAWR!, Wriggle Wriggle\nWorm: Wriggle wriggle, KAKAAAW KAKAAAW\nVulture: KAKAAW KAKAAAW, Cunning Cunning\nFox: (Too slow, doesn't realise it's their turn)\n\nThe fox is eliminated! The monkey becomes the fox, the vulture becomes the monkey, and someone from the queue becomes the vulture. We start again with the lion\n\n## Tips\n\n- This is a high-energy game - make sure to encourage speed and big gestures/sounds\n- After a while (especially if the group is doing well), it's fun to just eliminate people on very arbitrary things. For example, \"You weren't very convincing as a vulture, eliminated\" or \"Monkeys always peel their bananas with their left hand! Eliminated!\"\n\n## Variations\n\n- You can add or remove animals to mix it up\n- Often there is an additional special rule that only the lion can \"return the focus\" to the animal that has just given it to them", + "type": "EXERCISE", + "configuration": "WHOLE_CLASS", + "showIntroduction": null, + "video": null, + "alternativeNames": "The Zoo", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-21T19:42:55.484Z", + "updatedAt": "2024-01-21T20:01:54.241Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "animal-lineup", + "categoryId": "mistakes", + "category": { + "id": "mistakes", + "name": "Embracing Mistakes" + } + }, + { + "resourceId": "animal-lineup", + "categoryId": "physicality", + "category": { + "id": "physicality", + "name": "Physicality" + } + }, + { + "resourceId": "animal-lineup", + "categoryId": "spontaneity", + "category": { + "id": "spontaneity", + "name": "Spontaneity" + } + }, + { + "resourceId": "animal-lineup", + "categoryId": "warmup", + "category": { + "id": "warmup", + "name": "Warm Up" + } + } + ], + "relatedResources": [] + }, + { + "id": "armando", + "title": "Armando", + "description": "The Armando is a popular and well known long-form improv format used around the world.\n\nAlso known as True Stories at Hoopla (as that name sets the tone for the show well), or as a Commando if featuring multiple monologues.\n\n### Format\n\nA guest monologist, or one of the cast, is given a one word inspiration from the audience. They then tell a true life story or improvised monologue inspired by that word. The cast are listening and remembering bits of the monologue and various themes and patterns and fun things.\n\nAfter the monologue the cast improvise the rest of the cast improvise various scenes inspired by the monologue. Some scenes directly recreating stories from the monologue, some tangential, some exploring games, themes and patterns from the monologue, and some scenes using locations or characters from the monologue as starting points for new scenes.\n\nEvery couple of scenes there may be a new monologue, either inspired by the original word or by something that happened in the scene, or it can just continue straight through from the opening monologue.\n\nThe scenes don’t have to connect together but they often do, with themes and patterns emerging as the show goes on and call backs to earlier scenes.\n\nAt Hoopla courses we tend to keep the monologues quite short, and the monologues tend to be true stories from the person’s life.\n\n### Variations\n\n* Lots of scenes from just one opening monologue.\n* Monologues coming back every couple of scenes, either inspired by the initial suggestion or by something that happened in the scene.\n* Either just one person does monologues or anyone from the cast can.\n\n### Origin\n\nIt’s name comes from The Armando Diaz Experience, Theatrical Movement and Hootenanny, a long running long-form show at IO Chicago and IO West theatres created back in 1995.\n\nThe original monologist was Armando Diaz, the show was originally created and cast by Adam McKay and Dave Koechner, and the original director was Del Close.\n\nThe show also inspired ASSSSCAT at UCB in New York.", + "type": "LONG_FORM", + "configuration": "SCENE", + "showIntroduction": null, + "video": "P4HTxmqNTCY", + "alternativeNames": "True Stories;Commando", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T09:49:43.329Z", + "updatedAt": "2024-01-23T23:35:31.614Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "arms-thru", + "title": "Arms Thru", + "description": "A scene with two pairs of improvisers. In each pair one is the speaker and the other is the arms. One puts their arms through and under the armpits of the other. They do a scene, the speaker can prompt the arms to do things, and vice versa.\n\n### Purpose\n\nThis is a great listening game as everyone has to listen to offers coming from different directions. The improvisers on stage have to listen to each other and also pick up offers from the arms, and the arns improvisers have to pay attention to the dialogue.\n\nIt’s also great for teaching justifying mistakes and offers, as the game works best when the arms are reacted to and incorporated into the scene.\n\nIt’s also good for yes and as people have to accept the arms and allow them to alter the scene.\n\n### Tips\n\n* Justify what the arms do, let them influence your scene.\n* The arms don’t have to behave themselves and always follow the words, sometimes they can do something random which can later be justified.\n\n### Variations\n\n* We haven’t done it yet but there is a version where there is someone else playing the legs too, and maybe someone else playing the head.\n\n### Origin\n\nKeith Johnstone.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This is a game called The Arms. Two improvisers will play a scene where their arms are provided by the people behind them.", + "video": null, + "alternativeNames": "Arms;Arms Through", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:16.980Z", + "updatedAt": "2024-01-24T16:19:31.181Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "arms-thru", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "arms-thru", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + }, + { + "resourceId": "arms-thru", + "categoryId": "teamwork-and-support", + "category": { + "id": "teamwork-and-support", + "name": "Teamwork & Support" + } + } + ], + "relatedResources": [] + }, + { + "id": "arnie", + "title": "Arnie", + "description": "A remake of a famous film where every character is played by Arnie.\n\n### Examples\n\nFilm suggestion: Harry Potter\n\nImproviser A (Hagrid): UH, you are a wizard Harry\n\nImproviser B (Harry): OH, I will kill Voldemort\n\nImproviser C (Voldemort): You think you can kill me, but I’ll be back.\n\n### Purpose\n\n* Commitment\n* Bold choices\n\n### Tips\n\n* If you don’t know the film well you can ask for a famous scene. Or, just use whatever you know!\n* It doesn’t matter whether you’re doing a good impression, just commit to it.\n\n### Variations\n\nCan also be done as a fictional improvised action movie. Try with your other favourite film stars!\n\n### Origin\n\nThis came out of the [Hoopla Improv Marathon](https://www.hooplaimpro.com/the-hoopla-improv-marathon), it was one of the more experimental ideas!", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This is called Arnie. Have you ever watched a film and thought ‘if only every part was played by Arnold Schwarzenegger’? Well today we’re going to remake a famous film with Arnie in every role. Can I get the titles of some famous films?", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:17.237Z", + "updatedAt": "2024-01-24T16:19:54.209Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "arnie", + "categoryId": "characters", + "category": { + "id": "characters", + "name": "Characters" + } + }, + { + "resourceId": "arnie", + "categoryId": "commitment", + "category": { + "id": "commitment", + "name": "Commitment" + } + } + ], + "relatedResources": [] + }, + { + "id": "bad-rap", + "title": "Bad Rap", + "description": "In a circle, the group sets a rhythm. One person raps a rhyming couplet, leaving off the last word. It should be a pretty obvious set-up for the word, eg:\n\n“Going out tonight and I want to flirt\n\nWhat shall I wear? I guess this…”\n\nInstead of staying the obvious rhyming word, the next person in the circle should fill in anything that _doesn’t_ rhyme.\n\n“Spider”\n\nThen everyone raps to the beat:\n\n“Bad rap, bad rap, bad-rap-bad-rap-bad-rap”\n\nWe begin again with the person that just gave one word.\n\n### Variations\n\n* Try it with a word that fits the set up category but doesn’t rhyme (e.g. like in the example – “dress”)", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:17.562Z", + "updatedAt": "2024-01-24T16:20:27.769Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "bad-rap", + "categoryId": "musical-improv", + "category": { + "id": "musical-improv", + "name": "Musical Improv" + } + } + ], + "relatedResources": [] + }, + { + "id": "bibbidy-bibbidy-bop", + "title": "Bibbidy Bibbidy Bop", + "description": "One person stands in the centre of the circle. They challenge someone on the outside by saying “Bibbidy bibbidy bop”. By the time they finish this phrase, the person they are talking to should have said “Bop” or that person will now be in the middle and resume as the challenger.\n\nThe challenger can also say “Bop” to which the outsider must not respond, or they go in the middle.\n\nLayer up these rules one at a time. The next is “James Bond 1 2 3 4 5 6 7 8 9 10” by which time the person they’re challenging must be looking cool and holding a gun while the two people flanking them are Bond Girls saying “Ooh, James” and lifting one leg behind themselves.\n\nWhen people mess up or are too they go into the middle. This is a celebration not a punishment, and we cheer when things go wrong.\n\nOther commands include “Little Mermaid \\[count to 10\\]”, the reply to which is them singing “A whole new world” while the people either side hold their arms and they lean forward.\n\nThe next is “Elephant \\[count to 10\\]”, the central person puts one arm under the other and holds their nose, forming a trunk, the supporters are their ears.\n\nWhen you have a few of these, get the challenger to start making them up (still counting to 10 while they are formed). Once one is made up it stays for the rest of the course!\n\n### Purpose\n\n* Play!\n* Having fun with making mistakes. The mistakes are celebrated!\n* Being alert and in the present moment.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:17.660Z", + "updatedAt": "2024-01-24T16:20:38.524Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "big-booty", + "title": "Big Booty", + "description": "The teacher is Big Booty. From Big Booty’s left, people in the circle are numbered from 1 upwards. Everyone chants:\n\n“Ah, yeah!\n\nBig Booty ah yeah,\n\nBig Booty, Big Booty, Big Booty”\n\nIt’s a call-and-response game where – when you hear your number – you repeat it back, then call someone else’s. You can clap and slap your thighs to keep in rhythm.\n\n“Big Booty, number one”\n\n“Number one, number five” \n\n“Number five, number eight” \n\n“Number eight, Big Booty” etc.\n\nIf someone misses their number, the chant is sung again and they move to the highest number to the right of Big Booty. This changes the numbers of some of the other people in the circle.\n\n### Purpose\n\nIt deliberately creates an environment where mistakes are very likely, but nothing bad happens and we learn to have fun in the failure.\n\nIt’s also a commitment game, and we encourage people to go for it even when they might get something wrong.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:17.762Z", + "updatedAt": "2024-01-24T16:20:57.641Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "big-booty", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + }, + { + "resourceId": "big-booty", + "categoryId": "mistakes", + "category": { + "id": "mistakes", + "name": "Embracing Mistakes" + } + } + ], + "relatedResources": [] + }, + { + "id": "blind-date-character-quirks", + "title": "Blind Date Character Quirks", + "description": "Like the show Blind Date, there is a host, someone looking to meet the love of their life and three contestants. The host asks the dater to leave the room and ask the audience for suggestions of quirks for the contestants i.e they part animal, can only speak in questions, a famous person. The dater then comes back to the stage and asks their potential love matches questions and guesses what their quirks are.\n\n### Purpose\n\nThis game is great for beginner improvisers when playing characters for the first time, as they will tend to get caught up in the game and make bold character choices they wouldn’t usually make. \n It’s also helpful for the player playing the dater practice/develop their listening skills and about being happy with making mistakes. \n And the player playing the host learns how to support the players on stage and make them look good.\n\n### Tips\n\n* Ask the same questions to each contestant.\n* 2-3 rounds of questions is ideal. But the dater can ask more if they need to.\n* The dater can guess lots and keep guessing. Don’t wait until you’ve got the right answer, have fun with getting it wrong.\n* Have the host can interact with the contestants to help the dater guess.\n\n### Origin\n\nWhose Line Is It Anyway?", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "Hello everyone, welcome to Blind Date Character Quirks! One of our improvisers is looking for love. When they return to the stage and they will be meeting these three lucky contestants and will need to guess what their unusual characteristics are, which will be chosen by you the audience.", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:17.867Z", + "updatedAt": "2024-01-24T16:21:06.841Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "blind-date-character-quirks", + "categoryId": "characters", + "category": { + "id": "characters", + "name": "Characters" + } + }, + { + "resourceId": "blind-date-character-quirks", + "categoryId": "mistakes", + "category": { + "id": "mistakes", + "name": "Embracing Mistakes" + } + }, + { + "resourceId": "blind-date-character-quirks", + "categoryId": "teamwork-and-support", + "category": { + "id": "teamwork-and-support", + "name": "Teamwork & Support" + } + } + ], + "relatedResources": [] + }, + { + "id": "blue-ball", + "title": "Blue Ball", + "description": "**Objective:** Make sure your message is sent and received\n\n## Setup\n\nStep One: \n\nPlayers circle up. The facilitator pantomimes reaching into a large bag, and pulls out a small Blue Ball.\n\nStep Two: \n\nThe Blue Ball is passed around the group with deliberate focus and acceptance. The way to pass it is as follows:\n\n- Player One (as they are throwing, makes eye contact with somebody else in the circle): “Blue Ball”\n- Player Two (receiving): says “Blue Ball, thank you.”\n- Player Two (to someone else): “Blue Ball.”\n\nThis exchange is important, as it ensures that the player sends the objects clearly and that the receiver acknowledges what they have just caught. Players must react to not only the size of the ball but also the weight.\n\nStep Three: \n\nFrom here, the facilitator can pull anything they want out of the bag. It’s common to stay a little grounded before you pull out crazy stuff, and many people will go from “Blue Ball” to “Yellow Ball” to “Red Ball” (the colours usually vary in size and weight).\n\n## Variations\n\nTo take the game to the next level, try and throw things such as \"Golf Ball\", \"Bowling Ball\", or \"Tennis Ball\". After that, consider pulling out “piano”, “puppy”, “fire”, \"baby\" or anything in the known or unknown universe.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "Red Ball", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-21T19:47:09.628Z", + "updatedAt": "2024-01-21T20:01:57.069Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "blue-ball", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "blue-ball", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + }, + { + "resourceId": "blue-ball", + "categoryId": "teamwork-and-support", + "category": { + "id": "teamwork-and-support", + "name": "Teamwork & Support" + } + } + ], + "relatedResources": [] + }, + { + "id": "bunny-bunny", + "title": "Bunny Bunny", + "description": "This is probably one of the most popular warm up games ever.\n\nThe whole group stand in one massive circle.\n\n### Level 1:\n\nOne person says “Bunny Bunny” while miming bunny ears with their hands to themself, and then says “Bunny Bunny” again while miming bunny hands pointing to someone else in the circle.\n\nThe person pointed to says “Bunny Bunny” to themself with bunny ears and then “Bunny Bunny” and points to someone else.\n\nThe game continues with everyone passing around the circle.\n\n### Level 2:\n\nThe same as Level 2 but in a rhythm “bunny bunny, bunny bunny, bunny bunny, bunny bunny.”\n\n ### Level 3:\n\nKeep the “Bunny Bunny” bit going but now the two people either side of the person saying “Bunny Bunny” turn and face them and say “Ticky Tocky Ticky Tocky” while jumping side to side with their hands in the air.\n\n### Level 4:\n\nKeep everything from Level 1,2,3 but while people are waiting to say “Bunny Bunny” or “Ticky Tocky Ticky Tocky” they swap and swap hands from knee to knee while saying “Ooh ah, ooh ah.”", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-12T23:22:13.785Z", + "updatedAt": "2024-01-21T19:24:57.433Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "bunny-bunny", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + }, + { + "resourceId": "bunny-bunny", + "categoryId": "mistakes", + "category": { + "id": "mistakes", + "name": "Embracing Mistakes" + } + }, + { + "resourceId": "bunny-bunny", + "categoryId": "spontaneity", + "category": { + "id": "spontaneity", + "name": "Spontaneity" + } + }, + { + "resourceId": "bunny-bunny", + "categoryId": "warmup", + "category": { + "id": "warmup", + "name": "Warm Up" + } + } + ], + "relatedResources": [] + }, + { + "id": "counting-to-twenty", + "title": "Counting to 20", + "description": "This is a great game for bringing focus and solidifying a group.\n\n## Setup\n\nAsk the circle to close their eyes and take a deep breath.\n\nThen, any person can begin by saying \"One\". This will followed by another person saying \"Two\". This repeats until the circle reaches \"Twenty\".\n\n## Rules\n\nIf two people speak at the same time, the group must begin again from \"One\", after taking a deep breath and allowing a new person to begin the new attempt.\n\n## Tips\n\n- Make sure that the group is not relying on \"a system\" (ie. just going around the circle)\n- If the group gets there quickly, it's an idea to check if they are allowing everyone to participate, and to encourage them to try again and balance with each other", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": "8YkGRGGhtUY", + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-21T20:01:39.840Z", + "updatedAt": "2024-01-21T20:01:42.638Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "counting-to-twenty", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + }, + { + "resourceId": "counting-to-twenty", + "categoryId": "teamwork-and-support", + "category": { + "id": "teamwork-and-support", + "name": "Teamwork & Support" + } + } + ], + "relatedResources": [] + }, + { + "id": "dubbing", + "title": "Dubbing", + "description": "Two players do a scene, but cannot speak. Two of the other players provide their voices from off-stage by lip-synching with the mouths of the two players on stage. If the players on stage mouth words the players off stage provide their voices, and if the players off-stage start speaking the players on stage mouth along. There isn’t one leader, all players are making offers and sharing the scene.\n\n### Purpose\n\nThis is a hard game but when players get it they really learn how to listen to each other and share a scene. It is especially with groups where some people are dominating too much and bulldozing others, as the nature of the game forces everyone to slow down and listen to everyone on stage. When teaching people this game make sure the words are actually in synch with the mouth movements and also that it’s not just being lead by one side, encourage the group to find it together.\n\nIt is in an excellent group listening game with players picking up visual and verbal offers from different directions and when people finally get it they experience being very present with the rest of the team, perhaps for the first time.\n\nIf with a newer group it is worth them practicing in pairs first before putting on stage as beginners can find it difficult.\n\n### Tips\n\n* Listen.\n* Don’t try to dominate, try to share the scene together.\n* This game feels confusing at first but give up trying to control it and just listen to the present moment.\n* If providing the other person’s voice watch their mouth at all times, move if you need to, and match their mouth shape. If they stop moving their mouth stop speaking.\n* Give each other offers. People providing the voice can say things like “I’m going to start up my monster truck” so the players on stage are encouraged into something physical. Players on stage can make bold physical offers and just start mouthing words so the voices off stage kick into action.\n* It’s great if you have microphones for the voices, but not essential.\n\n### Variations\n\n* This game is very similar to [sound effects](resource/sound-effects).\n* There is also a version with three people on stage each providing the voice for each other, so the mouthing along and voices all happen on stage. It’s really complicated so I’m afraid we haven’t got around to writing that version up yet!\n* There is also a version called Gibberish Translator where the scene is in gibberish and then there is a gap between lines where the people at the sides translate inbetween lines.\n\n### Origin\n\nWe first saw it on the original “Whose Line Is It Anyway?”. It may originate from Keith Johnstone, as he often invented these kind of split attention games.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This game is called Dubbing. Two improvisers on stage are in a movie and their voices are being dubbed by two people off stage. Please can we get a suggestion for an exciting setting for a movie.", + "video": null, + "alternativeNames": null, + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:18.553Z", + "updatedAt": "2024-01-24T16:21:22.969Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "dubbing", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + }, + { + "resourceId": "dubbing", + "categoryId": "teamwork-and-support", + "category": { + "id": "teamwork-and-support", + "name": "Teamwork & Support" + } + } + ], + "relatedResources": [] + }, + { + "id": "eight-count-shake-down", + "title": "8 Count Shake Down", + "description": "Everyone counts down from 8 to 1 whilst shaking each limb (in turn) eight times: first your right hand, then right hand, then right foot, then left foot.\n\nYou repeat the sequence again but then you count down from 4.\n\nYou repeat this dividing by 2 every time (8,4,2,1) and after the last set of 1 you shout and strike a crazy pose\n\n## Tips\n\n- Encourage participants to make eye contact with each other throughout the game to embrace the awkwardness\n\n## Variations\n\n- Some play with a 5th limb AKA the butt\n- Some decrease by 1 every round instead of dividing by 2. It makes the math easier but it will take longer.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "8 Count Shake", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-20T18:21:55.377Z", + "updatedAt": "2024-01-21T21:09:48.335Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "eight-count-shake-down", + "categoryId": "spontaneity", + "category": { + "id": "spontaneity", + "name": "Spontaneity" + } + }, + { + "resourceId": "eight-count-shake-down", + "categoryId": "warmup", + "category": { + "id": "warmup", + "name": "Warm Up" + } + } + ], + "relatedResources": [] + }, + { + "id": "electric-company", + "title": "Electric Company", + "description": "This can be played as a circle game or even in pairs. Create a slow rhythm by clicking, clapping or tapping. One person says a word and the next person answers it with another. Everyone repeats the combo of words and vocalises a beat (Ba da da) then the person that finished starts a new couplet. It passes around the circle getting faster each time. Though trying for a real word and connection, repeats, screw ups, sounds and made-up words are perfectly acceptable.\n\n1. Light.\n2. Bulb.\n\nALL. Light. Bulb. Ba da da.\n\n1. Cream.\n2. Egg.\n\nALL. Cream. Egg. Ba da da.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "Ba da da;Electric City", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:18.754Z", + "updatedAt": "2024-01-24T16:21:39.151Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "emo-roco", + "title": "Emo Roco", + "description": "2-3 improvisers start a scene based on a suggestion from the audience. Throughout the scene the host pauses the scene and asks the audience for a suggestion of a genre, the scene continues as the same story and characters but now influenced by that genre. Multiple genres happen throughout the game, one genre at a time rather than stacked on top of each other.\n\n### Examples\n\nArcheologist: Finally what we have been looking for, the tomb of Tutankhamum. \n Butler: Well done Ma’am. I had every faith in you. \n Archeologist: Thank you Pembroke, I couldn’t have done it without you. Now please fetch me my spade. \n Host: This scene continues in the style of…. \n Audience: HORROR! \n Host: Horror! \n Butler (menacingly): With pleasure Ma’am. \n Archaeologist: Pembroke! Why are you looking at me like that? AAHHHH!!!\n\n### Purpose\n\nWe mostly use this game for fun. I was about to write “just” for fun but fun and playfulness are the main things we want to encourage in improv, so we’re proud that this game is for fun!\n\nIt also helps character, as beginners will tend to get caught up in the genres and match strong character and emotional choices they wouldn’t usually make.\n\n### Tips\n\n* Try to establish location, relationship and characters as quickly as possible before the genre changes kick in, it will give you a helpful hook to keep throughout the genre changes.\n\n### Variations\n\n* Emotional rollercoaster is basically the same but with changes in emotion instead of genre.\n\n### Origin\n\nNo idea! It’s a very popular game so it seems to be played everywhere but we aren’t sure where it originally comes from. Maybe Whose Line Is It Anyway or Keith Johnstone. Let us know if you know and we’ll update this bit.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This game is called Emo Roco. Two players will start a scene and we are going to change the genre of the scene as we go along. Please can we get a suggestion of a location to start the scene.", + "video": null, + "alternativeNames": "Emotional Rollercoaster;Genre Rollercoaster", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:18.882Z", + "updatedAt": "2024-01-25T20:49:25.233Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "emo-roco", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "emo-roco", + "categoryId": "characters", + "category": { + "id": "characters", + "name": "Characters" + } + }, + { + "resourceId": "emo-roco", + "categoryId": "commitment", + "category": { + "id": "commitment", + "name": "Commitment" + } + }, + { + "resourceId": "emo-roco", + "categoryId": "spontaneity", + "category": { + "id": "spontaneity", + "name": "Spontaneity" + } + } + ], + "relatedResources": [] + }, + { + "id": "emotional-squares", + "title": "Emotional Squares", + "description": "The stage is divided into four quadrants (the boundaries of which are not visibly drawn). The players (or host) get an emotion for each quadrant from the audience. The players start a scene, during which they assume the emotion of whichever quadrant (or quadrants) they are in. Players may move back and forth between quadrants at any time and in any order, and they are allowed to both be in the same quadrant at the same time.\n\n### Purpose\n\nA fun way to get people used to playing scenes and helps students to learn to use the whole space when performing. This game is also a great way to play around with emotions in a scene and showing how having feelings in a scene creates relationships and narrative more easily and quickly. \n\nA lot of the time in real life, we feel something before we know why. Let your characters have fun finding the WHY!\n\n### Tips\n\n* Use all four corners and swap between them regularly throughout the scene.\n* Vary the time spend in each space.\n* Move around the space with purpose.\n* Let the emotions get to the highest level don’t hold back.\n* Really listen to your scene partner this will help you both build to the highest emotional level and where the fun really is!\n\n### Origin\n\nNo idea! It’s a very popular game so it seems to be played everywhere but we aren’t sure where it originally comes from. If you know please let us know and we’ll add it here.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This game is called Emotional Squares. The stage has been split into four squares. Each square has an emotion attached to it chosen by you. As the improvisers play the scene they will be taken on the emotion of square when they stand in them.", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:19.006Z", + "updatedAt": "2024-01-24T16:22:12.890Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "emotional-squares", + "categoryId": "emotions", + "category": { + "id": "emotions", + "name": "Emotions" + } + }, + { + "resourceId": "emotional-squares", + "categoryId": "escalating", + "category": { + "id": "escalating", + "name": "Escalating" + } + }, + { + "resourceId": "emotional-squares", + "categoryId": "object-work-and-environment", + "category": { + "id": "object-work-and-environment", + "name": "Object Work & Environment" + } + }, + { + "resourceId": "emotional-squares", + "categoryId": "offers", + "category": { + "id": "offers", + "name": "Offers" + } + }, + { + "resourceId": "emotional-squares", + "categoryId": "spontaneity", + "category": { + "id": "spontaneity", + "name": "Spontaneity" + } + }, + { + "resourceId": "emotional-squares", + "categoryId": "teamwork-and-support", + "category": { + "id": "teamwork-and-support", + "name": "Teamwork & Support" + } + } + ], + "relatedResources": [] + }, + { + "id": "enemy-bodyguard", + "title": "Enemy & Bodyguard", + "description": "There are three ways to play this game: \"Triangles\", \"Assassin\" and \"Biggest Fan\".\n\n### Triangles Description\n\nEveryone stands around in the room.\n\nEach person silently selects two other people without telling them.\n\nWhen the teacher says “go” the aim is to stay in an equilateral triangle with the two people picked.\n\nThe group will end up constantly moving as people adjust. If the teacher shouts stop everyone points to the two people they picked and sees how close they were.\n\n### Assassin Description\n\nEach person picks two new people without telling them.\n\nThe first person they picked is their assassin out to get them.\n\nThe second person they picked is their bodyguard.\n\nWhen the teacher says “go” everyone tries to keep their bodyguard between themselves and their assassin.\n\n### Biggest Fan Description\n\nEach person picks one other person without telling them.\n\nThey are now the biggest fan of the person they picked.\n\nWhen the teacher says “go” everyone tries to have a clear line of sight between themselves and the person they picked.\n\n### Purpose\n\nThis exercise gets the group to use whole space and be physically aware not just of themselves but others.\n\n### Origin\n\nWe think we got it from Kevin Tomlinson and Mick Barnfather.", + "type": "EXERCISE", + "configuration": "WHOLE_CLASS", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:17.460Z", + "updatedAt": "2024-01-24T16:22:30.513Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "enter-and-exit", + "title": "Enter and Exit", + "description": "Four actors are given cue words (a colour, a number, an animal, an object); one each. Two actors start on stage and the other two in the wings. When you hear your cue word, you enter the stage if you are off and exit the stage if you are already on. You must deliver a reason for entering and exiting. Your own cue word cannot be used on yourself.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:19.311Z", + "updatedAt": "2024-01-24T16:22:42.455Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "everything-emporium", + "title": "Everything Emporium", + "description": "This is a fun guessing game for 4 people.\n\n## Setup\n\nOne player exits the room. They are the guesser and the owner of \"Everything Emporium\" - a shop where one can find absolutely anything (physical or not) in the multiverse. \n\nThe three remaining players are given objects, memories, fantasies, anything really, that they are desperately looking for. After reviewing the gets, the guesser is invited back in. \n\nThey start the scene, picking a big character as the shop owner, and open up for the day. One by one, our shoppers enter the emporium and hint at the object they are looking for until the owner guesses the object correctly and sells it to them. \n\n## Examples\n\nPlayer 1 is looking for a single strand of hair belonging to Miley Cyrus.\nPlayer 2 is looking for Guatemala.\nPlayer 3 is looking for his child's first smile. \n\nPlayer 1 might say something like \"Oh, I desperately need this one ingredient to finish my polyjuice potion so I can go on tour and live in Malibu\" and then \"I don't want to make a whole wig! I just love her so much, I feel like I could have a Party in the USA!\"\n\n## Tips\n\nThe guesser should pick a big fun character and make guesses with nearly each line of dialogue. The host can encourage the audience to snap their fingers if the guesser gets close and clap really hard when its guessed correctly. Once the guesser uses a word, the player is allowed to use it as well. \n", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "cls8te1hf0000xabg901vkic8", + "createdAt": "2024-02-05T11:31:56.305Z", + "updatedAt": "2024-02-05T15:23:14.578Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "everything-emporium", + "categoryId": "commitment", + "category": { + "id": "commitment", + "name": "Commitment" + } + }, + { + "resourceId": "everything-emporium", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + }, + { + "resourceId": "everything-emporium", + "categoryId": "mistakes", + "category": { + "id": "mistakes", + "name": "Embracing Mistakes" + } + } + ], + "relatedResources": [ + { + "id": "party-quirks" + } + ] + }, + { + "id": "example-kitchen-sink-test", + "title": "[Example] Kitchen sink test", + "description": "This resource is here just to test all functionality. Below is an example of all Markdown features:\n\n---\n\nText can be **bold**, _italic_, or ~~strikethrough~~.\n\n[Link to another page]({{site.baseurl}}/).\n\nThere should be whitespace between paragraphs.\n\nThere should be whitespace between paragraphs. We recommend including a README, or a file with information about your project.\n\n# [](#header-1)Header 1\n\nThis is a normal paragraph following a header. GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.\n\n## [](#header-2)Header 2\n\n> This is a blockquote following a header.\n>\n> When something is important enough, you do it even if the odds are not in your favor.\n\n### [](#header-3)Header 3\n\n```js\n// Javascript code with syntax highlighting.\nvar fun = function lang(l) {\n dateformat.i18n = require('./lang/' + l)\n return true;\n}\n```\n\n```ruby\n# Ruby code with syntax highlighting\nGitHubPages::Dependencies.gems.each do |gem, version|\n s.add_dependency(gem, \"= #{version}\")\nend\n```\n\n#### [](#header-4-with-code-not-transformed)Header 4 `with code not transformed`\n\n* This is an unordered list following a header.\n* This is an unordered list following a header.\n* This is an unordered list following a header.\n\n##### [](#header-5)Header 5\n\n1. This is an ordered list following a header.\n2. This is an ordered list following a header.\n3. This is an ordered list following a header.\n\n###### [](#header-6)Header 6\n\n[This is a very long link which wraps and therefore doesn't overflow\neven when it comes at the beginning](.) of the line.\n\n- [This is a very long link which wraps and therefore doesn't overflow the line\n when used first in an item ](.) in a list.\n\n| head1 | head two | three |\n|:-------------|:------------------|:------|\n| ok | good swedish fish | nice |\n| out of stock | good and plenty | nice |\n| ok | good `oreos` | hmm |\n| ok | good `zoute` drop | yumm |\n\n### There's a horizontal rule below this.\n\n* * *\n\n### Here is an unordered list:\n\n* Item foo\n* Item bar\n* Item baz\n* Item zip\n\n### And an ordered list:\n\n1. Item one\n1. Item two\n1. Item three\n1. Item four\n\n### And an ordered list, continued:\n\n1. Item one\n1. Item two\n\nSome text\n\n{:style=\"counter-reset:none\"}\n1. Item three\n1. Item four\n\n### And an ordered list starting from 42:\n\n{:style=\"counter-reset:step-counter 41\"}\n1. Item 42\n1. Item 43\n1. Item 44\n\n### And a nested list:\n\n- level 1 item\n - level 2 item\n - level 2 item\n - level 3 item\n - level 3 item\n- level 1 item\n - level 2 item\n - level 2 item\n - level 2 item\n- level 1 item\n - level 2 item\n - level 2 item\n- level 1 item\n\n### Nesting an ol in ul in an ol\n\n- level 1 item (ul)\n 1. level 2 item (ol)\n 1. level 2 item (ol)\n - level 3 item (ul)\n - level 3 item (ul)\n- level 1 item (ul)\n 1. level 2 item (ol)\n 1. level 2 item (ol)\n - level 3 item (ul)\n - level 3 item (ul)\n 1. level 4 item (ol)\n 1. level 4 item (ol)\n - level 3 item (ul)\n - level 3 item (ul)\n- level 1 item (ul)\n\n### And a task list\n\n- [ ] Hello, this is a TODO item\n- [ ] Hello, this is another TODO item\n- [x] Goodbye, this item is done\n\n### Nesting task lists\n\n- [ ] level 1 item (task)\n - [ ] level 2 item (task)\n - [ ] level 2 item (task)\n- [ ] level 1 item (task)\n- [ ] level 1 item (task)\n\n### Nesting a ul in a task list\n\n- [ ] level 1 item (task)\n - level 2 item (ul)\n - level 2 item (ul)\n- [ ] level 1 item (task)\n- [ ] level 1 item (task)\n\n### Nesting a task list in a ul\n\n- level 1 item (ul)\n - [ ] level 2 item (task)\n - [ ] level 2 item (task)\n- level 1 item (ul)\n- level 1 item (ul)\n\n### Small image\n\n![](../../assets/images/small-image.jpg)\n\n### Large image\n\n![](../../assets/images/large-image.jpg)\n\n\"[Wroclaw University Library digitizing rare archival texts](https://www.flickr.com/photos/97810305@N08/9401451269)\" by [j_cadmus](https://www.flickr.com/photos/97810305@N08) is marked with [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/?ref=openverse).\n\n### Labels\n\nI'm a label\n{: .label }\n\nblue\n{: .label .label-blue }\ngreen\n{: .label .label-green }\npurple\n{: .label .label-purple }\nyellow\n{: .label .label-yellow }\nred\n{: .label .label-red }\n\n**bold**\n{: .label }\n*italic*\n{: .label }\n***bold + italic***\n{: .label }\n\n### Definition lists can be used with HTML syntax.\n\n
\n
Name
\n
Godzilla
\n
Born
\n
1952
\n
Birthplace
\n
Japan
\n
Color
\n
Green
\n
\n\n#### Multiple description terms and values\n\nTerm\n: Brief description of Term\n\nLonger Term\n: Longer description of Term,\n possibly more than one line\n\nTerm\n: First description of Term,\n possibly more than one line\n\n: Second description of Term,\n possibly more than one line\n\nTerm1\nTerm2\n: Single description of Term1 and Term2,\n possibly more than one line\n\nTerm1\nTerm2\n: First description of Term1 and Term2,\n possibly more than one line\n\n: Second description of Term1 and Term2,\n possibly more than one line\n\n### More code\n\n```python{% raw %}\ndef dump_args(func):\n \"This decorator dumps out the arguments passed to a function before calling it\"\n argnames = func.func_code.co_varnames[:func.func_code.co_argcount]\n fname = func.func_name\n def echo_func(*args,**kwargs):\n print fname, \":\", ', '.join(\n '%s=%r' % entry\n for entry in zip(argnames,args) + kwargs.items())\n return func(*args, **kwargs)\n return echo_func\n\n@dump_args\ndef f1(a,b,c):\n print a + b + c\n\nf1(1, 2, 3)\n\ndef precondition(precondition, use_conditions=DEFAULT_ON):\n return conditions(precondition, None, use_conditions)\n\ndef postcondition(postcondition, use_conditions=DEFAULT_ON):\n return conditions(None, postcondition, use_conditions)\n\nclass conditions(object):\n __slots__ = ('__precondition', '__postcondition')\n\n def __init__(self, pre, post, use_conditions=DEFAULT_ON):\n if not use_conditions:\n pre, post = None, None\n\n self.__precondition = pre\n self.__postcondition = post\n{% endraw %}```\n\n```\nLong, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this.\n```\n\n### Mermaid Diagrams\n\nThe following code is displayed as a diagram only when a `mermaid` key supplied in `_config.yml`.\n\n```mermaid\ngraph TD;\n A-->B;\n A-->C;\n B-->D;\n C-->D;\n```\n\n### Collapsed Section\n\nThe following uses the [`
`](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections) tag to create a collapsed section.\n\n
\nShopping list (click me!)\n\nThis is content inside a `
` dropdown.\n\n- [ ] Apples\n- [ ] Oranges\n- [ ] Milk\n\n
", + "type": "EXERCISE", + "configuration": "WHOLE_CLASS", + "showIntroduction": "This game is a fantastic game to play when you don't know what to do.\n\nOur contestants will have to pretend to be a kitchen sink. How will they fare?!\n\nLet's find out!", + "video": "dQw4w9WgXcQ", + "alternativeNames": "Mr. Bombastic;Mr. Luva Luva;Shaggy;The one and only;GOAT", + "published": false, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-12T19:16:01.097Z", + "updatedAt": "2024-01-21T20:19:10.504Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "example-kitchen-sink-test", + "categoryId": "characters", + "category": { + "id": "characters", + "name": "Characters" + } + }, + { + "resourceId": "example-kitchen-sink-test", + "categoryId": "emotions", + "category": { + "id": "emotions", + "name": "Emotions" + } + }, + { + "resourceId": "example-kitchen-sink-test", + "categoryId": "musical-improv", + "category": { + "id": "musical-improv", + "name": "Musical Improv" + } + } + ], + "relatedResources": [ + { + "id": "bunny-bunny" + }, + { + "id": "lalalalala" + }, + { + "id": "something-else" + } + ] + }, + { + "id": "forward-reverse", + "title": "Forward/Reverse", + "description": "Two players start a scene. At any point, the host may clap his/her hands and say “Reverse,” after which the players must repeat the lines they said in reverse order (the words in each line remain in the same order). At any point, the host may then say “Forward,” after which the players resume saying their lines from whatever point they are at in their original order. You can also play with “Slow Motion”, “Freeze” and “Fast Forward”.\n\n### Examples\n\nHost: Forward\n\nActor A: We’ve got five minutes to diffuse this bomb!\n\nActor B: Oh my god! Five minutes! That’s no time at all!\n\nActor A: We better get started, pass me the wire cutters.\n\nHost: Reverse\n\nActor A: We better get started, pass me the wire cutters.\n\nActor B: Oh my god! Five minutes! That’s no time at all!\n\nActor A: We’ve got five minutes to diffuse this bomb!\n\nActor B (walking in relaxed, drinking coffee): Morning Frank, lovely day, say Frank what are we up to today?\n\nActor A: Where the fuck is Bob?\n\nHost: Fast Forward.\n\n### Tips\n\n* Try reversing past the point the scene started.\n* Put movement into the scene.\n* Have a story that actually goes somewhere, so there is something to rewind and fast forward to.\n\n### Purpose\n\n* Playing a fun scene.\n* Paying attention on stage and remembering lines.\n* Getting to the point (the opposite of bridging).\n* Storytelling.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:19.518Z", + "updatedAt": "2024-01-24T16:25:13.329Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "freeze-tag", + "title": "Freeze Tag", + "description": "Two players start in an odd physical position – either ask the audience for one or a letter of the alphabet to inspire each position. \n\nThe rest of the cast surrounds them in a semicircle. The first players do a scene, and if someone from the back line shouts “freeze” then the players in the scene freeze, someone from the back line comes in, taps them on the shoulder, takes over the position, and does a new scene inspired by that position.\n\n## Example\n*Two improvisers are fishing. They are standing next to each other holding fishing rods.*\n\nFisherman: Sure is a good day for fishing.\nFisherwoman: Yessss sir it sure is, an amazing day, sort of day I’m glad to be alive.\nFisherman: Especially after that near death experience you had the other day.\nFisherwoman: Yessss sir, that tuna had it in for me.\n\nPerson from backline: FREEZE!\n\n*The person who yelled freeze steps in, taps one of them out and takes on their exact same position. They turn rods into lightsabres.*\n\nJedi: So Darth Vader we meet again.\nDarth Vader: Yes, it’s great isn’t it?\nJedi: Yes, it is, I love you but our love is not allowed.\n\n## Objectives\n\n- Great way to teach who/what/where, as you are basically doing that rapidly during this game.\n- It’s also good for encouraging spontaneity, as at first people will tend to play it too slow and carefully but it’s more fun once they jump in and go for it without overthinking their ideas.\n- Justification and incorporating mistakes, as the game creates odd situations for improvisers to justify and incorporate into a scene.\n\n## Tips\n\n- You don’t have to have an idea before you shout freeze, you can come in if the scene needs it and work it out once you are there.\n- It's easier to run if the person entering always initiates the new scene\n- Spend more time listening when on the back line and less time thinking.\n- If you feel stuck for ideas in the scene just move and explore where that takes you, or make a reaction sound and see where that goes.\n\n## Variations\n\n#### Blind Freeze Tag\n\nThe back line can stand back to the stage so they shout freeze without seeing the positions. Useful if people are not getting on stage due to over-thinking.\n\n#### Audience Freeze tag\n\nThe audience can shout \"Freeze!\" instead.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This game is called Freeze Tag. Two actors are going to improvise a scene. Whenever someone shouts FREEZE from the back of the stage the players on stage freeze their positions and we will start an entirely new scene based on their odd positions. Please can we have two letters of the alphabet to put our first two people in positions?", + "video": "8ngNfI2jJ2w", + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-21T20:18:57.902Z", + "updatedAt": "2024-01-21T20:19:02.034Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "freeze-tag", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "freeze-tag", + "categoryId": "physicality", + "category": { + "id": "physicality", + "name": "Physicality" + } + }, + { + "resourceId": "freeze-tag", + "categoryId": "spontaneity", + "category": { + "id": "spontaneity", + "name": "Spontaneity" + } + }, + { + "resourceId": "freeze-tag", + "categoryId": "who-what-where", + "category": { + "id": "who-what-where", + "name": "Who, What, Where" + } + } + ], + "relatedResources": [] + }, + { + "id": "giving-a-gift", + "title": "Giving a Gift", + "description": "In pairs, one improviser mimes giving an object to the other.\n\nThe second improviser thanks them and names the object “Thanks for this tiny horse”. It doesn’t need to be the same as what the original improviser thought it was.\n\nThey swap so the other improviser gives a gift and the exercise is repeated.\n\nNow add a third beat; one mimes a gift, the other thanks and names it, then the giver adds information such as “I knew you’d like a tiny horse because you like horse riding but you’re scared of falling a long way to the ground”.", + "type": "EXERCISE", + "configuration": "PAIRS", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:19.625Z", + "updatedAt": "2024-01-24T16:25:47.685Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "giving-a-gift", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "giving-a-gift", + "categoryId": "justification", + "category": { + "id": "justification", + "name": "Justification" + } + }, + { + "resourceId": "giving-a-gift", + "categoryId": "object-work-and-environment", + "category": { + "id": "object-work-and-environment", + "name": "Object Work & Environment" + } + } + ], + "relatedResources": [] + }, + { + "id": "household-olympics", + "title": "Household Olympics", + "description": "The players get a suggestion of a household task. Two of the players act out that activity as if it were an Olympic sport, in extreme slow motion. The other two players commentate on the action. Can involve cheating and sabotage.\n\n### Examples\n\n2 players stand centre stage and start warming up. The other players commentate:\n\n“Welcome to the final of the vacuuming Olympics, it’s a very exciting day here in the arena. On the left we have Mitch Heiselberg, the American competitor who has come back to defend his medal.”\n\n“That’s right Bob, but he’ll be facing stiff competition from the new kid on the block, Sandra Smith from Yorkshire. She’s had a strong start in the competition, and she’s looking determined to win.”\n\n“The starting pistol has just gone off, and our competitors are reaching for their vacuums”\n\nThe 2 players mime competitive vacuuming while the commentators comment on the action. A winner can be declared.\n\n### Tips\n\n* The miming players should do so in extreme slow motion, as it builds the tension and makes it more dramatic\n* Commentators should be clear when the competition begins, to distinguish from the warms ups/setting up the characters\n* Play around with rewinds, different angles, close ups etc\n\n### Variations\n\n* A similar game using movement is [Underscore](resource/underscore)", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "Now we’re going to play a game called Household Olympics. Two of our players are going to be miming a household task as though they’re at the Olympics of that task. The other two players will be the commentators. Can I get a suggestion of a household task please?", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:19.729Z", + "updatedAt": "2024-01-24T16:26:15.627Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "i-am-a-tree", + "title": "I am a Tree", + "description": "A very popular exercise, suitable for beginners of improvisation\n\n## Setup\n\nThe players stand in a circle.\n\nPlayer A goes in the middle, strikes a pose and says who or what they represent. For example, they lift their arms over their head and say \"I am a tree.\"\nA second player B arrives, adds to the picture, and also says who or what they are.\nA third player C enters the scene and completes the suggestions from A and B.\n\nNow that the scene is finished, player A leaves the stage taking one of the other players with them. The remaining player stays inside the circle and repeats their sentence (without changing their pose). As a result, they offer a suggestion for the next scene.\n\nThis exercise can take place with any number of players.\n\n## Examples\n\nA: I am a tree.\nB: I am the dog who's peeing on the tree\nC: I am the man whom the dog belongs to.\nA: (leaving the stage with C) I am a tree and I'm taking the man with me.\nB: I am a dog.\n\nIt automatically occurs that not only images are portrayed, but also figurative representations of abstract concepts.\n\nA: I am a tree.\nB: I am acid rain (Player B symbolizes rain falling on Player A).\nC: I am conservation (Stretches an umbrella over Player A).\nA: (concedes) I am taking Conservation with me.\nB: I am (acid) rain. (Player B remains standing in the middle)\n\n## Tips\n\n- Encourage the players to not \"leave players hanging\" in the middle for a long time\n- Encourage player C to come in and \"yes and\" both offers so far, rather than only adding to player A's offer\n\n## Variations\n\n- This game can also be extended when building images with multiple players. Then the exercise goes on to build into a machine. For example, a machine that fells a tree and processes it to pencils.\n\n", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": "d_j4SuhlG88", + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-21T20:06:49.303Z", + "updatedAt": "2024-01-25T20:49:28.780Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "i-am-a-tree", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "i-am-a-tree", + "categoryId": "justification", + "category": { + "id": "justification", + "name": "Justification" + } + }, + { + "resourceId": "i-am-a-tree", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + }, + { + "resourceId": "i-am-a-tree", + "categoryId": "spontaneity", + "category": { + "id": "spontaneity", + "name": "Spontaneity" + } + }, + { + "resourceId": "i-am-a-tree", + "categoryId": "warmup", + "category": { + "id": "warmup", + "name": "Warm Up" + } + } + ], + "relatedResources": [] + }, + { + "id": "its-tuesday", + "title": "It’s Tuesday", + "description": "This is a fantastic exercise!\n\nTwo improvisers in a scene.\n\nThe first improviser deliberately says a boring opening line without any major emotional commitment.\n\nThe second improviser reacts and responds to make that opening line matter.\n\nThey both then react and respond to that and play the scene that results.\n\nThe opening line doesn’t have to be “It’s Tuesday”, that was just the first line that inspired the game. It’s any normal almost boring line to start the scene.\n\n### Purpose\n\nIt teaches people to not wait for an offer but instead act as if there is already an offer made. Even the smallest things can turn into amazing stories when we respond with It’s Tuesday energy.\n\nIt’s teaching a combination of yes and, making each other look good, reacting and commitment.\n\n### Examples\n\nImproviser 1: I brought you this pencil.\n\nImproviser 2: At last! I can write down the equation! I’ve been remembering it for days and was worried it would be gone!\n\nImproviser 1: And that would be a tragedy! The world needs to know your theories your professor!\n\nImproviser 2: And yet stuck on this desert island there has been nothing to write on. Thank you, you have saved humanity.\n\n### Origin\n\nWe think this is a Keith Johnstone game from his book Impro or Impro for Storytellers.", + "type": "EXERCISE", + "configuration": "SCENE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:19.831Z", + "updatedAt": "2024-01-24T16:29:39.415Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "la-ronde", + "title": "La Ronde", + "description": "A series of scenes where everyone plays the same character for two scenes in a row.\n\nAll the scenes take place in the same world.\n\n## Example\n\nKevin and Bob play a scene. Kevin leaves at the end of the first scene.\n\nBob and Sara play a scene together. Bob is the same character as in the scene before, but now in a different context. Then Bob leaves at the end of the scene.\n\nNow Sara and Gigi play a scene. Etc.\n\nRepeat until everyone has gone. The final scene adds back the first player to leave (Kevin).\n\n## Tips\n\n- Avoid talking about the scenes that happened before, rather be present with this character. Story will emerge naturally.\n- Have fun bringing the same characters to two completely different contexts", + "type": "LONG_FORM", + "configuration": "SCENE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:19.933Z", + "updatedAt": "2024-01-25T20:52:57.508Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "la-ronde", + "categoryId": "characters", + "category": { + "id": "characters", + "name": "Characters" + } + }, + { + "resourceId": "la-ronde", + "categoryId": "relationships", + "category": { + "id": "relationships", + "name": "Relationships" + } + } + ], + "relatedResources": [] + }, + { + "id": "machine", + "title": "Machine", + "description": "Half of the workshop group stand along the back wall. The audience suggest machines, vehicles or animals (e.g. washing machine, microwave, tractor, aircraft carrier, elephant) and the groups standing physically become those machines as a team by coming in one by one and physically becoming different moving parts of the machine. They don’t talk about it, they find it by looking at each other and working it out with their physical offers. The can make sound effects.\n\n### Tips\n\n* Make sound effects in addition to the physical play.\n* Look around at everyone else to support everyone.\n* Play with commitment.\n* Let the machine move around the room, for instance the airplane could take off and fly around.\n\n### Variations\n\nOne machine merges to another. For instance the group form a battleship first, which then after another suggestion gradually merges to a tiger.\n\nAlso can be played with no suggestion, with the group building something physical and gradually working out what it is as they go. Patterns merge and definitions come and go.\n\nCan also be done as an alien creature, with different groups moving around the room as different alien creatures.\n\n### Purpose\n\nA good exercise in looking at physical offers and building on them (yes and), and collaborating and supporting.\n\n### Origin\n\nLearnt from John Cremer at The Maydays and Charna Halpern with IO. Also appears in Keith Johnstone’s book Impro for Storytellers.", + "type": "EXERCISE", + "configuration": "WHOLE_CLASS", + "showIntroduction": "This is a game called The Machine. Our actors are going to build moving machines that can represent anything, no matter how abstract. First of all we need a suggestion for a vehicle.", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:20.033Z", + "updatedAt": "2024-01-24T16:30:06.740Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "mind-meld", + "title": "Mind Meld", + "description": "The goal is for two people to say things together until they reach the same word. It begins by one person saying “one,” the second person saying “two,” and then both people counting to three together. They then say anything at all – a person, place, idea, concept, phrase: anything.\n\nThen we think what the common thing between those two things or associated with those two things would be.\n\nWe repeat the one, two, three and try to use the two previously stated things to arrive at a third, common one. We keep trying each time until we say the same word.\n\nWhen we finally arrive at the same word we sing and dance to “It was a mind meld, it was a mind meld, it happens all the time, it was a mind meld.”\n\nSometimes it is played with the same pair of people all the way through until they connect on a word. Sometimes the group can opt in and out and it is played between the team.\n\n### Examples\n\nPlayer 1: 1\n\nPlayer 2: 2\n\nBoth players: 1, 2, 3…\n\nPlayer 1 (same time as other player): Abacus!\n\nPlayer 2 (same time as other player): Cat!\n\nTeacher: Abacus and cat, you are now trying to find the word between abacus and cat.\n\nPlayer 1: 1\n\nPlayer 2: 2\n\nBoth players: 1, 2, 3…\n\nPlayer 1 (same time as other player): Aztecs!\n\nPlayer 2 (same time as other player): 4!\n\nTeacher: Abacus and cat, you are now trying to find the word between aztecs and 4.\n\nPlayer 1: 1\n\nPlayer 2: 2\n\nBoth players: 1, 2, 3…\n\nPlayer 1 (same time as other player): Calendar!\n\nPlayer 2 (same time as other player): Calendar!\n\nEveryone in room while dancing: It was a mind meld! It was a mind meld! It happens all the time it was a mind meld!\n\n### Purpose\n\nGood for forming a group mind and to help people focus on what their scene partner wants and how they think.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:20.134Z", + "updatedAt": "2024-01-24T16:30:13.407Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "mirroring", + "title": "Mirroring", + "description": "A simple warm up exercise that is really good for getting improvisers connected to each other.\n\nEveryone in pairs stood opposite their partner.\n\nOne of them can move however they want. The other is being their mirror image, copying their emotions, face and movements.\n\nAfter a couple of minutes swap over roles so the leader becomes the follower.\n\nAfter a couple of minutes both pretend to be followers, so you find it together.\n\nAs a variation you can also continue this and find a character together by copying and escalating each other’s body language, gestures, sounds and mannerisms.", + "type": "EXERCISE", + "configuration": "PAIRS", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:20.235Z", + "updatedAt": "2024-01-24T16:30:19.625Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "new-choice", + "title": "New Choice", + "description": "2 improvisers up on stage. Whenever the director/host shouts “New Choice” (or “Change”) they have to change the last thing they said and then go along with that change in the scene. There may be multiple new choices in a row.\n\n### Examples\n\nDerek: Hello I’ve come to clean your windows.\n\nBartholomew: Thank you, do come in, there is a tap at the back.\n\nHost: NEW CHOICE!\n\nBartholomew: There is a skunk at the back.\n\nDerek: A skunk? Listen mate I clean windows I didn’t come here to scrub a skunk.\n\nHost: NEW CHOICE!\n\nDerek: A skunk, lovely! I will use it to scrub the windows. I always wanted to hold a skunk.\n\nHost: NEW CHOICE!\n\nDerek: I am a skunk.\n\nBartholomew:Whaaaattt?\n\nDerek: I’m a skunk. I just hide in this window cleaner costume in order to exist in the world, but behold my true form!\n\n### Purpose\n\n* Spontaneity. Helping people say the first thing that comes to them and surprising themselves.\n* Justifying and incorporating mistakes and adapting to change in the scene.\n* It can also be used as a teaching tool for unblocking actors, as you can shout New Choice when there is a block and keep going until there is a strong yes and.\n\n### Tips\n\n* Start the scene pretty normal, as the game will make it weird all by itself.\n* Try to establish relationship, location and activity in the first couple of lines so you have something to play with.\n* Try to speak in bold statements instead of being vague, so there is something fun to new choice.\n* Say the first thing that comes to you even if it seems wrong, you can justify it afterwards.\n* Have fun!\n\n### Variations\n\n* You can also shout “New Action” in addition to “New Choice” so the actors have to change physical offers too.\n* Some of the audience members can be given hooters to honk to make the actors change (also known as Honkasaurus Rex).\n* Sometimes it is played where the actors on stage so “New Choice” to each other.\n* As the game goes on more actors can come in as walk ons and the frequency of New Choices increases to give the game a crescendo of an ending.\n\n### Origin\n\nWe aren’t sure as this is one of the most widely played games on the improv scene. It might be from Keith Johnstone as in his book Impro he references asking actors to change the last line they said to unblock them and help them accept the action, so it may have originated from that exercise and then morphed into a show game.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This is called New Choice. Two actors are going to attempt to improvise a scene but whenever I say New Choice they have to change what they last said. All we need to get started is an occupation to inspire the first scene.", + "video": null, + "alternativeNames": "Sure Ding", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:18.112Z", + "updatedAt": "2024-01-24T16:30:29.767Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "new-choice", + "categoryId": "commitment", + "category": { + "id": "commitment", + "name": "Commitment" + } + }, + { + "resourceId": "new-choice", + "categoryId": "spontaneity", + "category": { + "id": "spontaneity", + "name": "Spontaneity" + } + } + ], + "relatedResources": [] + }, + { + "id": "one-minute-life-story", + "title": "One Minute Life Story", + "description": "In pairs. One person says their life story in one minute. The other person listens and doesn’t interrupt. At the end of the minute the listener repeats back as much as they remember. Used to get to know each other and show active listening.", + "type": "EXERCISE", + "configuration": "SCENE", + "showIntroduction": null, + "video": null, + "alternativeNames": null, + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:20.335Z", + "updatedAt": "2024-01-24T16:30:32.945Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "one-minute-story", + "title": "1 Minute Story", + "description": "A great listening exercise. In pairs, one person tells the other their life story in one minute. When the time is up the other person has to repeat the life story back, with as much detail as possible.\n\n### Purpose\n\n* Listening\n* Storytelling\n* Helps people get to know each other!\n\n### Variations\n\nYou can also replace life story with a holiday story or any other inspiration.\n", + "type": "EXERCISE", + "configuration": "PAIRS", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:16.272Z", + "updatedAt": "2024-01-25T20:53:22.955Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "one-minute-story", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + } + ], + "relatedResources": [] + }, + { + "id": "oscar-winning-moment", + "title": "Oscar Winning Moment", + "description": "The players perform a scene from a movie title given by the audience. Each plays gets given an Oscar winning reason e.g. “best kung fu moves, best dramatic exit”, and at some point each actor will they do their Oscar winning moment.\n\n### Purpose\n\nCommitment. This game is great for committing to the part. It’s also good for sharing the stage as each player gets their moment. It also slows the pace a bit to focus on each player.\n\n### Tips\n\n* It’s extra fun if the tech can underscore, particularly if it’s a dramatic monologue, slow-mo action sequence etc\n* Commit to it!\n\n### Variations\n\n* It can be played either with the host deciding when the Oscar-winning moment happens, or with the performers doing it spontaneously", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This game is called Oscar Winning Moment. We are going to see a made up film, and each of the actors has won an Oscar for a very specific bit of the film. For example, Best Dramatic Exit, or Best Long Pause. So, could I get a suggestion of an award for this player?", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:20.435Z", + "updatedAt": "2024-01-25T20:47:37.308Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "park-bench", + "title": "Park Bench", + "description": "Two very different exercises both get called Park Bench, here are both of them.\n\n### Variations\n\n### Park Bench of Truth\n\nRemarkably simple yet powerful exercise.\n\nOne improviser is sat on a park bench, pretty much as themselves or a character pretty close to themselves. Another improviser comes and joins them and sits on the bench with them. They have a chat, but are honest about what ever is said and don’t lie. They say whatever they think in the moment. The teacher can help them by asking them to say what they thought in a moment,\n\nThis exercises is great for helping people to use their own life experiences on stage, to express themselves, to be obvious and to play scenes at the top of their intelligence.\n\n### Park Bench of Change\n\nThere are two chairs next to one another on stage. These chairs can change into anything during each scene, but they stay where they are. Two improvisers make a scene around the two chairs; they might be on a park bench, a sofa, a big wheel, in a car, etc. After a short scene, one actor makes an excuse to leave and the scene changes into another one as a new improviser joins. Everyone gets to play in two scenes and the person entering gets to define what the chairs are. The person who left first comes in to do their second scene at the end. This game is about getting used to playing in scenes, agreement and listening to offers.", + "type": "SHORT_FORM", + "configuration": "WHOLE_CLASS", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:20.797Z", + "updatedAt": "2024-01-24T16:31:06.036Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "party-quirks", + "title": "Party Quirks", + "description": "One player is the host of a party. They exit the room while the other players (the guests) are given character quirks by the audience, for instance a physical quirk, a person from history, a celebrity or an action they have to do whenever a certain thing happens. The host then comes back to the stage once and the guests ring the doorbell and enter the party one by one. The host has to guess the quirks while playing the scene of hosting the party.\n\n### Purpose\n\nThis game is great for beginner improvisers when playing character for the first time, as they will tend to get caught up in the game and make bold character choices they wouldn’t usually make.\n\nIt’s also helpful for the host to learn “being in the shit” and being happy with making mistakes.\n\n### Tips\n\n* Guess lots and keep guessing. Don’t wait until you’ve got the right answer, have fun with getting it wrong.\n* Justify why the guess was wrong.\n* Play the scene of having a party while playing the game.\n* Give focus to the host, don’t all talk at once.\n* Have the guests interact to help the host out.\n\n### Origin\n\nWhose Line Is It Anyway?", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This game is called Party Quirks. One of the improvisers is hosting a party. When they come back they are hosting a party and have to guess the unusual characteristics of each guest.", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:20.899Z", + "updatedAt": "2024-01-24T16:28:10.272Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "party-quirks", + "categoryId": "characters", + "category": { + "id": "characters", + "name": "Characters" + } + }, + { + "resourceId": "party-quirks", + "categoryId": "mistakes", + "category": { + "id": "mistakes", + "name": "Embracing Mistakes" + } + } + ], + "relatedResources": [] + }, + { + "id": "pass-the-clap", + "title": "Pass the Clap", + "description": "Look into the eyes of the person next to you and without using words, coordinate so that you both clap together. That person then turns to the next person and does the same. Pretty soon, you’ll have a rhythm going and a clap will move quickly around the circle. See how fast you can go without losing rhythm.\n\n## Variations\n\n- Challenge the group to avoid relying on the rhythm, and to go for \"fidelity\" over \"velocity\"\n- Allow members to pass the clap to anyone in the circle\n- Create multiple claps moving simultaneously in different directions around the circle\n- Get the group walking around the room in a disorganised manner and then continue passing the clap to each other (with or without rhythm) ", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": "Egee4Atnysk", + "alternativeNames": "Synchronised Clap", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-21T19:55:49.521Z", + "updatedAt": "2024-01-21T20:01:59.505Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "pass-the-clap", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "pass-the-clap", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + }, + { + "resourceId": "pass-the-clap", + "categoryId": "warmup", + "category": { + "id": "warmup", + "name": "Warm Up" + } + } + ], + "relatedResources": [] + }, + { + "id": "passing-around-objects", + "title": "Passing around objects", + "description": "Teaches object work on stage.\n\nEveryone sat in a circle.\n\nFour people mime an object to the person next to them. The person next to them then picks the mimed object up, uses it in a slightly different way, and then passes it on to the person next to them.\n\nWhen all four objects have returned to the original people they should ideally be the same object and still have the same size and weight.\n\nGive the objects width and weight, and be specific about their functionality. Also look at the person you are miming the object to in order to see if they have understood what it is.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:21.128Z", + "updatedAt": "2024-01-24T16:31:14.571Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "pearls-on-a-string", + "title": "Pearls on a string", + "description": "Two people stand at either side of the stage. One is given the first line of a made up story and the other is given the last line. The lines should have a few specifics in them and should be totally unrelated. The job of the rest of the class is to slot in anywhere along that line and say a sentence that fills in a bit of the story. By the end, each person will have a added a sentence that means the story as a whole gets from the first to last line and makes a sense with no loose ends. They don’t need to go in order and we can hear the story so far at any point.", + "type": "SHORT_FORM", + "configuration": "WHOLE_CLASS", + "showIntroduction": null, + "video": null, + "alternativeNames": "First and Last Line", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:19.415Z", + "updatedAt": "2024-01-24T16:31:22.184Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "peas-in-a-pod", + "title": "Peas in a Pod", + "description": "Two players start a scene where they immediately mirror each others body language and copy each others sounds, gestures and mannerisms. It will create two characters that are very similar to each other, like they are best friends and have known each other for a long time.\n\nYou can also play it with throwing in regular phrases like “totally totally”, “yeah yeah yeah” etc to strengthen the agreement between the two.\n\nA fun way to find character on stage by playing with your scene partner.", + "type": "EXERCISE", + "configuration": "SCENE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:21.227Z", + "updatedAt": "2024-01-24T16:31:31.352Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "pillars", + "title": "Pillars", + "description": "For this game you need 2 volunteers from the audience. They stand/sit at the front sides of the stage, and act as pillars for the players. 2 players do a scene, and whenever they need a word they tap one of the pillars on the shoulder. The pillars say whatever comes to them, and the players then justify why that has been said. Some words fit perfectly, others will be completely random!\n\n### Examples\n\nGary: Thanks for helping me fix this car, Denise.\n\nDenise: No problem Gary, I’m glad I could (PILLAR) “help”.\n\nGary: I really appreciate it, you know I’m so nervous about the race tomorrow.\n\nDenise: You shouldn’t be, you’re (PILLAR) “Batman”. The others don’t stand a chance!\n\nGary: I know, I’m just scared that if I don’t win I’ll also lose my (PILLAR) “cook”. He only wants to work for winners.\n\nDenise: He does make great (PILLAR) “statues” out of chocolate. I’m sure you’ll win. Hand me the (PILLAR) “oats”.\n\nGary: I would never think to use oats to repair a car. You’re a genius.\n\n### Tips\n\n* Give the pillars a chance to practice (e.g., “this morning for breakfast I had…”)\n* Repeat the word after the pillar has said it\n* Listen, and justify what has just been said\n* Remember to thank your lovely volunteers!", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This is called Pillars. For this game we’re going to need two volunteers from the audience.", + "video": null, + "alternativeNames": "Columns", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:18.309Z", + "updatedAt": "2024-01-24T16:28:17.595Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "pillars", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "pillars", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + } + ], + "relatedResources": [] + }, + { + "id": "questions-only", + "title": "Questions Only", + "description": "In this game players can only speak in questions. The players get into two lines, and step forward for scenes in pairs. If they stumble or make a statement another player comes in and takes over.\n\n### Examples\n\nLocation: Airport\n\nPlayer A: Have you got your boarding pass?\n\nPlayer B: Why should I give it to you?\n\nPlayer A: Don’t you want to get on this plane?\n\nPlayer B: Where is it going?\n\nPlayer A: Barbados!\n\nPlayer A goes to the back of the line.\n\nPlayer B: How many suitcases am I allowed?\n\nPlayer C: Aren’t you the pilot?\n\nPlayer B: Oh yeah…\n\nPlayer B leaves\n\n### Purpose\n\nThis game shows why you normally try and talk in statements; questions are difficult as it puts the pressure on the other person has to do it. It’s also a safe space for rapid failure.\n\n### Tips\n\n* Commit to a character. It’ll help you think like them and the types of questions they would ask.\n* Don’t be too careful, it’s better to fail quickly and have fun with it!\n* When you mess up, accept it happily!", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This game is called Questions Only. In this game our players can only speak in questions. If they make a statement or stumble they’ll have to go to the back of the line and another player will replace them. To get us started could I get suggestions of a location?", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:21.329Z", + "updatedAt": "2024-01-24T16:34:29.246Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "rant", + "title": "Rant", + "description": "Five people in a line. Alternate being giving them a suggestion of something people generally love (chocolate, puppies, rolling hills) and something people tend to hate (traffic jams, the common cold, rats). If you gave them something people love, they are going to rant about how much they _hate_ it and vice versa. Conduct their rants.", + "type": "SHORT_FORM", + "configuration": "WHOLE_CLASS", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:21.433Z", + "updatedAt": "2024-01-24T16:31:53.338Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "scene-tag", + "title": "Scene tag", + "description": "This is a short-form game for 6 players.\n\n## Setup\n\nThe players form 3 pairs and take up 3 parts of the stage (left, centre, right).\n\nEach pair is given a different suggestion from the audience (so three total suggestions). These three suggestions will represent the three scenes that the pairs will be playing.\n\nOne pair starts a scene. When another pair wants to play, they must clap. The scene in progress must immediately stop, and the pair that clapped now steps forward and starts (or resumes, if they had already started a scene) their scene.\n\nThe only rule is that the first line after the clap has to be the same as the last line before the clap. When a pair claps in, the old one returns to their spot (left, right, centre). \n\n## Example\n\n1A: I don't like dogs. \n1B: I agree with you.\n\n2A claps, enters the scene, and Pair 1 moves to the back. \n2A: I agree with you. We should get married. \n2B: Married! I just wanted a vacation. \n\n3A claps, enters the scene, and Pair 2 moves to the back. \n3A: I just wanted a vacation. Why did you have to bring your mother?!\n\nAnd so on... \n\n## Learning Objectives\n\nThis is a game about listening and drawing inspiration. \n\n## Tips\n\nAs time goes on, the claps should be more and more frequent.\n\n## Variations\n\nIt is possible to put a bell in the centre of the stage so that the players that want to take focus must ring the bell to take it.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": null, + "video": "", + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-02-05T15:28:52.670Z", + "updatedAt": "2024-02-05T15:28:59.962Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "scene-tag", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + }, + { + "resourceId": "scene-tag", + "categoryId": "offers", + "category": { + "id": "offers", + "name": "Offers" + } + } + ], + "relatedResources": [ + { + "id": "freeze-tag" + } + ] + }, + { + "id": "sex-with-me", + "title": "Sex With Me", + "description": "Players get suggestions of objects, and say why sex with them is like that object.\n\n### Examples\n\n“Can I get an everyday object?” “Pineapple!”\n\nPlayer 1: “Sex with me is like a pineapple: juicy”\n\nPlayer 2: “Sex with me is like a pineapple: after a while it makes your tongue go funny”\n\nPlayer 3: “Sex with me is like a pineapple: not really worth the effort”\n\n“OK! Can I get another object?”\n\n### Tips\n\n* Jump forward even if you haven’t got a great idea. Often the audience will make it work in their own heads!\n* Either choose a character/quirk, or assign one to each other. It could be “doesn’t know what sex is”, “an American jock”, “someone whose parents are in the audience” etc. You don’t tell the audience, but it gives a range of answers and styles\n* You can go for one word answers, a very long and detailed explanation, or anything in between!\n* Don’t be afraid to just get a new suggestion if it seems like the players are struggling, or if one has just delivered a killer line\n\n### Variations\n\n* You can also ask for concepts (e.g. love) or professions (e.g. dentist)", + "type": "SHORT_FORM", + "configuration": "BACKLINE", + "showIntroduction": "Next we’re going to play a game called Sex With Me. Our players are going to line up, and we’re going to get suggestions of objects. The players will step forward and say why sex with them is like that object!", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:21.533Z", + "updatedAt": "2024-01-24T16:29:00.004Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "show-us-how-you-get-down", + "title": "Show Us How You Get Down", + "description": "A fun song that works like a game!\n\nThe group sings the first two lines together while clapping to keep the rhythm.\n\nThe facilitator then chooses someone and calls their name, eg. \"Hey Jackie!\", to which they respond \"Hey what?\". They are asked to show the group a fun dance move, which the group then imitates.\n\nThe responder then becomes the new caller, deciding who becomes the responder in the next iteration. Repeat the above until everyone has had a turn at showing a dance move.\n\n## Lyrics\n\n(The lyrics between brackets are sung only by the responder)\n\nD-O-W-N and that's the way you get down!\nD-O-W-N and that's the way you get down!\n\nHey, [name]! (Hey what?)\nHey, [name]! (Hey what?)\n\nShow us how you get down! (No way!)\nShow us how you get down! (OK!)\n\n(Person dances) D-O-W-N and that's the way you get down!\n(Everyone copies) D-O-W-N and that's the way you get down!", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": "-_zPkqqJN14", + "alternativeNames": "Show Us How To Get Down;D-O-W-N", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-20T21:30:25.640Z", + "updatedAt": "2024-01-20T21:30:29.299Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "show-us-how-you-get-down", + "categoryId": "spontaneity", + "category": { + "id": "spontaneity", + "name": "Spontaneity" + } + }, + { + "resourceId": "show-us-how-you-get-down", + "categoryId": "warmup", + "category": { + "id": "warmup", + "name": "Warm Up" + } + } + ], + "relatedResources": [] + }, + { + "id": "sit-stand-lie-lean", + "title": "Sit Stand Lie Lean", + "description": "4 improvisers do a scene. Throughout the scene one must sit, one stand, one lie, one lean. When they move (e.g. the person sitting stands up) they change places and must justify the movement.\n\n### Purpose\n\nFocus. There are lots of things going on and you have to carry on a scene.\n\n### Tips\n\n* Focus on the emotion/relationship of the scene. This helps the game be a fun scene with an extra challenge, rather than a scene where lots of people talk about whether they want to sit or stand.\n* It also helps to make big and bold choices at the beginning.\n* You can ask the audience to make noises if the positions aren’t right, but really you want them to just enjoy the scene!", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This game is called Sit Stand Lie Lean, and during the scene one of our players has to be sitting, one standing, one lying, and one leaning! If any of them change position one of the players has to take up that position. To get us started could I get suggestions of a relationship?", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:21.656Z", + "updatedAt": "2024-01-24T16:31:58.551Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "slideshow", + "title": "Slideshow", + "description": "A couple have been on holiday, based on suggestion from the audience. They are showing the audience a slide show of their holiday. The photos from the holiday are played by the rest of the cast making poses and holding that position. Each photo is justified and explained by the couple. The photos frequently change to different poses.\n\nSlideshow is perfect for players who just want to find their feet on stage. All it is, is players on the back line creating pictures or tableaus of holiday photos that two players in the front have to justify. Essentially it’s like someone showing you their holiday snaps. Except the ones presenting have no idea what the back line will do. And vice versa. Both have to justify the offers each other make. So there are 3 or 4 players are on the back line and it’s their task to just make tableaus that look like holiday photographs. Then two players at the front of the stage have to make sense of that tableau in relation to their fictional holiday. They can ‘click’ to a new photo by simple coming together on stage and pretending to use a slideshow clicker to move the image to the next one.\n\nIt’s tons of fun and really good for people who want to get up but not necessarily do much talking. And those presenting get a real fun time making sense of their team mates offers, and then creating scenarios right back at them to create.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:21.763Z", + "updatedAt": "2024-01-24T16:32:05.477Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "sound-effects", + "title": "Sound Effects", + "description": "Two improvisers play a scene, while two players off stage provide the sound effects. Can also be done with audience members doing the sound effects.\n\n### Purpose\n\nThis is a great listening game as everyone has to listen to offers coming from different directions. The improvisers on stage have to listen to each other and also the sound effects, and the sound effect improvisers have to pay attention to the stage.\n\nIt’s also great for teaching justifying mistakes and offers, as the game works best when the sound effects are reacted to and incorporated into the scene.\n\nIt’s also good for yes and as people have to accept the sound effects and allow them to alter the scene.\n\nIt’s also helpful for long-form as supporting sounds often pop up in long-form.\n\n### Tips\n\n* Set up a relationship and location at the start of the scene, it also helps to have an objective.\n* React to the sound effects, justify them and let them influence your scene.\n* Set the sound effects people up to make a sound, give them an offer, especially if audience members.\n* Use mics if you have them.\n\n### Variations\n\n* Sometimes audience members are used to provide the sound effects. If you do this please thank them and make them look good.\n\n### Origin\n\nWhose Line Is It Anyway?", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This is a game called Sound Effects. Two improvisers on stage are going to perform a scene while two improvisers off stage provide the sound effects for the scene.", + "video": null, + "alternativeNames": null, + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:21.864Z", + "updatedAt": "2024-01-24T16:28:20.949Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "sound-effects", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "sound-effects", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + } + ], + "relatedResources": [] + }, + { + "id": "story-conductor", + "title": "Story Conductor", + "description": "Team of five improviser stood in an arc, and one improviser in front of them (Story Conductor). Whoever the Story Conductor points to starts telling the story and when they point to someone else the other person takes over.\n\n### Purpose\n\nTrains improvisers to listen, yes and, and play as a team.\n\n### Variations\n\n* This can also be played as Storyteller Die, where if someone stumbles, doesn’t pick up where the other person left off or generally interrupts the flow the audience shout “DIE”. They then go to the side, and the game carries on until there’s one person left\n* Can also be played as [Instruction Manual Die](resource/instruction-manual-die)", + "type": "SHORT_FORM", + "configuration": "WHOLE_CLASS", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:22.092Z", + "updatedAt": "2024-01-24T16:32:15.302Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "stunt-doubles", + "title": "Stunt Doubles", + "description": "Two players start a scene, with the other two players offstage. Every so often, when an action is about to happen (it doesn’t have to be big), the host will yell “Stunt doubles!” and the other two players will come in the scene and act out the action in slow motion without talking. When the stunt doubles leave or the original two return to the stage, the scene resumes with the first two players from where the stunt doubles left it.\n\n### Examples\n\nPlayer A: Hey Dad, want a cup of tea while we watch the Wimbledon final?\n\nPlayer B: Yes please, English Breakfast for me.\n\nPlayer A: I’ll just get the teabags out.\n\nHost: STUNT DOUBLES\n\nThe stunt double opens the teabags in slo-mo and they fly everywhere. One hits them in the eye.\n\nPlayer B: Oh my gosh!! Your eye is bleeding.\n\nPlayer A: It’s ok, I just need to get the milk ready.\n\nHost: STUNT DOUBLES\n\nThe stunt double opens the milk and it pours everywhere. The doubles slip in the milk and fall down.\n\nPlayer B: I’m so wet, and I think my back’s gone!\n\nPlayer A: We should call an ambulance.\n\nHost: STUNT DOUBLES\n\nThe stunt double jumps up and reaches for the phone, as he dials the kettle explodes. They slo-mo roll away from it.\n\nPlayer A: This is all your fault, FEDERER!\n\n### Purpose\n\nThis game is great for being physical in scenes rather than just talking.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This game is called Stunt Doubles. Our players are going to do a scene and then when I shout stunt doubles the other players will come in and do the action. Can I get suggestions of a relationship?", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:22.191Z", + "updatedAt": "2024-01-24T16:34:20.814Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "switch-left", + "title": "Switch Left", + "description": "A game of changing channels through TV. 4-6 actors on stage in a square like formation. Two actors near front of stage. Remaining actors are lined up along back of stage. Whatever two actors are at front is the scene we see at that time. When the host says “Switch Left” all the actors move around one space so that we have different combinations of actors at the front for different scenes. We can thus change channels on our TV by saying “Switch Left” whenever we want. We can go around multiple times to see each scene/channel progress.\n\nBefore playing each pair of actors is given a different suggestion by the audience. These may include genres of TV or Film, actual TV shows and films, made up names of plays, emotions or titles of stories and more.\n\n### Examples\n\nJack: I love you Rose!\n\nRose: I love you too Jack!\n\nJack: Oh fuck an ice berg!!!\n\nRose: Paint me naked quick before we die!\n\nHost: Switch Left\n\nNewsreader 1: Hello and welcome to the news at ten.\n\nNewsreader 2: That’s right, we are bang on time, 10pm exactly.\n\nNewsreader 1: You could set your watch by us!\n\nNewsreader 2: At the third stroke, the time sponsored by us will be 10pm exactly.\n\nNewsreader 1: Now on with the news. People writing online improv exercise examples are beginning to run out of inspiration.\n\n### Purpose\n\nA fun way to get people used to playing scenes. We use it in courses as it helps people play two person scenes in front of an audience without really thinking about it and without getting worried about the audience too much, as they feel like they are in a larger group and have something else to focus on instead of just feeling anxious.\n\nWe also use it to teach playing suggestions even if you don’t know much about the suggestion, that it’s ok to do your own spin on a suggestion and make mistakes and have fun with it. This is good for spontaneity too, as there is a part of the improviser that wants to stop and plan what to do with the suggestion but we override that and just jump straight into it.\n\nIt also teaches listening and escalating, as you have to hear the scenes around you and escalate your own scenes on the next round.\n\n### Tips\n\n* Escalate something from your scene in the next round, for example an emotion or character behaviour.\n* It doesn’t matter if you don’t know the suggestion. It’s not a test and instead of playing like an adult play like a playful child and have fun with it. Never seen Gone with the Wind? Do your version of it and play with the other person and find it together. Also support the other person. You don’t have to have an idea to improvise if you are in the mindset of support comes first.\n\n### Variations\n\n* It can be played with more people, you just have 2 at the front at any time and a longer line of people at the front.\n* You can also say “PAN RIGHT” to move in the opposite direction.\n* You can vary the type of audience suggestions you want. For instance genres, types of play, names of plays, TV shows, films, emotions, characters etc.\n\n### Origin\n\nNo idea! It’s a very popular game so it seems to be played everywhere but we aren’t sure where it originally comes from. If you know please let us know and we’ll add it here.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This game is called Switch Left. We’re watching TV and whenever I shout Switch Left we move to the next channel. What are we watching on the first channel?", + "video": null, + "alternativeNames": "Pan Left", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:20.538Z", + "updatedAt": "2024-01-24T16:28:23.406Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "switch-left", + "categoryId": "escalating", + "category": { + "id": "escalating", + "name": "Escalating" + } + }, + { + "resourceId": "switch-left", + "categoryId": "mistakes", + "category": { + "id": "mistakes", + "name": "Embracing Mistakes" + } + }, + { + "resourceId": "switch-left", + "categoryId": "spontaneity", + "category": { + "id": "spontaneity", + "name": "Spontaneity" + } + }, + { + "resourceId": "switch-left", + "categoryId": "teamwork-and-support", + "category": { + "id": "teamwork-and-support", + "name": "Teamwork & Support" + } + } + ], + "relatedResources": [] + }, + { + "id": "thats-right-bob", + "title": "That's Right, Bob!", + "description": "This is a great game for practising Yes And, especially for beginners.\n\nTwo improvisers. Both of them are working for a TV Shopping Channel and they are selling a product live to the audience. Each line starts with “That’s Right Bob”, and they are going line by line accepting and building on things about this product.\n\n### Example\n- A: That’s right Bob today we are selling this cocktail shaker!\n- B: That’s right Bob, and it’s no ordinary cocktail shaker, this is the shaker that can shake itself!\n- A: That’s right Bob, just look at this puppy go off all by itself!\n\n[Presses a button and the cocktail shaker starts bouncing around the room].\n\n[B is holding onto the shaker and being dragged around the room].\n\n- B: Bobbbbb!!!!!!!\n\n- A: That’s right Bob, I’ll have a vodka martini, shaken not stirred.\n\n### Top Tips\nTry to accept and build on what’s just been said, it’s not just a collection of random features, let one thing lead to another. To help this try using one of the words the other person just said in your line.\n\n", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-12T23:25:07.087Z", + "updatedAt": "2024-01-20T21:30:53.451Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "thats-right-bob", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "thats-right-bob", + "categoryId": "characters", + "category": { + "id": "characters", + "name": "Characters" + } + }, + { + "resourceId": "thats-right-bob", + "categoryId": "justification", + "category": { + "id": "justification", + "name": "Justification" + } + }, + { + "resourceId": "thats-right-bob", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + } + ], + "relatedResources": [] + }, + { + "id": "the-alphabet-game", + "title": "The Alphabet Game", + "description": "Players do a scene where each line starts with the next letter of the alphabet.\n\n### Examples\n\nLocation: Sweet Shop\n\nImproviser A: Can I help you?\n\nImproviser B: Do you sell flying saucers?\n\nImproviser A: Excitingly we just got in these giant ones!\n\nImproviser B: Fantastic I just love the sweet sweet taste of sugar.\n\nImproviser A: Good thing you’ve come here then, this shop’s full of it.\n\nImproviser B: Have you got any other giant versions of sweets?\n\nImproviser A: Indeed I do – this toffee is so big you won’t be able to speak again!\n\nImproviser B: Just wonderful! I can give this to my annoying boss.\n\nImproviser A: Knock on his office door and pretend it’s a gift!\n\nImproviser B: Love you, I think I love you and you’ve solved all my problems.\n\nImproviser A: Maybe we should get married, luckily I’ve got a Haribo ring to hand.\n\n### Tips\n\n* Just keep talking! The pausing to think it what makes the game difficult.\n\n### Origin\n\nOriginally from Keith Johnstone’s Impro For Storytellers.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This is called the Alphabet Game. For this each player must start their line with the next letter of the alphabet. Can I get a letter of the alphabet?", + "video": null, + "alternativeNames": null, + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:16.699Z", + "updatedAt": "2024-01-24T16:28:29.573Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "the-alphabet-game", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + } + ], + "relatedResources": [] + }, + { + "id": "three-line-scenes", + "title": "Three Line Scenes", + "description": "A nice introduction to doing scenes.\n\n## Setup\n\nIn two rows, people go pair by pair and do scenes with a total of three lines. Either one starts, the other responds, and the first person responds to that. The rest of the group enthusiastically applauds the pair.\n\n## Tips\n\nWhile doing this exercise, it's good to focus on one or more of the following:\n\n- establishing where you are\n- establishing relationship\n- establishing character\n- bringing in emotion and reactions\n\n## Variations\n\n- Invite one side to always initiate the scene with a physical action, so that the other side always starts the scene with the first line", + "type": "EXERCISE", + "configuration": "WHOLE_CLASS", + "showIntroduction": null, + "video": "TC-V99pNIqk", + "alternativeNames": "Three Sentence Scenes", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-21T20:10:55.969Z", + "updatedAt": "2024-01-21T20:10:57.323Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "three-line-scenes", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "three-line-scenes", + "categoryId": "who-what-where", + "category": { + "id": "who-what-where", + "name": "Who, What, Where" + } + } + ], + "relatedResources": [] + }, + { + "id": "thunderdome", + "title": "Thunderdome", + "description": "Two people go into the middle of the circle as everyone chants “Thunderdome! Thunderdome! Thunderdome!” The players are given a category (types of cake, makes of car, holiday destinations). They take turns to name something in the category. If they fail to come up with something, they leave the circle. Everyone chants ‘Thunderdome’ as a new player joins the winner. The category is changed and they play again. The winner stays on each time.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:22.395Z", + "updatedAt": "2024-01-24T16:32:49.977Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "toaster", + "title": "Toaster", + "description": "All the players duck down, and the host claps or says “toast up”. Whoever jumps up does a scene. Host claps or says “toast down”, and the players duck down. This repeats, and whoever jumps up does another scene. If the same players pop up, they can play the same characters as in their previous scene.\n\n### Purpose\n\nThis game has lots of scene practice! It’s like lots of quick snapshots of relationships, and is helpful in quickly establishing who you are. It’s also a character game, as you can play a lot of different characters within a short amount of time.\n\n### Tips\n\n* Vary the length of scenes, some can be longer and some super snappy.\n* Start the scene before you’ve fully popped up! It means the scene starts immediately. While you can be tempted to wait to see who else pops up and whether you’re in the same group as a previous scene, just start the scene.\n* If you’re the only one who pops up, take your moment! A monologue always goes down well. Your teammates won’t leave you there too long!\n* It’s a good game for large groups.\n\n### Variations\n\n* The scenes can be all in the same location/world/universe, or random.\n* Players can clap to pop up or down rather than the host, as this spreads it out a bit.", + "type": "EXERCISE", + "configuration": "SCENE", + "showIntroduction": "This is called Toaster. For this game our players are going to crouch down, and when anyone claps their hands some of the players will pop up and do a scene. To get us started could I get a location where people might meet?", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:22.495Z", + "updatedAt": "2024-01-24T16:33:00.412Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "tug-of-war", + "title": "Tug of War", + "description": "This is a great game to bust out if a team are being too competitive with each other on stage, creating too much conflict, or only ever playing high status characters.\n\nEveryone gets in pairs around the room.\n\nAnnounce that they are going to do a mimed tug of war between each other on the count of 3.\n\n1-2-3.\n\nThey do a mimed tug of war, imagining a rope between each other.\n\nMost groups when they do this for the first time will end up in an endless battle, with the rope getting longer and longer, and nobody really losing. They are so keen to “win” even when there is no actual rope.\n\nAsk them to repeat and play it loads of times, but this time there is a clear loser each time. They find it in the moment, who will win and who will lose.\n\nThe moral of the story is it is ok to lose on stage because the scene wins. Ommmmm.", + "type": "EXERCISE", + "configuration": "WHOLE_CLASS", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:22.599Z", + "updatedAt": "2024-01-24T16:33:09.468Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "what-are-you-doing", + "title": "What are you doing?", + "description": "Two improvisers on stage. One asks “What are you doing?” The second replies with any action they like, for instance: “I’m driving a car”. The first improviser then mimes driving a car. The second improviser asks “What are you doing?”, the reply is another action such as “I’m bowling”. In this way, each improviser is doing the action the other improviser says they are doing. It’s hard as you’re doing one thing and saying you’re doing another. At some point this will go wrong. Get the group to applaud a lot and send a new improviser in to continue playing the game. It’s an elimination game. If it’s too easy, go faster. Emphasise that mistakes are fun and good, make the people who are ‘out’ absolute heroes.", + "type": "EXERCISE", + "configuration": "PAIRS", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:22.701Z", + "updatedAt": "2024-01-24T16:33:21.596Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "wink-murder", + "title": "Wink Murder", + "description": "Fun warmup game! Everyone stands in a circle and closes their eyes. One person walks around the circle and touch one person on the shoulder; they are the murderer. Everyone opens their eyes. The murderer can kill someone by winking at them. They should have a very theatrical death. If someone guesses who the murderer is, they win. If they guess wrong, they die.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:22.809Z", + "updatedAt": "2024-01-24T16:33:28.849Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "word-at-a-time-story", + "title": "Word at a Time Story", + "description": "Two improvisers stood opposite each other make up a story together by saying a word at a time each. One player says the first word, the next says the second word etc.\n\nAt first you can start with “Once, Upon, A, Time…” or “One, Day..” and then move on top different starting sentences.\n\n### Examples\n\nImproviser A: Once\n\nImproviser B: Upon\n\nImproviser A: A\n\nImproviser B: Time\n\nImproviser A: There\n\nImproviser B: Was\n\nImproviser A: A\n\nImproviser B: Goblin\n\nImproviser A: Who\n\nImproviser B: Lived\n\nImproviser A: Under\n\nImproviser B: A\n\nImproviser A: Rock\n\nImproviser B: Because\n\nImproviser A: He\n\nImproviser B: Was\n\nImproviser A: Scared\n\nImproviser B: Of\n\nImproviser A: People\n\n### Purpose\n\n* Listening and being in the present moment with each other.\n* Storytelling.\n* Accepting and building on offers.\n* Being obvious.\n* Teamwork and support.\n\n### Tips\n\n* Listen.\n* Be obvious. If you try too hard to be clever or funny in this game it slows down and just makes it hard for each other. But try to be obvious instead and the story will start to tell itself.\n* Support where the story is going moment by moment instead of trying to force it.\n* Try moving around as you do it.\n* Try playing it in character, finding a character between the two of you.\n* Make gestures as you speak, be animated.\n* If there is something that needs defining just define it, any idea is good there is no right or wrong.\n* You are in collaboration not competition with the other person, so try to relax body language to help that.\n\n### Variations\n\n* Playing with more than 2 people.\n* Playing as the whole group in a circle.\n* Again! Whenever you feel stuck or are thinking too much you both shout again and throw your hands in the air and start a new story.\n* Moving around the room while you play it, picking up objects as if you are exploring a foreign land together.\n* There are also many show versions of this game like Oracle, Three Headed Expert, Wise Wise Wise, Complaints Letter and more.\n\n### Origin\n\nThis is a widely used improv game used by most improv companies. The earliest version of it we can find is in Keith Johnstone’s book Impro so it may have been invented by Keith back in the 1960s during his work with The Theatre Machine in London.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "showIntroduction": "This is called The Word at a Time Story. Two players are going to attempt to improvise a story together taking it in turns to say each word. All they need is the suggestion of a location to get them started.", + "video": null, + "alternativeNames": null, + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:22.912Z", + "updatedAt": "2024-01-24T16:28:33.926Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [ + { + "resourceId": "word-at-a-time-story", + "categoryId": "agreement-and-accepting", + "category": { + "id": "agreement-and-accepting", + "name": "Agreement & Accepting" + } + }, + { + "resourceId": "word-at-a-time-story", + "categoryId": "listening", + "category": { + "id": "listening", + "name": "Listening" + } + } + ], + "relatedResources": [] + }, + { + "id": "worlds-worst", + "title": "World’s Worst", + "description": "A walk-forward game. Players stand on the back wall with their backs to the audience. Using audience suggestions for the “World’s worst \\_\\_\\_\\_”, players come up with examples.\n\n### Examples\n\nWorld’s Worst Farmer:\n\nPlayer A jumps on stage and on to a rake: “OW”\n\nPlayer B: I don’t believe in tractors, I use a toothpick.\n\nPlayer C: I’m a rabbit, I LOVE CARROTS!\n\n### Purpose\n\nThis is a commitment game. Commit to going on stage and doing something before you have an idea or if you’ve thought about whether it’s good.\n\n### Tips\n\n* Lead physically. When you’re on the back wall (backs to audience) keep your knees relaxed so your body isn’t stiff.\n* Even if it isn’t the best idea, spin round really quickly, jump on stage and do it with commitment.", + "type": "SHORT_FORM", + "configuration": "BACKLINE", + "showIntroduction": "This game is called World’s Worst. Our players are going to stand on the back wall and come up with examples of the World’s Worst blank. To get us started could I get some professions?", + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:23.141Z", + "updatedAt": "2024-01-24T16:33:35.631Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "yes-lets", + "title": "Yes Let’s!", + "description": "The whole group plays together. Anybody shouts something for the group to do and immediately the whole group shouts “YES LET’S!” in an enthusiastic way and then does that thing. Then someone says another offer and the group again shouts “YES LET’S” and does that thing. Ideally the offers are connected to each other and the group gets used to saying the next obvious thing without blocking or negating and the group start to tell a story together.\n\n### Examples\n\n_Each line is said by a different improviser, except the YES LET’S which is said by everyone at once._\n\nLet’s go for a walk!\n\nYES LET’S!\n\nLet’s breath in the fresh spring time air as we walk!\n\n\\[They all start walking around the room\\]\n\nYES LET’S!\n\n\\[They all breath in the air and start skipping around\\]\n\nLet’s pick up a flower!\n\nYES LET’S!\n\n\\[They all pick up flowers\\]\n\nLet’s sniff the flower!\n\nYES LET’S!\n\n\\[They all sniff the flowers\\]\n\nLet’s smell the most incredible smell and feel giddy!\n\nYES LET’S!\n\n\\[They all start swaying around in the breeze\\]\n\nLet’s rise up off the ground and float up into the blossom of the trees!\n\nYES LET’S!\n\n### Variations\n\n* The lines don’t have to connect, it’s just a bunch of fun stuff for the group to do.\n* The lines connect and one thing leads to another to tell a story.\n* Yes Let’s story inspired by a story.\n* Version where if someone says an offer that the group doesn’t feel like was expected or in the direction of the story people can step out of the story. Sounds harsh but it does give people instant feedback on what helps stories and what blocks stories.\n\n### Purpose\n\n* Agreement.\n* Yes and.\n* Support.\n* Teamwork.\n* Storytelling.\n* Accepting and building.\n* Commitment.\n* Enthusiasm.\n\n### Origin\n\nKeith Johnstone. Keith explains this game much better than me so please buy his books (Impro and Impro for Storytellers).", + "type": "EXERCISE", + "configuration": "WHOLE_CLASS", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T10:09:23.241Z", + "updatedAt": "2024-01-25T20:47:05.586Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + }, + { + "id": "zip-zap-zop", + "title": "Zip Zap Zop", + "description": "Everyone stands in a circle. With a lot of energy the first person passes a “zip” across to someone else in the circle, that person then passes a “zap” to someone else, they pass a “zop”. Continue repeating and passing zip zap zop. It’s inevitable at some point you’ll “zip” a “zip”, but it doesn’t matter!\n\n### Purpose\n\nA good warm-up for building group connections. Although we’re in the same room physically, it gets people in the same room mentally. People might be thinking of work or worrying about something, so this warm up gets everyone in the same zone. Because you have to focus, it gradually gets people thinking about the same thing.\n\n### Tips\n\n* Be ready to clap, leaning forward slightly helps the energy and speed.\n* Try and make eye contact with whoever passes you the zip/zap/zop.\n\n### Variations\n\n* Do it normally, then if you muck up you’re out.\n* Funny version – copy their behaviour. However someone zips you, that’s how you zap the next person.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "showIntroduction": null, + "video": null, + "alternativeNames": "", + "published": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-23T09:49:43.482Z", + "updatedAt": "2024-01-23T09:51:51.939Z", + "editProposalOriginalResourceId": null, + "editProposalAuthorId": null, + "categories": [], + "relatedResources": [] + } + ], + "lessonPlans": [ + { + "id": "clrnyapk90001wqebn7it9zqo", + "title": "Demo Lesson Plan", + "theme": "First approach to Yes-And", + "description": "This lesson plan serves as a demo of the basic functionalities of lesson plans on this website.\n\nTry toggling \"Show All Resource Descriptions\" or clicking \"Print/Download\".", + "visibility": "PUBLIC", + "useDuration": true, + "createdById": "clr9k2i9k0000zvsxfrlixcs0", + "createdAt": "2024-01-21T20:28:17.750Z", + "updatedAt": "2024-02-01T13:58:13.993Z", + "sections": [ + { + "id": "cls3a7gfd0000u5a92g0ay1pu", + "title": "Warm ups", + "lessonPlanId": "clrnyapk90001wqebn7it9zqo", + "order": 0, + "items": [ + { + "id": "cls3a7gfd0001u5a9lmpe2aor", + "text": "", + "resourceId": "eight-count-shake-down", + "duration": 5, + "order": 0, + "sectionId": "cls3a7gfd0000u5a92g0ay1pu", + "resource": { + "id": "eight-count-shake-down", + "title": "8 Count Shake Down", + "description": "Everyone counts down from 8 to 1 whilst shaking each limb (in turn) eight times: first your right hand, then right hand, then right foot, then left foot.\n\nYou repeat the sequence again but then you count down from 4.\n\nYou repeat this dividing by 2 every time (8,4,2,1) and after the last set of 1 you shout and strike a crazy pose\n\n## Tips\n\n- Encourage participants to make eye contact with each other throughout the game to embrace the awkwardness\n\n## Variations\n\n- Some play with a 5th limb AKA the butt\n- Some decrease by 1 every round instead of dividing by 2. It makes the math easier but it will take longer.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "categories": [ + { + "resourceId": "eight-count-shake-down", + "categoryId": "spontaneity" + }, + { + "resourceId": "eight-count-shake-down", + "categoryId": "warmup" + } + ] + } + }, + { + "id": "cls3a7gfd0002u5a9oh392do3", + "text": "Ask everyone to introduce themselves and optionally share their experience with improv.", + "resourceId": null, + "duration": 5, + "order": 1, + "sectionId": "cls3a7gfd0000u5a92g0ay1pu", + "resource": null + }, + { + "id": "cls3a7gfd0003u5a9672m0s0f", + "text": "Great way to also consolidate names.", + "resourceId": "show-us-how-you-get-down", + "duration": 10, + "order": 2, + "sectionId": "cls3a7gfd0000u5a92g0ay1pu", + "resource": { + "id": "show-us-how-you-get-down", + "title": "Show Us How You Get Down", + "description": "A fun song that works like a game!\n\nThe group sings the first two lines together while clapping to keep the rhythm.\n\nThe facilitator then chooses someone and calls their name, eg. \"Hey Jackie!\", to which they respond \"Hey what?\". They are asked to show the group a fun dance move, which the group then imitates.\n\nThe responder then becomes the new caller, deciding who becomes the responder in the next iteration. Repeat the above until everyone has had a turn at showing a dance move.\n\n## Lyrics\n\n(The lyrics between brackets are sung only by the responder)\n\nD-O-W-N and that's the way you get down!\nD-O-W-N and that's the way you get down!\n\nHey, [name]! (Hey what?)\nHey, [name]! (Hey what?)\n\nShow us how you get down! (No way!)\nShow us how you get down! (OK!)\n\n(Person dances) D-O-W-N and that's the way you get down!\n(Everyone copies) D-O-W-N and that's the way you get down!", + "type": "EXERCISE", + "configuration": "CIRCLE", + "categories": [ + { + "resourceId": "show-us-how-you-get-down", + "categoryId": "spontaneity" + }, + { + "resourceId": "show-us-how-you-get-down", + "categoryId": "warmup" + } + ] + } + }, + { + "id": "cls3a7gfd0004u5a9qok9tig1", + "text": "Get everyone out of their heads and encourage them to play big", + "resourceId": "animal-lineup", + "duration": 15, + "order": 3, + "sectionId": "cls3a7gfd0000u5a92g0ay1pu", + "resource": { + "id": "animal-lineup", + "title": "Animal Lineup", + "description": "A real fun one to get the energy high and embrace failure!\n\n## Setup\n\nYou need 6 players to form a backline. The rest of the players (as many as you like) form a queue and wait to enter as soon as a player is eliminated.\n\nThe 6 players take on the persona of an animal, with a very precise order (from left to right). Each animal has a sound and a gesture\n\n1. The **lion** says \"RAWR!\" and raises their \"paws\" \n2. The **giraffe** says \"Gobble gobble!\" while raising their arm straight in the air and mimicking a giraffe looking left and right with their fist\n3. The **worm** says \"Wriggle wriggle\" while miming a a worm with their finger\n4. The **fox** says \"Cunning, cunning.\" while holding their chin in a sly way\n5. The **monkey** says \"Have a banana\" while peeling a banana\n6. The **vulture** says \"KAKAAW KAKAAW\" while flapping their wings\n\nOnce the group has understood the sound and gesture of each animal, the game begins.\n\n## Rules\n\nEach round starts with the lion.\n\nStarting with the lion, each animal must make their own sound and gesture, and then the sound and gesture of another animal in the lineup. Then that second animal becomes the animal \"with the focus\" and continues the trend (their own sound & gesture, then the sound & gesture of another animal in the lineup).\n\nWhenever someone takes too long or makes the wrong sound/gesture, they are eliminated. Everyone, starting with the animal eliminated, moves one place to the right, and someone new from the queue becomes the new vulture.\n\n## Examples\n\n(The examples omit the gestures for clarity)\n\nLion: RAWR!, Wriggle Wriggle\nWorm: Wriggle wriggle, KAKAAAW KAKAAAW\nVulture: KAKAAW KAKAAAW, Cunning Cunning\nFox: (Too slow, doesn't realise it's their turn)\n\nThe fox is eliminated! The monkey becomes the fox, the vulture becomes the monkey, and someone from the queue becomes the vulture. We start again with the lion\n\n## Tips\n\n- This is a high-energy game - make sure to encourage speed and big gestures/sounds\n- After a while (especially if the group is doing well), it's fun to just eliminate people on very arbitrary things. For example, \"You weren't very convincing as a vulture, eliminated\" or \"Monkeys always peel their bananas with their left hand! Eliminated!\"\n\n## Variations\n\n- You can add or remove animals to mix it up\n- Often there is an additional special rule that only the lion can \"return the focus\" to the animal that has just given it to them", + "type": "EXERCISE", + "configuration": "WHOLE_CLASS", + "categories": [ + { + "resourceId": "animal-lineup", + "categoryId": "mistakes" + }, + { + "resourceId": "animal-lineup", + "categoryId": "physicality" + }, + { + "resourceId": "animal-lineup", + "categoryId": "spontaneity" + }, + { + "resourceId": "animal-lineup", + "categoryId": "warmup" + } + ] + } + }, + { + "id": "cls3a7gfd0005u5a91v01tcnw", + "text": "", + "resourceId": "blue-ball", + "duration": 10, + "order": 4, + "sectionId": "cls3a7gfd0000u5a92g0ay1pu", + "resource": { + "id": "blue-ball", + "title": "Blue Ball", + "description": "**Objective:** Make sure your message is sent and received\n\n## Setup\n\nStep One: \n\nPlayers circle up. The facilitator pantomimes reaching into a large bag, and pulls out a small Blue Ball.\n\nStep Two: \n\nThe Blue Ball is passed around the group with deliberate focus and acceptance. The way to pass it is as follows:\n\n- Player One (as they are throwing, makes eye contact with somebody else in the circle): “Blue Ball”\n- Player Two (receiving): says “Blue Ball, thank you.”\n- Player Two (to someone else): “Blue Ball.”\n\nThis exchange is important, as it ensures that the player sends the objects clearly and that the receiver acknowledges what they have just caught. Players must react to not only the size of the ball but also the weight.\n\nStep Three: \n\nFrom here, the facilitator can pull anything they want out of the bag. It’s common to stay a little grounded before you pull out crazy stuff, and many people will go from “Blue Ball” to “Yellow Ball” to “Red Ball” (the colours usually vary in size and weight).\n\n## Variations\n\nTo take the game to the next level, try and throw things such as \"Golf Ball\", \"Bowling Ball\", or \"Tennis Ball\". After that, consider pulling out “piano”, “puppy”, “fire”, \"baby\" or anything in the known or unknown universe.", + "type": "EXERCISE", + "configuration": "CIRCLE", + "categories": [ + { + "resourceId": "blue-ball", + "categoryId": "agreement-and-accepting" + }, + { + "resourceId": "blue-ball", + "categoryId": "listening" + }, + { + "resourceId": "blue-ball", + "categoryId": "teamwork-and-support" + } + ] + } + }, + { + "id": "cls3a7gfd0006u5a98903pwyt", + "text": "", + "resourceId": "counting-to-twenty", + "duration": 10, + "order": 5, + "sectionId": "cls3a7gfd0000u5a92g0ay1pu", + "resource": { + "id": "counting-to-twenty", + "title": "Counting to 20", + "description": "This is a great game for bringing focus and solidifying a group.\n\n## Setup\n\nAsk the circle to close their eyes and take a deep breath.\n\nThen, any person can begin by saying \"One\". This will followed by another person saying \"Two\". This repeats until the circle reaches \"Twenty\".\n\n## Rules\n\nIf two people speak at the same time, the group must begin again from \"One\", after taking a deep breath and allowing a new person to begin the new attempt.\n\n## Tips\n\n- Make sure that the group is not relying on \"a system\" (ie. just going around the circle)\n- If the group gets there quickly, it's an idea to check if they are allowing everyone to participate, and to encourage them to try again and balance with each other", + "type": "EXERCISE", + "configuration": "CIRCLE", + "categories": [ + { + "resourceId": "counting-to-twenty", + "categoryId": "listening" + }, + { + "resourceId": "counting-to-twenty", + "categoryId": "teamwork-and-support" + } + ] + } + } + ] + }, + { + "id": "cls3a7gfd0007u5a97mdalgyi", + "title": "Exercises", + "lessonPlanId": "clrnyapk90001wqebn7it9zqo", + "order": 1, + "items": [ + { + "id": "cls3a7gfd0008u5a9yz0iftdj", + "text": "", + "resourceId": "yes-lets", + "duration": 15, + "order": 0, + "sectionId": "cls3a7gfd0007u5a97mdalgyi", + "resource": { + "id": "yes-lets", + "title": "Yes Let’s!", + "description": "The whole group plays together. Anybody shouts something for the group to do and immediately the whole group shouts “YES LET’S!” in an enthusiastic way and then does that thing. Then someone says another offer and the group again shouts “YES LET’S” and does that thing. Ideally the offers are connected to each other and the group gets used to saying the next obvious thing without blocking or negating and the group start to tell a story together.\n\n### Examples\n\n_Each line is said by a different improviser, except the YES LET’S which is said by everyone at once._\n\nLet’s go for a walk!\n\nYES LET’S!\n\nLet’s breath in the fresh spring time air as we walk!\n\n\\[They all start walking around the room\\]\n\nYES LET’S!\n\n\\[They all breath in the air and start skipping around\\]\n\nLet’s pick up a flower!\n\nYES LET’S!\n\n\\[They all pick up flowers\\]\n\nLet’s sniff the flower!\n\nYES LET’S!\n\n\\[They all sniff the flowers\\]\n\nLet’s smell the most incredible smell and feel giddy!\n\nYES LET’S!\n\n\\[They all start swaying around in the breeze\\]\n\nLet’s rise up off the ground and float up into the blossom of the trees!\n\nYES LET’S!\n\n### Variations\n\n* The lines don’t have to connect, it’s just a bunch of fun stuff for the group to do.\n* The lines connect and one thing leads to another to tell a story.\n* Yes Let’s story inspired by a story.\n* Version where if someone says an offer that the group doesn’t feel like was expected or in the direction of the story people can step out of the story. Sounds harsh but it does give people instant feedback on what helps stories and what blocks stories.\n\n### Purpose\n\n* Agreement.\n* Yes and.\n* Support.\n* Teamwork.\n* Storytelling.\n* Accepting and building.\n* Commitment.\n* Enthusiasm.\n\n### Origin\n\nKeith Johnstone. Keith explains this game much better than me so please buy his books (Impro and Impro for Storytellers).", + "type": "EXERCISE", + "configuration": "WHOLE_CLASS", + "categories": [] + } + }, + { + "id": "cls3a7gfd0009u5a9omzbjn4f", + "text": "", + "resourceId": "i-am-a-tree", + "duration": 20, + "order": 1, + "sectionId": "cls3a7gfd0007u5a97mdalgyi", + "resource": { + "id": "i-am-a-tree", + "title": "I am a Tree", + "description": "A very popular exercise, suitable for beginners of improvisation\n\n## Setup\n\nThe players stand in a circle.\n\nPlayer A goes in the middle, strikes a pose and says who or what they represent. For example, they lift their arms over their head and say \"I am a tree.\"\nA second player B arrives, adds to the picture, and also says who or what they are.\nA third player C enters the scene and completes the suggestions from A and B.\n\nNow that the scene is finished, player A leaves the stage taking one of the other players with them. The remaining player stays inside the circle and repeats their sentence (without changing their pose). As a result, they offer a suggestion for the next scene.\n\nThis exercise can take place with any number of players.\n\n## Examples\n\nA: I am a tree.\nB: I am the dog who's peeing on the tree\nC: I am the man whom the dog belongs to.\nA: (leaving the stage with C) I am a tree and I'm taking the man with me.\nB: I am a dog.\n\nIt automatically occurs that not only images are portrayed, but also figurative representations of abstract concepts.\n\nA: I am a tree.\nB: I am acid rain (Player B symbolizes rain falling on Player A).\nC: I am conservation (Stretches an umbrella over Player A).\nA: (concedes) I am taking Conservation with me.\nB: I am (acid) rain. (Player B remains standing in the middle)\n\n## Tips\n\n- Encourage the players to not \"leave players hanging\" in the middle for a long time\n- Encourage player C to come in and \"yes and\" both offers so far, rather than only adding to player A's offer\n\n## Variations\n\n- This game can also be extended when building images with multiple players. Then the exercise goes on to build into a machine. For example, a machine that fells a tree and processes it to pencils.\n\n", + "type": "EXERCISE", + "configuration": "CIRCLE", + "categories": [ + { + "resourceId": "i-am-a-tree", + "categoryId": "agreement-and-accepting" + }, + { + "resourceId": "i-am-a-tree", + "categoryId": "justification" + }, + { + "resourceId": "i-am-a-tree", + "categoryId": "listening" + }, + { + "resourceId": "i-am-a-tree", + "categoryId": "spontaneity" + }, + { + "resourceId": "i-am-a-tree", + "categoryId": "warmup" + } + ] + } + } + ] + }, + { + "id": "cls3a7gfe000au5a9vpyq86uy", + "title": "Games", + "lessonPlanId": "clrnyapk90001wqebn7it9zqo", + "order": 2, + "items": [ + { + "id": "cls3a7gfe000bu5a9ifk75qnu", + "text": "First in pairs, then optionally in groups and/or one pair in front of the whole group.", + "resourceId": "thats-right-bob", + "duration": 20, + "order": 0, + "sectionId": "cls3a7gfe000au5a9vpyq86uy", + "resource": { + "id": "thats-right-bob", + "title": "That's Right, Bob!", + "description": "This is a great game for practising Yes And, especially for beginners.\n\nTwo improvisers. Both of them are working for a TV Shopping Channel and they are selling a product live to the audience. Each line starts with “That’s Right Bob”, and they are going line by line accepting and building on things about this product.\n\n### Example\n- A: That’s right Bob today we are selling this cocktail shaker!\n- B: That’s right Bob, and it’s no ordinary cocktail shaker, this is the shaker that can shake itself!\n- A: That’s right Bob, just look at this puppy go off all by itself!\n\n[Presses a button and the cocktail shaker starts bouncing around the room].\n\n[B is holding onto the shaker and being dragged around the room].\n\n- B: Bobbbbb!!!!!!!\n\n- A: That’s right Bob, I’ll have a vodka martini, shaken not stirred.\n\n### Top Tips\nTry to accept and build on what’s just been said, it’s not just a collection of random features, let one thing lead to another. To help this try using one of the words the other person just said in your line.\n\n", + "type": "SHORT_FORM", + "configuration": "SCENE", + "categories": [ + { + "resourceId": "thats-right-bob", + "categoryId": "agreement-and-accepting" + }, + { + "resourceId": "thats-right-bob", + "categoryId": "characters" + }, + { + "resourceId": "thats-right-bob", + "categoryId": "justification" + }, + { + "resourceId": "thats-right-bob", + "categoryId": "listening" + } + ] + } + }, + { + "id": "cls3a7gfe000cu5a9ig28paus", + "text": "Close it up with some fun freeze tag with little to no coaching.", + "resourceId": "freeze-tag", + "duration": 10, + "order": 1, + "sectionId": "cls3a7gfe000au5a9vpyq86uy", + "resource": { + "id": "freeze-tag", + "title": "Freeze Tag", + "description": "Two players start in an odd physical position – either ask the audience for one or a letter of the alphabet to inspire each position. \n\nThe rest of the cast surrounds them in a semicircle. The first players do a scene, and if someone from the back line shouts “freeze” then the players in the scene freeze, someone from the back line comes in, taps them on the shoulder, takes over the position, and does a new scene inspired by that position.\n\n## Example\n*Two improvisers are fishing. They are standing next to each other holding fishing rods.*\n\nFisherman: Sure is a good day for fishing.\nFisherwoman: Yessss sir it sure is, an amazing day, sort of day I’m glad to be alive.\nFisherman: Especially after that near death experience you had the other day.\nFisherwoman: Yessss sir, that tuna had it in for me.\n\nPerson from backline: FREEZE!\n\n*The person who yelled freeze steps in, taps one of them out and takes on their exact same position. They turn rods into lightsabres.*\n\nJedi: So Darth Vader we meet again.\nDarth Vader: Yes, it’s great isn’t it?\nJedi: Yes, it is, I love you but our love is not allowed.\n\n## Objectives\n\n- Great way to teach who/what/where, as you are basically doing that rapidly during this game.\n- It’s also good for encouraging spontaneity, as at first people will tend to play it too slow and carefully but it’s more fun once they jump in and go for it without overthinking their ideas.\n- Justification and incorporating mistakes, as the game creates odd situations for improvisers to justify and incorporate into a scene.\n\n## Tips\n\n- You don’t have to have an idea before you shout freeze, you can come in if the scene needs it and work it out once you are there.\n- It's easier to run if the person entering always initiates the new scene\n- Spend more time listening when on the back line and less time thinking.\n- If you feel stuck for ideas in the scene just move and explore where that takes you, or make a reaction sound and see where that goes.\n\n## Variations\n\n#### Blind Freeze Tag\n\nThe back line can stand back to the stage so they shout freeze without seeing the positions. Useful if people are not getting on stage due to over-thinking.\n\n#### Audience Freeze tag\n\nThe audience can shout \"Freeze!\" instead.", + "type": "SHORT_FORM", + "configuration": "SCENE", + "categories": [ + { + "resourceId": "freeze-tag", + "categoryId": "agreement-and-accepting" + }, + { + "resourceId": "freeze-tag", + "categoryId": "physicality" + }, + { + "resourceId": "freeze-tag", + "categoryId": "spontaneity" + }, + { + "resourceId": "freeze-tag", + "categoryId": "who-what-where" + } + ] + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/prisma/seedUtils.ts b/prisma/seedUtils.ts new file mode 100644 index 0000000..feaed1a --- /dev/null +++ b/prisma/seedUtils.ts @@ -0,0 +1,55 @@ +import { db } from "@/server/db"; + +export const seedDataFileName = "./prisma/seedData.json"; + +// This are dummy random session tokens +export const sessionTokenUser = "04456e41-ec3b-4edf-92c1-48c14e57cacd2"; +export const sessionTokenAdmin = "97879e41-ec3b-4edf-92c1-48c14e57cacd2"; + +export async function getSeedData() { + const resources = await db.resource.findMany({ + include: { + categories: { + include: { + category: true, + }, + }, + relatedResources: { + select: { + id: true, + }, + }, + }, + }); + + const lessonPlans = await db.lessonPlan.findMany({ + where: { visibility: "PUBLIC" }, + include: { + sections: { + include: { + items: { + include: { + resource: { + select: { + id: true, + title: true, + description: true, + type: true, + configuration: true, + categories: true, + }, + }, + }, + orderBy: { + order: "asc", + }, + }, + }, + orderBy: { + order: "asc", + }, + }, + }, + }); + return { resources, lessonPlans }; +} diff --git a/prisma/updateSeedData.ts b/prisma/updateSeedData.ts new file mode 100644 index 0000000..1656342 --- /dev/null +++ b/prisma/updateSeedData.ts @@ -0,0 +1,23 @@ +import fs from "fs"; + +import { seedDataFileName, getSeedData } from "@/../prisma/seedUtils"; +import { db } from "@/server/db"; + +async function main() { + console.log("Start retrieving seed data..."); + + const seedData = await getSeedData(); + fs.writeFileSync(seedDataFileName, JSON.stringify(seedData, null, 2), "utf8"); + + console.log("Seed data retrieved and saved to: ", seedDataFileName); +} + +main() + .then(async () => { + await db.$disconnect(); + }) + .catch(async (e) => { + console.error(e); + await db.$disconnect(); + process.exit(1); + }); diff --git a/src/components/data-table/index.tsx b/src/components/data-table/index.tsx index 96ef048..bd770a8 100644 --- a/src/components/data-table/index.tsx +++ b/src/components/data-table/index.tsx @@ -32,14 +32,15 @@ import { import { useMediaQuery } from "@/hooks/use-media-query"; import { cn } from "@/lib/utils"; -interface DataTableProps { +interface DataTableProps + extends React.HTMLAttributes { columns: (ColumnDef & { accessorKey?: string; })[]; data?: TData[]; usePagination?: boolean; filters?: string[]; - isLoading?: boolean; + isLoading: boolean; hiddenColumnsByDefault?: (keyof VisibilityState)[]; hiddenColumnsOnMobile?: (keyof VisibilityState)[]; onSelectionChange?: (selectedRows: Row[]) => void; @@ -50,10 +51,11 @@ export function DataTable({ data, usePagination = false, filters, - isLoading = false, + isLoading, hiddenColumnsByDefault = [], hiddenColumnsOnMobile = [], onSelectionChange, + ...props }: DataTableProps) { const isDesktop = useMediaQuery("(min-width: 768px)"); @@ -118,7 +120,7 @@ export function DataTable({ }, [onSelectionChange, rowSelection, table]); return ( -
+
{filters && }
diff --git a/src/components/lesson-plan-list.tsx b/src/components/lesson-plan-list.tsx index 6637b47..c65b88b 100644 --- a/src/components/lesson-plan-list.tsx +++ b/src/components/lesson-plan-list.tsx @@ -104,6 +104,7 @@ export const LessonPlanList = ({ isLoading={isLoading} filters={useFilters ? ["title"] : undefined} usePagination={usePagination} + data-testid="lesson-plan-list" /> ); }; diff --git a/src/components/resource-list.tsx b/src/components/resource-list.tsx index 28601e4..f5b64a1 100644 --- a/src/components/resource-list.tsx +++ b/src/components/resource-list.tsx @@ -265,6 +265,7 @@ export const ResourceList = ({ hiddenColumnsByDefault={["alternativeNames"]} hiddenColumnsOnMobile={["categories", "configuration"]} onSelectionChange={onSelectionChange} + data-testid="resource-list" /> ); }; diff --git a/src/components/theme-toggle.tsx b/src/components/theme-toggle.tsx index fd31650..8f857f4 100644 --- a/src/components/theme-toggle.tsx +++ b/src/components/theme-toggle.tsx @@ -6,12 +6,12 @@ import { useTheme } from "next-themes"; import { Button } from "@/components/ui/button"; export function ThemeToggle({ className }: { className?: string }) { - const { setTheme, theme } = useTheme(); + const { setTheme, resolvedTheme } = useTheme(); return (