{
  "workbookTitle": "Image recognition · Digital workbook",
  "introTitle": "Can a model always be right?",
  "adaptationScope": "Partial digital adaptation: pool decisions, binary-pixel experiments, robustness/generalization and the school-chatbot advisory activity are available. The original PDF/ZIP remains linked separately. Source image annotations, the grid game, multilayer network design and further explanatory figures still await migration.",
  "introText": "A classifier follows its inputs and learned rules. Record your initial opinion and give a reason in the text field below. Return to it after the experiment.",
  "opinionPrompt": "Can a model make the right decision in every situation?",
  "opinionYes": "Yes",
  "opinionNo": "No",
  "opinionUnsure": "I am not sure",
  "neuronTitle": "Threshold neuron",
  "neuronTask": "Find weights and a threshold that predict visits on Wednesday and Friday only. Inputs use 1 for Lina being available, at least one friend being available, homework being finished, and sunny/warm weather. Try weights 0, 1 and 2. Several solutions may work.",
  "neuronExplanation": "Multiply each input by its weight and add the products. The output is 1 when the sum is greater than or equal to the threshold, otherwise 0. This is one threshold neuron, not a trained image-recognition network.",
  "lina": "Lina available",
  "friends": "Friend available",
  "school": "Homework finished",
  "weather": "Sunny and warm",
  "monday": "Monday",
  "tuesday": "Tuesday",
  "wednesday": "Wednesday",
  "thursday": "Thursday",
  "friday": "Friday",
  "threshold": "Threshold",
  "reset": "Reset weights",
  "invalidNumbers": "Enter finite numbers in every field. The last valid parameters remain saved; the table still shows those parameters.",
  "examples": "Test the whole week",
  "example": "Day",
  "sum": "Weighted sum",
  "output": "Output",
  "expected": "Expected",
  "result": "Comparison",
  "matches": "Matches",
  "differs": "Differs",
  "neuronProgress": "{count} of {total} days match.",
  "boundaryPrompt": "What is the output when the weighted sum equals the threshold?",
  "active": "1 (active)",
  "inactive": "0 (inactive)",
  "weightPrompt": "Which statements describe this neuron? Select all that apply.",
  "effectWeighted": "A weight changes how strongly its input affects the sum.",
  "effectThreshold": "The threshold determines when the output is active.",
  "effectAlwaysRight": "Matching five examples guarantees correct decisions in every new situation.",
  "reflection": "Explain your solution. What can five matching examples tell us, and what can they not tell us?",
  "unanswered": "Choose an answer.",
  "answerSaved": "Opinion saved. There is no automatic right/wrong grade.",
  "correct": "Correct.",
  "tryAgain": "Reconsider your selection.",
  "binaryTableTitle": "Encode the week as binary inputs",
  "binaryTableTask": "Use 1 when a condition is true and 0 otherwise. Monday is filled in as an example. On Tuesday, Lina is unavailable, a friend is available, homework is unfinished and the weather is not sunny/warm. On Wednesday, Lina and a friend are available, homework is unfinished and it is sunny/warm. On Thursday, Lina is unavailable, a friend is available, homework is finished and the weather is not sunny/warm. On Friday, Lina and a friend are available, homework is finished and it is sunny/warm.",
  "zero": "0",
  "one": "1",
  "tableChoose": "Choose…",
  "tableRow": "Row",
  "tableProgress": "{count} of {total} checked cells are correct.",
  "tableSaved": "All cells filled. Answers saved; this table has no automatic grade.",
  "tableIncomplete": "Fill in every editable cell. Answers are saved as you work.",
  "pixelChapter": "From pixels to features",
  "pixelScope": "This section adapts the 3×5 digits and two row detectors from chapter 3, page 2 of Workbook_Teil2.pdf. It does not yet include the full network or the partner guessing game.",
  "pixelRecreateTitle": "Recreate the digit 7",
  "pixelRecreateTask": "Recreate the target image. Each black pixel is 1 and each white pixel is 0. Coordinates start at row 1, column 1 in the top left.",
  "pixelExperimentTitle": "Explore two row detectors",
  "pixelProbeTask": "Load each digit and compare the two outputs. Both detectors use unit weights and threshold 3: one checks the three top-row pixels, the other checks the three middle-row pixels. Try changing individual pixels. These are two fixed feature detectors, not a trained digit classifier.",
  "pixelHelp": "Click a pixel or focus it and press Space or Enter to toggle between 0 and 1. Changes are saved immediately.",
  "pixelCanvas": "Your image",
  "pixelTarget": "Target image",
  "pixelCoordinate": "Row {row}, column {column}",
  "pixelReset": "Reset pixels",
  "pixelTopProbe": "Top row detector",
  "pixelMiddleProbe": "Middle row detector",
  "pixelProbeResult": "sum {count}, threshold {threshold} → output {output}",
  "pixelProgress": "{count} of {total} pixels match the target.",
  "pixelUngraded": "Exploration saved. There is no correct target image for this experiment.",
  "pixelUniqueness": "Do these two detector outputs uniquely identify every digit?",
  "pixelReflection": "Which digits share the same two outputs? Explain what information the detectors discard and suggest an additional feature.",
  "pixelDigit0": "Digit 0",
  "pixelDigit1": "Digit 1",
  "pixelDigit2": "Digit 2",
  "pixelDigit3": "Digit 3",
  "pixelDigit4": "Digit 4",
  "pixelDigit5": "Digit 5",
  "pixelDigit6": "Digit 6",
  "pixelDigit7": "Digit 7",
  "pixelDigit8": "Digit 8",
  "pixelDigit9": "Digit 9",
  "unicodeFirst": "First text",
  "unicodeSecond": "Second text",
  "unicodePosition": "Position",
  "unicodeGlyph": "Character",
  "unicodeHex": "Code point (hex)",
  "unicodeDecimal": "Decimal",
  "unicodeValidity": "Validity",
  "unicodeScalar": "Scalar value",
  "unicodeUnpaired": "Unpaired surrogate",
  "unicodeEqual": "The raw texts are identical. This is not a trust verdict.",
  "unicodeDifferent": "The raw texts differ. Compare their code points; this is not a trust verdict.",
  "unicodeExplanation": "Compare characters locally, without opening a website. Positions count code points, not UTF-16 units or visible graphemes. Emoji may occupy two UTF-16 units; combining accents are separate code points. Spaces, control characters and unpaired surrogates are retained. No normalization, IDNA conversion or domain ownership check is performed. International characters are not inherently suspicious. Inputs are limited to 256 UTF-16 units.",
  "phishingWarningTitle": "Warning signs: appearance, sender and links",
  "phishingWarningTask": "Return to the simulated mailbox. Choose a suspicious message for each warning sign below and record its subject, the concrete evidence, requested action and an independent check. One message may illustrate several signs. This adapts warning modules W1–W4; the original screenshots remain in the classic ZIP.",
  "phishingWarningTable": "Evidence from the mailbox",
  "phishingAppearance": "Look and feel",
  "phishingDisplayName": "Display name / actual sender",
  "phishingLink": "Visible link / actual destination",
  "phishingDomain": "Imitated domain",
  "phishingObservation": "Message and observation",
  "phishingRequestedAction": "Requested action",
  "phishingCheck": "Independent check",
  "phishingLookFeel": "Explain why copied logos, colors and wording can appear authentic. What do they fail to prove? Appearance alone is not evidence of identity.",
  "phishingSender": "Compare the display name and complete sender address in a message. How can both be misleading? Even a plausible sender address is not proof of authenticity; authenticated transport and independent confirmation provide different evidence.",
  "phishingHiddenLink": "Inspect the simulator's link details. Copy the visible text and actual destination into your answer, without visiting it. Why can they differ? How would hover details or a mobile long press help, and what would they still not prove?",
  "phishingIndependentCheck": "Describe a way to verify the request using a contact or address you already know, rather than the message's link or phone number. Explain why pausing is useful when a message creates urgency.",
  "phishingDomainTitle": "Domains and Unicode lookalikes",
  "phishingDomainExplanation": "For the three W4 examples, separate the full hostname from the registrable domain. Do not open these addresses. A brand name in a subdomain does not identify the owner. These examples have simple suffixes; taking the last two labels is not a universal rule (for example, example.co.uk). A country-code suffix does not establish a server's location or trustworthiness. HTTPS protects transport to the addressed host, not the honesty of its content.",
  "phishingDomainTable": "Hostname and registrable domain (these examples)",
  "phishingPlanetarium": "www.planetarium.berlin/zeiss-grossplanetarium/geschichte",
  "phishingDfb": "www.dfb.fanshop.io/login",
  "phishingSparkasse": "www.sparkasse.de.suport.ru/verifizieren",
  "phishingHostname": "Full hostname",
  "phishingRegisteredDomain": "Registrable domain",
  "phishingJudgmentTask": "Assess the original W4 examples below. Identify a possible imitation, what the address establishes and what additional evidence you need. A familiar-looking domain alone does not prove a message is genuine. These judgments are saved without an automatic trust grade.",
  "phishingJudgmentTable": "Address judgments and evidence",
  "phishingGoogleSpoof": "info@google.com.ru",
  "phishingApple": "no-reply@email.apple.com",
  "phishingYoutubeSpoof": "www.youtoobe-login.co",
  "phishingPaypal": "www.paypal.com",
  "phishingInstagramSpoof": "www.instgram.com",
  "phishingJudgment": "Assessment / further checks",
  "phishingEvidence": "Evidence and reason",
  "phishingUnicodeTitle": "Inspect visually similar strings",
  "phishingUnicodeTask": "T2 introduces ASCII and Unicode. Enter the decimal code points for each character below, separated by single spaces. You can explore with the local inspector. ASCII has 128 codes; Unicode includes other scripts and emoji. Decimal codes here are code points, not UTF-8 bytes.",
  "phishingCodeTable": "Decimal code-point sequences",
  "phishingCodeSequence": "Decimal codes, space separated",
  "phishingCodeA": "A",
  "phishingCodeLowerA": "a",
  "phishingCodeEszett": "ß",
  "phishingCodeNet": "Нет",
  "phishingCodeEmoji": "🌍",
  "phishingUnicodeReason": "Compare paypal.com with the prefilled T2 imitation. Locate the Cyrillic letters and the Latin capital I using their codes. Then inspect Nein heißt Нет. Explain why visual similarity does not imply identical text, and why a non-Latin name is not automatically fraudulent.",
  "phishingUnicodeMitigation": "Inspect payраI.com, google.com, arnazon.de and ebay.сom as in T2 (copy characters exactly). Which differences can codes reveal, and which are ordinary Latin spelling tricks? Describe an independent verification strategy. The inspector does not decode Punycode or decide whether a domain is legitimate.",
  "phishingAttachmentTitle": "Attachments and malware",
  "phishingAttachmentExplanation": "V3: inspect the six original filenames without opening files. Record the final extension, possible risk and reasoning. A double extension such as .pdf.exe can disguise executable code; archives can contain it, and macro-enabled documents can run code. An ordinary image, PDF or .docx extension is not a guarantee of safety: content, vulnerabilities and context matter. All simulator attachments are inert descriptions.",
  "phishingAttachmentTable": "Attachment-risk analysis",
  "phishingFileJpg": "Klassenfoto.jpg",
  "phishingFileExe": "Anmeldeformular.pdf.exe",
  "phishingFileZip": "update_wichtig.zip",
  "phishingFileDocx": "Abstimmungsergebnis.docx",
  "phishingFileDocm": "Bewerbung.docm",
  "phishingFilePdf": "Hausaufgaben.pdf",
  "phishingExtension": "Final extension",
  "phishingPossibleRisk": "Possible risk",
  "phishingMalwareTask": "Choose the malware category most consistent with each V3 observation. These are simplified textbook descriptions, not a diagnosis. Adware shows unwanted advertising; keyloggers record keystrokes; spyware collects information; ransomware blocks or encrypts data and demands payment.",
  "phishingMalwareTable": "Match the textbook symptoms",
  "phishingMalwareType": "Category",
  "phishingAdwareObservation": "Jamal sees unsolicited advertising pop-ups.",
  "phishingRansomObservation": "Frida cannot open documents; a demand for €500 appears.",
  "phishingSpyObservation": "Chris notices unexpected camera activation.",
  "phishingMalwareDifference": "Compare credential phishing with delivering malware. Why can following a suspicious link or enabling a document's macros be risky even if you enter no password? Avoid claiming that every link automatically installs software.",
  "phishingAttachmentResponse": "What would you do if a message asks you to open an unexpected attachment or enable macros? Explain independent confirmation, keeping software updated and seeking help. Do not test a suspicious file on your own device.",
  "phishingChecklistTitle": "An anti-phishing checklist",
  "phishingChecklistTask": "Adapt the main workbook's final flyer: write five measures, explain how to apply each and why it helps. Include technical evidence and a way to handle urgency. Your answers are saved without automatic grading. Further technical, psychological and spearphishing modules remain in the classic ZIP.",
  "phishingChecklistTable": "Five verification measures",
  "phishingMeasure": "Measure",
  "phishingDescription": "How to apply it",
  "phishingReason": "Why it helps",
  "phishingUncertain": "What will you do if you are still unsure? Name an independently reachable trusted contact and explain what to do if data has already been disclosed.",
  "phishingFinalReassessment": "Revisit your initial mailbox judgments. Which would you change, and what new evidence explains the change? Separate message priority from authenticity: a genuine advertisement may be unnecessary, while a phishing request may appear urgent.",
  "generalizationTitle": "Robustness and generalization",
  "robustnessTitle": "A fragile one-pixel detector",
  "onePixelProbe": "Digit-1 feature: row 2, column 2",
  "originalOne": "Original digit 1",
  "missingPixelOne": "1 with its feature pixel removed",
  "invertedOne": "1 with inverted colors",
  "robustnessTask": "Part 2, chapter 4: the pixel at row 2, column 2 distinguishes 1 from the other nine source templates. This detector simply outputs that pixel's bit. Try the original, removed-pixel and inverted-color presets, then edit other pixels. The variants are digital counterfactuals, not the PDF's full set of modified digit figures. No model is trained here. Success on ten templates does not imply reliable recognition of handwriting.",
  "robustnessObservationTask": "Record your interpretation, detector output and explanation for each variant. Can a clearly different image still activate the detector? Find an example. The observation table is ungraded because human interpretation and explanations need discussion.",
  "robustnessTable": "Observed robustness",
  "humanInterpretation": "Human interpretation",
  "detectorOutput": "Detector output",
  "robustnessReason": "Explanation / counterexample",
  "adversarialReflection": "Explain how small changes to an input can change a model's decision while a human interpretation stays similar. The classic PDF includes the panda/gibbon example from Goodfellow et al. (2014). Distinguish this engineered adversarial example from the simple one-pixel counterfactual here; matching behavior alone does not establish the same cause.",
  "generalizationReflection": "What additional examples would test whether recognition generalizes? Separate examples used to choose a rule from held-out tests. Discuss missing training coverage, overfitting and distribution changes. Our fixed detector has no training process, so its failure alone does not demonstrate training overfitting. A wrong class prediction is a misclassification, not automatically an LLM hallucination.",
  "mnistReflection": "Research MNIST's handwritten digits and record a source and retrieval date. Explain why inverted colors, shifted strokes and different handwriting can challenge a recognizer. What preprocessing and held-out tests would you propose? The digital workbook does not download or train on MNIST; the original examples remain in the PDF.",
  "recognitionReassessment": "Reassess your initial opinion. Explain possible reasons for false positives and missed images in a photo search, separating observations from assumptions about its model. Record a counterexample and what evidence would support your explanation.",
  "roadSignReflection": "The original chapter asks about a stop sign covered with stickers. Explain possible recognition difficulties and consequences for autonomous driving. What other sensors, uncertainty handling and independent safety checks could help? Do not infer the safety of an entire driving system from one image-classifier experiment.",
  "schoolChatbotTitle": "Advising a school about chatbots",
  "schoolChatbotScenario": "Part 2, chapter 5: a school asks your company to advise on an LLM with transformer architecture for homework, exam preparation, lesson planning, tests and marking. Research the five questions below with sources and dates. Describe what is known and uncertain; no external chatbot or account is needed to save your findings here.",
  "chatbotResearchTitle": "Transformer research",
  "transformerDefinition": "What is a transformer model?",
  "transformerStructure": "How is it structured?",
  "transformerInputOutput": "What inputs and outputs does it use?",
  "transformerGeneration": "How does it generate answers?",
  "transformerProblems": "What difficulties can arise?",
  "researchFinding": "Finding / uncertainty",
  "researchSource": "Source and retrieval date",
  "schoolChatbotAssessmentTask": "Compare practical benefits, risks and conditions for each proposed use. Include factual errors, learning effects, data protection, fairness and responsibility. These are arguments to review, not automatically graded facts.",
  "chatbotAssessmentTitle": "Assess proposed school uses",
  "schoolHomework": "Homework support",
  "schoolExamPreparation": "Exam preparation",
  "schoolLessonPlanning": "Lesson planning",
  "schoolAssessment": "Tests and marking",
  "schoolBenefit": "Benefit",
  "schoolRisk": "Risk",
  "schoolCondition": "Required condition",
  "schoolChatbotJudgment": "Write a reasoned recommendation to the school, covering practical and social aspects. State a clear judgment, any conditions, a counterargument and how evidence could change your recommendation.",
  "phishingMeasure1": "Measure 1",
  "phishingMeasure2": "Measure 2",
  "phishingMeasure3": "Measure 3",
  "phishingMeasure4": "Measure 4",
  "phishingMeasure5": "Measure 5",
  "unicodeReset": "Reset inputs",
  "phishingAdaptationScope": "Partial digital adaptation: the mailbox, warning-sign analysis, domain/Unicode exercises, malware examples and final checklist are available. The classic ZIP remains available with the complete main workbook, screenshots and supplementary modules. This draft has not passed content-equivalence review.",
  "evacuationTitle": "Evacuation – construct a floor",
  "evacuationTask": "Construct a floor with walls, at least {minExits} exits and {minPeople} people. Select a tool, then click a cell; click an existing person again to remove them. Painting a wall removes its occupant. These criteria check construction only, not evacuation safety.",
  "evacuationFloor": "Floor",
  "evacuationWall": "Wall",
  "evacuationExit": "Exit",
  "evacuationPerson": "Person",
  "evacuationAddRow": "Add bottom row",
  "evacuationRemoveRow": "Remove bottom row",
  "evacuationAddColumn": "Add right column",
  "evacuationRemoveColumn": "Remove right column",
  "evacuationReset": "Reset floor",
  "evacuationPreview": "{cols} × {rows} cells · {people} people · {exits} exits",
  "evacuationComplete": "Construction criteria met.",
  "evacuationIncomplete": "Construction criteria not yet met.",
  "evacuationCell": "Row {row}, column {col}: {tile} {person}",
  "evacuationExampleTask": "Construct a floor with walls, at least one exit and one person. Select a tool, then click a cell; click an existing person again to remove them. Painting a wall removes its occupant. These criteria check construction only, not evacuation safety.",
  "evacuationSimulationTitle": "Evacuation experiment",
  "evacuationRules": "EVA2 closest-exit routing, stable person and route order; one move or wait per person per macro step. Four neighbours allow orthogonal moves; eight also allow diagonal moves. The time estimate assumes 0.5 m per step even for diagonals. Playback speed is separate from model time.",
  "evacuationNeighbourhood": "Neighbourhood",
  "evacuationFour": "Four neighbours",
  "evacuationEight": "Eight neighbours",
  "evacuationSpeed": "Assumed speed (m/s, 0.01–20)",
  "evacuationPrepare": "Prepare simulation",
  "evacuationEdit": "Edit floor",
  "evacuationPrevious": "Previous step",
  "evacuationNext": "Next step",
  "evacuationPlay": "Play",
  "evacuationPause": "Pause",
  "evacuationRestart": "Restart playback",
  "evacuationRunLimit": "Use at most 400 cells, 100 people and 8 exits for playback.",
  "evacuationPlaying": "Step {steps} · {remaining} people remaining",
  "evacuationEvacuated": "Evacuated in {steps} movement steps.",
  "evacuationBlocked": "Stopped after {steps} steps; {remaining} people remain blocked.",
  "evacuationStepLimit": "Step limit reached after {steps} steps; {remaining} people remain.",
  "evacuationEvacuatedName": "Evacuated",
  "evacuationBlockedName": "Blocked",
  "evacuationStepLimitName": "Step limit",
  "evacuationRunLabel": "Run label",
  "evacuationRecord": "Record run",
  "evacuationSteps": "Movement steps",
  "evacuationSeconds": "Model time (s)",
  "evacuationRemaining": "Remaining people",
  "evacuationOutcome": "Result",
  "evacuationAction": "Action",
  "evacuationRemoveRun": "Remove run",
  "evacuationMeasurementsNote": "Each recorded run keeps its original layout and settings. Record at most 12 runs; changing the floor does not change earlier measurements. The closest-exit strategy can stop with people remaining. These results are model observations, not a real-world safety assessment.",
  "evacuationSimulationPreview": "{people} people · {exits} exits · {runs} recorded runs",
  "evacuationWorkbookTitle": "Evacuation with grid automata · Digital workbook",
  "evacuationIntroduction": "The model and your prediction",
  "evacuationScope": "This partial adaptation follows the [original PDF](../../resources/workbookpdfs/20211110EvakuierungGitterautomat.pdf). Both versions intentionally remain available until content equivalence is reviewed. The corridor and comparison rooms are new teaching examples, not the original sports-hall layouts. Exact source layouts, diagrams and newspaper material remain to be adapted.",
  "evacuationPrediction": "Predict where congestion will occur in a narrow corridor with one exit. What assumptions does a grid automaton make about people?",
  "evacuationExperimentTask": "Prepare the corridor simulation. Use individual macro steps to observe movement, then play to the end and record a named run. Edit the floor to add an exit at the other end and record a second run. Keep the same number of people and speed so the comparison changes only the exits.",
  "evacuationComparison": "Compare your recorded runs. Describe congestion, the number of movement steps and people remaining. Explain which variable you changed and whether the result supports your prediction.",
  "evacuationTimeTitle": "From simulation steps to time",
  "evacuationTimeTask": "The source PDF uses 50 cm × 50 cm cells. Derive the step duration from an assumed speed v in m/s, then derive total model time for n movement steps. Check your formula against a recorded run. Waiting people still use the same macro step.",
  "evacuationSpeedClaims": "In the PDF, Andre proposes 6 m/s and Julia proposes 3 m/s. Assess these claims rather than treating them as facts. Repeat the same layout with different assumed speeds. Explain why movement-step count stays constant while model time changes.",
  "evacuationLimitsTitle": "Interpret and question the model",
  "evacuationLimitsTask": "Compare four- and eight-neighbour movement. Which details about body size, turning, diagonal distance, behaviour and accessibility are simplified? Explain why adding exits need not solve every blockage in a closest-exit model.",
  "evacuationTransferTask": "Which additional evidence and expert review would be needed before applying these model observations to a real building? Distinguish what you measured from what the model cannot establish.",
  "evacuationSpeedInvalid": "Enter a finite speed between 0.01 and 20 m/s.",
  "evacuationSetup": "Original setup",
  "evacuationRestoreRun": "Restore scenario",
  "evacuationRunSetup": "{cols} × {rows}; {people} people; {exits} exits; {neighbours}; {speed} m/s",
  "evacuationSchoolTitle": "Make our school safer",
  "evacuationSchoolTask": "The headteacher needs evidence before paying for changes (PDF p. 10). Suggest at least three improvements: wider doors or corridors, additional assembly points, fewer people in rooms, or your own idea. For each, state a prediction, what you would measure and which conditions you would keep fixed.",
  "evacuationLockersTitle": "Remove lockers or close the gaps?",
  "evacuationLayoutProvenance": "This editable room is a new teaching example, not a reconstruction of the PDF sports hall. Each cell represents 0.5 m × 0.5 m; walls also stand for lockers. Recorded runs retain their layouts and settings. Use Restore scenario to return to your baseline before testing a different change.",
  "evacuationLockersPrediction": "Four isolated wall cells represent lockers (rows 4 and 6, columns 5 and 7; counting from 1). The headteacher agrees to remove two (PDF p. 11). Choose two before running the model. Explain why removing those two should help and predict the effect on evacuation time.",
  "evacuationLockersResults": "Record an unchanged baseline first. Paint your two chosen lockers as Floor, keeping people, exits, neighbourhood and speed fixed, then record a second run. Compare steps, model time and remaining people. Did your prediction change? Explain the result and whether the behaviour seems realistic.",
  "evacuationGapsPrediction": "Now consider the opposite proposal (PDF p. 12): add lockers to close gaps where people might get stuck. Predict whether filling the two gaps (rows 4 and 6, column 6) will help, harm or have no effect. Explain your theory before testing.",
  "evacuationGapsResults": "Restore the recorded baseline, then paint the two gap cells as Wall and record a third run. Compare it with the baseline, not with the removed-locker layout. Explain whether observations support your theory. An unchanged result is also evidence; this example need not reproduce the PDF sports hall’s behaviour.",
  "evacuationDoorTitle": "How does door width affect evacuation time?",
  "evacuationDoorPrediction": "Two explanations compete (PDF pp. 13–14): doubling door width doubles throughput and halves the time; or travel to the door limits the improvement. Predict which relationship you expect: linear, quadratic, exponential, inversely proportional, directly proportional or another shape. Describe a predicted curve of time against width and explain your reasoning before simulating. Plot several points in the prediction graph below before running the simulation.",
  "evacuationDoorResults": "Record the one-cell door (row 5, column 11: 0.5 m). Widen it by painting Exit in row 6, column 11 (1.0 m total), then row 4, column 11 (1.5 m total), recording each run with its width in the label. Keep people, lockers, speed and neighbourhood unchanged. List width, steps and model time as a table in your answer; describe the observed relationship and compare it with your prediction. Explain why width zero has no finite evacuation time in a room without another exit. The PDF’s 1.2 m reference cannot be represented exactly by 0.5 m cells. Enter your measured door widths and model times in the observation graph below. Keep predictions unchanged so you can compare them with evidence. Do not enter a finite time for a blocked run; explain it in your answer instead.",
  "evacuationBudgetTitle": "Your €20,000 master plan",
  "evacuationBudgetTask": "The fictional quotation in PDF p. 16 gives you **€20,000**. Select proposed measures below. These selections record your proposal; they do not automatically alter the simulation. The source’s “Thanos snap” is a fictional way to halve occupancy, not a recommendation. Consider the question “faster is always better?” using evidence beyond this fixed-speed grid model.",
  "evacuationBudgetJustification": "Calculate and state the total cost and money left over. Stay within €20,000 and justify your choices with recorded experiments and their limitations. Distinguish measures you actually tested from those this model cannot test. Describe any custom measure. A checked box alone does not establish a safety benefit.",
  "evacuationAuditTitle": "Question the simulation",
  "evacuationOrderTask": "Does this model simulate an orderly or chaotic evacuation (PDF p. 18)? Observe movement and explain your classification. The workbook uses stable person and route ordering so runs are repeatable. Does repeatability imply realistic behaviour?",
  "evacuationNeighbourTask": "Audit movement as in PDF pp. 18–19. In this room, record one run with four neighbours and another with eight, keeping everything else fixed. Describe orthogonal versus diagonal movement, the difference in steps/time and its importance. The model uses 0.5 m per step even diagonally; a physical diagonal would be √2 times as long. Explain how that assumption affects the comparison.",
  "evacuationThirdFactor": "Choose a third difference between points in the model and real people. Describe it, predict whether it speeds up or slows down evacuation, estimate its effect where possible and evaluate its importance. The PDF’s first example is an unnecessary two-step detour; its impact depends on the full route.",
  "evacuationStumbleTask": "Can this implementation reproduce a congestion wave caused by someone stumbling in a long corridor (PDF p. 20)? Answer yes or no and justify it from the movement rules. Distinguish ordinary bottleneck congestion from reaction delays or temporary stopping. If the needed behaviour is absent, propose an algorithm change and a controlled experiment to test it.",
  "evacuationBudgetTraining": "Walking/running training — 8,000 €",
  "evacuationBudgetMoveAssembly": "Move assembly point — 1,500 €",
  "evacuationBudgetAddAssembly": "Additional assembly point — 2,000 €",
  "evacuationBudgetWidenDoor": "Double door width — 14,000 €",
  "evacuationBudgetRemoveObstacles": "Remove obstacles — 4,000 €",
  "evacuationBudgetHalfPeople": "Halve occupancy (fictional “Thanos snap”) — 18,000 €",
  "evacuationBudgetAddObstacles": "Additional obstacles — 2,000 €",
  "evacuationBudgetCustom": "Custom measure — 18,000 €",
  "plotInstructions": "Enter coordinates to add a point, or enter the same x coordinate again to replace it. Connect points to sketch a relationship; connecting lines are not a fitted model. At most 100 points can be saved.",
  "plotAdd": "Add or replace point",
  "plotConnect": "Connect points",
  "plotRange": "Allowed coordinates: x from {xmin} to {xmax}, y from {ymin} to {ymax}. Enter finite numbers using a dot or comma.",
  "plotPoints": "Saved points",
  "plotAction": "Action",
  "plotRemove": "Remove point",
  "evacuationDoorWidth": "Door width (m)",
  "evacuationDoorTime": "Evacuation time (s)",
  "evacuationDoorPredictionPlot": "Predicted relationship: door width and time",
  "evacuationDoorObservationPlot": "Observed relationship: door width and time",
  "plotRelationshipLinear": "Linear relationship",
  "plotRelationshipQuadratic": "Quadratic relationship",
  "plotRelationshipExponential": "Exponential relationship",
  "plotRelationshipInverse": "Inverse proportionality",
  "plotRelationshipDirect": "Direct proportionality",
  "plotRelationshipOther": "Another relationship (explain in your answer)",
  "plotPredictedRelationship": "How would you classify your prediction?",
  "plotObservedRelationship": "How would you classify your observations?"
}
