Skip to content

Intuition Testing

This interactive MicroSim allows learners to experience intuition testing and see how their intuitive responses compare to scientific understanding, revealing potential misconceptions that are common and natural.

About This MicroSim

The simulation presents four carefully designed scenarios that probe common misconceptions in physics and biology. A timer encourages quick, intuitive responses rather than deliberate reasoning, helping reveal how our first instincts often differ from scientific understanding.

Test Structure

The simulation includes four scenarios:

  1. Circular Motion - What path does a ball take after exiting a curved tube?
  2. Falling Objects - Which lands first: a heavy or light ball?
  3. Electric Current - Is current the same on both sides of a light bulb?
  4. Evolution - Why did a beetle population shift from brown to green?

Key Features

  • Timed responses - Encourages intuitive rather than deliberate thinking
  • Confidence rating - Track how sure you are before seeing results
  • Animated explanations - Visual demonstrations of correct answers
  • Non-judgmental feedback - Uses "interesting" rather than "wrong" language
  • Population comparisons - See how your responses compare to others

Fullscreen

How to Use

Testing Workflow

  1. Read the scenario - Understand the setup presented
  2. Trust your gut - Select the answer that feels right (don't overthink!)
  3. Lock in your answer - Click to confirm before time runs out
  4. Watch the animation - See what actually happens scientifically
  5. Review the explanation - Learn why the misconception feels natural
  6. Continue - Progress through all four scenarios

Understanding Your Results

The test reveals common misconceptions that even experts initially held:

  • Circular impetus - The belief that objects "remember" circular motion
  • Aristotelian physics - The intuition that heavier objects fall faster
  • Current consumption - Thinking electricity gets "used up" by devices
  • Lamarckian inheritance - Believing organisms can will themselves to change

Lesson Plan

Grade Level

Middle School to High School (Grades 7-12)

Learning Objectives

By the end of this lesson, students will be able to:

  1. Identify common scientific misconceptions in their own thinking
  2. Distinguish between intuitive responses and scientific understanding
  3. Explain why certain misconceptions feel natural and compelling
  4. Apply metacognitive awareness to evaluate future intuitions

Duration

30-45 minutes

Materials

  • Computer or tablet with web browser
  • Optional: reflection worksheet

Lesson Procedure

Introduction (5 minutes)

  1. Explain that our brains develop intuitions about how the world works
  2. These intuitions are often useful but sometimes conflict with science
  3. The goal is awareness, not judgment

Individual Testing (15 minutes)

  1. Students complete all four scenarios independently
  2. Encourage quick, gut-level responses
  3. No discussion during testing

Group Discussion (15 minutes)

  1. Share aggregate results (show of hands for each scenario)
  2. Discuss why each misconception feels natural
  3. Connect to the history of science (Aristotle, Lamarck, etc.)

Reflection (10 minutes)

  1. Students identify one misconception they held
  2. Discuss strategies for recognizing when intuition might mislead
  3. Emphasize that misconceptions are normal and valuable to discover

Assessment Questions

  1. Why do we call these "misconceptions" rather than "mistakes"?
  2. Which scenario surprised you the most? Why?
  3. How might awareness of these misconceptions help in science class?
  4. What other intuitions about the world might be worth questioning?

p5.js Editor Template

You can experiment with this code in the p5.js web editor.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
// Intuition Testing - Simplified Version
// For use in p5.js web editor

let canvasWidth = 500;
let canvasHeight = 400;

// Simple state machine
let state = "question"; // question, feedback
let selectedOption = -1;
let isCorrect = false;

// Single scenario for demo
let scenario = {
  question: "A heavy ball (10kg) and light ball (1kg) are dropped together. Which lands first?",
  options: ["Heavy first", "Same time", "Light first"],
  correctIndex: 1,
  explanation: "In the absence of air resistance, all objects fall at the same rate regardless of mass."
};

function setup() {
  createCanvas(canvasWidth, canvasHeight);
  textFont('Arial');
}

function draw() {
  background(248, 250, 252);

  if (state === "question") {
    drawQuestion();
  } else {
    drawFeedback();
  }
}

function drawQuestion() {
  // Title
  fill(59, 130, 246);
  textSize(18);
  textStyle(BOLD);
  textAlign(CENTER, TOP);
  text("Falling Objects", width / 2, 20);

  // Question
  fill(30, 41, 59);
  textSize(14);
  textStyle(NORMAL);
  text(scenario.question, width / 2, 60, width - 40);

  // Draw balls
  fill(59, 130, 246);
  noStroke();
  ellipse(width / 2 - 60, 150, 50, 50);
  fill(255);
  textSize(10);
  text("10kg", width / 2 - 60, 150);

  fill(34, 197, 94);
  ellipse(width / 2 + 60, 150, 30, 30);
  fill(255);
  textSize(8);
  text("1kg", width / 2 + 60, 150);

  // Options
  let optionWidth = 120;
  let startX = width / 2 - (optionWidth * 1.5 + 20);

  for (let i = 0; i < 3; i++) {
    let x = startX + i * (optionWidth + 10);
    let y = 220;
    let isHovered = mouseX > x && mouseX < x + optionWidth &&
                    mouseY > y && mouseY < y + 50;
    let isSelected = selectedOption === i;

    fill(isSelected ? color(219, 234, 254) : (isHovered ? color(248, 250, 252) : 255));
    stroke(isSelected ? color(59, 130, 246) : color(200));
    strokeWeight(isSelected ? 2 : 1);
    rect(x, y, optionWidth, 50, 8);

    fill(30, 41, 59);
    noStroke();
    textSize(12);
    textAlign(CENTER, CENTER);
    text(scenario.options[i], x + optionWidth / 2, y + 25);
  }

  // Submit button
  if (selectedOption >= 0) {
    let btnX = width / 2 - 50;
    let btnY = 300;
    fill(59, 130, 246);
    noStroke();
    rect(btnX, btnY, 100, 40, 8);
    fill(255);
    textSize(14);
    text("Submit", width / 2, btnY + 20);
  }
}

function drawFeedback() {
  // Result
  fill(isCorrect ? color(34, 197, 94) : color(239, 68, 68));
  textSize(20);
  textStyle(BOLD);
  textAlign(CENTER, TOP);
  text(isCorrect ? "Correct!" : "Interesting!", width / 2, 30);

  // Your answer
  fill(30, 41, 59);
  textSize(14);
  textStyle(NORMAL);
  text("You selected: " + scenario.options[selectedOption], width / 2, 70);

  // Correct answer
  fill(34, 197, 94);
  text("Correct: " + scenario.options[scenario.correctIndex], width / 2, 100);

  // Explanation
  fill(30, 41, 59);
  textSize(12);
  text(scenario.explanation, width / 2, 150, width - 60);

  // Animation
  let t = (frameCount % 120) / 120;
  let y = 220 + t * 100;

  fill(59, 130, 246);
  ellipse(width / 2 - 40, y, 40, 40);
  fill(34, 197, 94);
  ellipse(width / 2 + 40, y, 25, 25);

  // Ground
  stroke(100);
  line(width / 2 - 80, 320, width / 2 + 80, 320);

  // Try again
  fill(100, 116, 139);
  noStroke();
  textSize(11);
  text("Click anywhere to try again", width / 2, 360);
}

function mousePressed() {
  if (state === "question") {
    // Check option clicks
    let optionWidth = 120;
    let startX = width / 2 - (optionWidth * 1.5 + 20);

    for (let i = 0; i < 3; i++) {
      let x = startX + i * (optionWidth + 10);
      if (mouseX > x && mouseX < x + optionWidth &&
          mouseY > 220 && mouseY < 270) {
        selectedOption = i;
        return;
      }
    }

    // Check submit button
    if (selectedOption >= 0 &&
        mouseX > width / 2 - 50 && mouseX < width / 2 + 50 &&
        mouseY > 300 && mouseY < 340) {
      isCorrect = selectedOption === scenario.correctIndex;
      state = "feedback";
    }
  } else {
    // Reset
    state = "question";
    selectedOption = -1;
  }
}

Design Pattern Notes

This MicroSim demonstrates key principles of the Intuition Testing design pattern:

  • Time pressure: Encourages System 1 (intuitive) rather than System 2 (deliberate) thinking
  • Non-judgmental framing: Uses "interesting" rather than "wrong" to reduce defensiveness
  • Misconception explanation: Explains WHY the intuition feels right, not just that it's wrong
  • Social comparison: Shows that misconceptions are common, normalizing the experience
  • Visual demonstration: Animations provide concrete evidence of scientific principles

References