Facilitator Guide

Everything you need to run a successful 2-hour Interactive Mirror Lab workshop

Workshop Timeline

0:00 - 0:15

Introduction & Setup

Welcome participants, explain workshop goals, ensure everyone has camera access working. Show inspiring examples from the resources page.

0:15 - 0:35

Slides 1-2: Mirror Basics

Start with simple mirroring, then introduce edge detection and posterization. Let participants experiment with controls. Discuss the history of mirrors in art and video art pioneers.

0:35 - 0:55

Slides 3-4: Motion & Pose

Introduce frame differencing and motion detection. Move to full body pose tracking. This is where it gets magical—give participants time to play and discover.

0:55 - 1:05

Break

10-minute break. Encourage participants to share discoveries with each other.

1:05 - 1:25

Slides 5-6: Audio Synthesis

Introduce Tone.js and color-to-sound mapping. Move to face tracking with AR accessories. Discuss synesthesia and the history of visual music.

1:25 - 1:45

Slide 7: Gesture Instrument

Hand tracking theremin. This is the most complex interaction—give participants time to master the pinch gesture and explore musical scales.

1:45 - 2:00

Slide 8: Playground & Wrap-up

Open playground for experimentation. Share the resources page. Encourage participants to continue exploring at home. Q&A and closing thoughts.

Pre-Workshop Checklist

Test all slides on your device beforehand
Ensure good lighting for camera demos
Have backup device in case of technical issues
Prepare example code snippets for playground
Review speaker notes for each slide
Test audio output (for Slides 3, 5, 7)
Familiarize yourself with keyboard shortcuts
Prepare answers to common technical questions

Teaching Tips

Start Simple, Build Complexity

Don't rush through early slides. The simple mirror (Slide 1) establishes the foundation. Make sure everyone understands the concept before moving forward.

Encourage Experimentation

The controls are there to be played with. Give participants 2-3 minutes of free exploration on each slide before explaining the technical details.

Connect to Art History

Use the historical references in the speaker notes. Show images of Kusama's Infinity Rooms, Nam June Paik's TV Buddha, or Myron Krueger's Videoplace. Context makes the technology meaningful.

Troubleshoot Camera Issues Early

Camera permissions are the #1 technical issue. Address this in the first 5 minutes. Have participants test on the home page before starting slides.

Use Presenter Mode

Open presenter mode (/presenter) on a second screen or device. Speaker notes contain rich context, technical details, and discussion prompts.

Embrace Failure

If something breaks in the playground, that's a teaching moment. Show participants how to debug, read error messages, and iterate.

Common Questions & Answers

Why isn't my camera working?

Check browser permissions (usually a camera icon in the address bar). Chrome/Edge work best. Safari may require additional permissions. Firefox sometimes has WebGL issues.

Can I use this code in my own projects?

This is open-source educational material. The code uses p5.js (LGPL), MediaPipe (Apache 2.0), and Tone.js (MIT). All are free for commercial and non-commercial use.

How does MediaPipe work without a server?

MediaPipe runs entirely in the browser using WebAssembly and TensorFlow.js. The ML models are downloaded once and run locally. No data leaves your device—complete privacy.

What's the difference between pose and face tracking?

Pose tracking (Slide 4) detects 33 body landmarks. Face mesh (Slide 6) detects 478 facial landmarks. Hand tracking (Slide 7) detects 21 landmarks per hand. Different models for different use cases.

Can I add my own effects in the playground?

Yes! The playground (Slide 8) has full p5.js access. Try filters (filter(BLUR)), blend modes (blendMode(MULTIPLY)), or particle systems. Check the p5.js reference for ideas.

Why do some slides have audio and others don't?

Slides 3, 5, and 7 use Tone.js for audio synthesis. We introduce audio gradually—first as simple triggers (Slide 3), then as color-to-sound mapping (Slide 5), finally as a full instrument (Slide 7).

Extension Activities

Mirror Selfie Gallery

Have participants capture screenshots of their favorite effects and create a shared gallery. Discuss what makes each effect interesting or beautiful.

Collaborative Performance

Use Slide 7 (gesture instrument) for a group performance. Assign different participants to different scales or base notes. Record the result.

Remix Challenge

In the playground, challenge participants to combine techniques from multiple slides. Can they add pose tracking to the color synth? Edge detection to face tracking?

Critical Discussion

Discuss the implications of face tracking, surveillance, and privacy. Reference artists like Zach Blas and Adam Harvey who critique facial recognition technology.

Historical Deep Dive

Pick one artist or artwork from the references (Nam June Paik, Myron Krueger, Golan Levin) and research their work. How does it relate to what we built today?

Additional Resources for Facilitators

The Coding Train (Daniel Shiffman)

https://thecodingtrain.com

Excellent video tutorials on p5.js, computer vision, and creative coding. His enthusiasm is contagious.

ml5.js Documentation

https://ml5js.org

Friendly machine learning library for the web. Great for extending this workshop with image classification, style transfer, etc.

Gene Kogan's ML Art Resources

https://ml4a.net

Comprehensive guide to machine learning for artists. Includes theory, tutorials, and philosophical discussions.

CreativeApplications.Net

https://creativeapplications.net

Curated platform for creative coding, digital art, and interactive installations. Great for finding contemporary examples.

TOPLAP Live Coding Community

https://toplap.org

The live coding community. Check out Algorave events and the manifesto: 'Show us your screens!'

Questions or feedback? This workshop is open-source and community-driven.