#!/usr/bin/env python3 """ Create PowerPoint presentation: Test Modes Reference One slide per test mode with technical details """ from pptx import Presentation from pptx.util import Inches, Pt from pptx.dml.color import RGBColor from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.enum.shapes import MSO_SHAPE import os # Create presentation with widescreen dimensions prs = Presentation() prs.slide_width = Inches(13.333) prs.slide_height = Inches(7.5) # Color scheme - Professional blue/gray DARK_BLUE = RGBColor(0, 51, 102) ACCENT_BLUE = RGBColor(0, 112, 192) LIGHT_BLUE = RGBColor(220, 235, 250) DARK_GRAY = RGBColor(64, 64, 64) LIGHT_GRAY = RGBColor(240, 240, 240) WHITE = RGBColor(255, 255, 255) ACCENT_ORANGE = RGBColor(230, 126, 34) def add_title_slide(title, subtitle=""): """Add a title slide""" slide_layout = prs.slide_layouts[6] # Blank slide = prs.slides.add_slide(slide_layout) # Background shape shape = slide.shapes.add_shape( MSO_SHAPE.RECTANGLE, 0, 0, prs.slide_width, prs.slide_height ) shape.fill.solid() shape.fill.fore_color.rgb = DARK_BLUE shape.line.fill.background() # Title title_box = slide.shapes.add_textbox( Inches(0.5), Inches(2.5), Inches(12.333), Inches(1.5) ) tf = title_box.text_frame p = tf.paragraphs[0] p.text = title p.font.size = Pt(54) p.font.bold = True p.font.color.rgb = WHITE p.alignment = PP_ALIGN.CENTER if subtitle: sub_box = slide.shapes.add_textbox( Inches(0.5), Inches(4.2), Inches(12.333), Inches(1) ) tf = sub_box.text_frame p = tf.paragraphs[0] p.text = subtitle p.font.size = Pt(28) p.font.color.rgb = LIGHT_BLUE p.alignment = PP_ALIGN.CENTER return slide def add_section_slide(section_title, tests_list): """Add a section divider slide with mini TOC""" slide_layout = prs.slide_layouts[6] # Blank slide = prs.slides.add_slide(slide_layout) # Left accent bar bar = slide.shapes.add_shape( MSO_SHAPE.RECTANGLE, 0, 0, Inches(0.3), prs.slide_height ) bar.fill.solid() bar.fill.fore_color.rgb = ACCENT_BLUE bar.line.fill.background() # Section title title_box = slide.shapes.add_textbox( Inches(0.8), Inches(0.5), Inches(12), Inches(1.2) ) tf = title_box.text_frame p = tf.paragraphs[0] p.text = section_title p.font.size = Pt(44) p.font.bold = True p.font.color.rgb = DARK_BLUE # Subtitle sub_box = slide.shapes.add_textbox( Inches(0.8), Inches(1.5), Inches(12), Inches(0.5) ) tf = sub_box.text_frame p = tf.paragraphs[0] p.text = "Tests in This Section:" p.font.size = Pt(20) p.font.color.rgb = DARK_GRAY # Tests list list_box = slide.shapes.add_textbox( Inches(1.2), Inches(2.2), Inches(11), Inches(4.5) ) tf = list_box.text_frame tf.word_wrap = True for i, test in enumerate(tests_list, 1): if i == 1: p = tf.paragraphs[0] else: p = tf.add_paragraph() p.text = f"{i}. {test}" p.font.size = Pt(22) p.font.color.rgb = DARK_GRAY p.space_after = Pt(8) return slide def add_test_slide( test_name, org, year, test_type, purpose, setup_data, dummy_data, criteria_data, image_path=None, note=None, ): """Add a test mode slide with all details""" slide_layout = prs.slide_layouts[6] # Blank slide = prs.slides.add_slide(slide_layout) # Header bar header = slide.shapes.add_shape( MSO_SHAPE.RECTANGLE, 0, 0, prs.slide_width, Inches(1.0) ) header.fill.solid() header.fill.fore_color.rgb = DARK_BLUE header.line.fill.background() # Test name title_box = slide.shapes.add_textbox( Inches(0.3), Inches(0.15), Inches(10), Inches(0.7) ) tf = title_box.text_frame p = tf.paragraphs[0] p.text = test_name p.font.size = Pt(32) p.font.bold = True p.font.color.rgb = WHITE # Org/Year/Type badge badge_box = slide.shapes.add_textbox( Inches(10.5), Inches(0.25), Inches(2.5), Inches(0.5) ) tf = badge_box.text_frame p = tf.paragraphs[0] p.text = f"{org} | {year}" p.font.size = Pt(14) p.font.color.rgb = LIGHT_BLUE p.alignment = PP_ALIGN.RIGHT # Test type below badge type_box = slide.shapes.add_textbox( Inches(10.5), Inches(0.55), Inches(2.5), Inches(0.4) ) tf = type_box.text_frame p = tf.paragraphs[0] p.text = test_type p.font.size = Pt(12) p.font.color.rgb = LIGHT_BLUE p.alignment = PP_ALIGN.RIGHT # Purpose section purpose_label = slide.shapes.add_textbox( Inches(0.3), Inches(1.15), Inches(2), Inches(0.3) ) tf = purpose_label.text_frame p = tf.paragraphs[0] p.text = "PURPOSE" p.font.size = Pt(12) p.font.bold = True p.font.color.rgb = ACCENT_BLUE purpose_box = slide.shapes.add_textbox( Inches(0.3), Inches(1.4), Inches(6.5), Inches(0.9) ) tf = purpose_box.text_frame tf.word_wrap = True p = tf.paragraphs[0] p.text = purpose p.font.size = Pt(14) p.font.color.rgb = DARK_GRAY # Left column - Test Setup setup_label = slide.shapes.add_textbox( Inches(0.3), Inches(2.4), Inches(3), Inches(0.3) ) tf = setup_label.text_frame p = tf.paragraphs[0] p.text = "TEST SETUP" p.font.size = Pt(12) p.font.bold = True p.font.color.rgb = ACCENT_BLUE setup_box = slide.shapes.add_textbox( Inches(0.3), Inches(2.7), Inches(3.5), Inches(2.0) ) tf = setup_box.text_frame tf.word_wrap = True for i, (param, value) in enumerate(setup_data): if i == 0: p = tf.paragraphs[0] else: p = tf.add_paragraph() p.text = f"{param}: {value}" p.font.size = Pt(12) p.font.color.rgb = DARK_GRAY p.space_after = Pt(4) # Middle column - Dummy & Instrumentation dummy_label = slide.shapes.add_textbox( Inches(4.0), Inches(2.4), Inches(3.5), Inches(0.3) ) tf = dummy_label.text_frame p = tf.paragraphs[0] p.text = "DUMMY & INSTRUMENTATION" p.font.size = Pt(12) p.font.bold = True p.font.color.rgb = ACCENT_BLUE dummy_box = slide.shapes.add_textbox( Inches(4.0), Inches(2.7), Inches(3.5), Inches(2.0) ) tf = dummy_box.text_frame tf.word_wrap = True for i, (item, spec) in enumerate(dummy_data): if i == 0: p = tf.paragraphs[0] else: p = tf.add_paragraph() p.text = f"{item}: {spec}" p.font.size = Pt(12) p.font.color.rgb = DARK_GRAY p.space_after = Pt(4) # Bottom section - Injury Criteria table criteria_label = slide.shapes.add_textbox( Inches(0.3), Inches(4.8), Inches(3), Inches(0.3) ) tf = criteria_label.text_frame p = tf.paragraphs[0] p.text = "INJURY CRITERIA & LIMITS" p.font.size = Pt(12) p.font.bold = True p.font.color.rgb = ACCENT_BLUE # Criteria as text (simplified table format) criteria_box = slide.shapes.add_textbox( Inches(0.3), Inches(5.1), Inches(7.5), Inches(2.2) ) tf = criteria_box.text_frame tf.word_wrap = True for i, (metric, limit, region) in enumerate(criteria_data[:6]): # Limit to 6 rows if i == 0: p = tf.paragraphs[0] else: p = tf.add_paragraph() p.text = f"{metric}: {limit} ({region})" p.font.size = Pt(11) p.font.color.rgb = DARK_GRAY p.space_after = Pt(2) # Right side - Image placeholder or actual image if image_path and os.path.exists(image_path): try: slide.shapes.add_picture( image_path, Inches(8.0), Inches(1.2), width=Inches(5.0) ) except: # Fallback if image fails img_box = slide.shapes.add_shape( MSO_SHAPE.RECTANGLE, Inches(8.0), Inches(1.2), Inches(5.0), Inches(3.5) ) img_box.fill.solid() img_box.fill.fore_color.rgb = LIGHT_GRAY else: # Image placeholder img_box = slide.shapes.add_shape( MSO_SHAPE.RECTANGLE, Inches(8.0), Inches(1.2), Inches(5.0), Inches(3.5) ) img_box.fill.solid() img_box.fill.fore_color.rgb = LIGHT_GRAY img_box.line.color.rgb = DARK_GRAY img_text = slide.shapes.add_textbox( Inches(8.0), Inches(2.7), Inches(5.0), Inches(0.5) ) tf = img_text.text_frame p = tf.paragraphs[0] p.text = "[Test Image]" p.font.size = Pt(14) p.font.color.rgb = DARK_GRAY p.alignment = PP_ALIGN.CENTER # Note if present if note: note_box = slide.shapes.add_textbox( Inches(8.0), Inches(5.0), Inches(5.0), Inches(1.5) ) tf = note_box.text_frame tf.word_wrap = True p = tf.paragraphs[0] p.text = f"Note: {note}" p.font.size = Pt(11) p.font.italic = True p.font.color.rgb = DARK_GRAY return slide # ============================================================================ # BUILD THE PRESENTATION # ============================================================================ # Title slide add_title_slide( "Safety Test Modes Reference", "One Slide Per Test Mode | Comprehensive Technical Guide", ) # ============================================================================ # SECTION 1: NHTSA / FMVSS REGULATORY TESTS # ============================================================================ add_section_slide( "SECTION 1: NHTSA / FMVSS REGULATORY TESTS", [ "FMVSS 208 - Full Frontal Impact", "FMVSS 214 - Side Impact (MDB)", "FMVSS 214 - Side Pole Impact", "FMVSS 216 - Roof Crush Resistance", "FMVSS 301 - Fuel System Integrity", "FMVSS 208 - Out-of-Position (OOP)", "FMVSS 213 - Child Restraint Systems", "FMVSS 201 - Interior Impact (FMH)", ], ) # FMVSS 208 - Full Frontal add_test_slide( "FMVSS 208 - Full Frontal Impact", "NHTSA", "1968/1984", "Full Vehicle Crash Test", "Evaluates occupant protection in head-on collisions. The most fundamental crash test - simulates striking a fixed barrier at highway speed. Forms the basis of NCAP 5-star ratings.", [ ("Speed", "35 mph (56 km/h)"), ("Barrier", "Rigid concrete wall"), ("Overlap", "100% full width"), ("Vehicle", "Production vehicle"), ("Orientation", "Perpendicular"), ], [ ("Driver ATD", "Hybrid III 50th male"), ("Passenger ATD", "Hybrid III 5th female"), ("Total Channels", "~94"), ("Key Sensors", "Head accel, chest, femur"), ], [ ("HIC15", "≤ 700", "Head"), ("Chest Accel (3ms)", "≤ 60g", "Thorax"), ("Chest Deflection", "≤ 63mm / 52mm", "Thorax"), ("Femur Load", "≤ 10 kN", "Lower Ext"), ("Nij", "≤ 1.0", "Neck"), ("Neck Tension", "≤ 4,170 N", "Neck"), ], "assets/crash_test_dummies_subaru.jpg", ) # FMVSS 214 - Side MDB add_test_slide( "FMVSS 214 - Side Impact (MDB)", "NHTSA", "1990", "Full Vehicle Crash Test", "Evaluates occupant protection when struck broadside. Side impacts are particularly dangerous - only inches separate the door from the occupant.", [ ("MDB Speed", "33.5 mph (54 km/h)"), ("MDB Mass", "3,015 lb (1,368 kg)"), ("Angle", "27° crabbed"), ("Impact Point", "Driver side, H-point"), ("Barrier Face", "Deformable honeycomb"), ], [ ("Driver ATD", "ES-2re"), ("Rear ATD", "SID-IIs (5th female)"), ("Total Channels", "~80"), ("Key Sensors", "Ribs, pelvis, abdomen"), ], [ ("HIC36", "≤ 1000", "Head"), ("Rib Deflection", "≤ 44 mm", "Thorax"), ("Lower Spine Accel", "≤ 82g", "Pelvis"), ("Abdominal Force", "≤ 2.5 kN", "Abdomen"), ("Pubic Force", "≤ 6 kN", "Pelvis"), ("V*C", "≤ 1.0 m/s", "Thorax"), ], "assets/iihs_side_barrier.jpg", ) # FMVSS 214 - Side Pole add_test_slide( "FMVSS 214 - Side Pole Impact", "NHTSA", "2007", "Full Vehicle Crash Test", "Simulates sliding sideways into a narrow object (tree, pole). Concentrates force on small area, causing severe intrusion. Side curtain airbags critical.", [ ("Speed", "20 mph (32 km/h)"), ("Pole Diameter", "254 mm (10 in)"), ("Impact Angle", "75° oblique"), ("Impact Location", "Driver head position"), ("Vehicle", "Propelled into pole"), ], [ ("Driver ATD", "ES-2re or WorldSID"), ("Total Channels", "~40"), ("Key Sensors", "Head, ribs, pelvis"), ], [ ("HIC36", "≤ 1000", "Head"), ("Rib Deflection", "≤ 44 mm", "Thorax"), ("Lower Spine Accel", "≤ 82g", "Pelvis"), ("Abdominal Force", "≤ 2.5 kN", "Abdomen"), ], "assets/iihs_side_2021.jpg", "Side curtain airbags became essential for passing this test.", ) # FMVSS 216 - Roof Crush add_test_slide( "FMVSS 216 - Roof Crush Resistance", "NHTSA", "1973/2009", "Static Test", "Ensures roof supports vehicle weight during rollover. 2009 upgrade doubled requirement to 3x after Ford/Firestone crisis showed original 1.5x inadequate.", [ ("Test Type", "Static (no crash)"), ("Force Application", "Angled steel plate"), ("Plate Angle", "25° from horizontal"), ("Force Required", "≥ 3× vehicle weight"), ("Duration", "5 seconds"), ], [ ("ATD", "None (static test)"), ("Measurements", "Force, displacement"), ("Channels", "~4-6"), ("Key Sensors", "Load cells"), ], [ ("Strength-to-Weight", "≥ 3.0", "Structure"), ("Max Displacement", "≤ 127 mm", "Before 3×"), ("Both Sides", "Must pass", "Independent"), ], "assets/roof_strength_test.jpg", "Original 1.5× standard (1973) doubled to 3× in 2009.", ) # FMVSS 301 - Fuel System add_test_slide( "FMVSS 301 - Fuel System Integrity", "NHTSA", "1968/1977", "Full Vehicle Crash Test", "Prevents fuel leakage after crashes to reduce fire risk. Strengthened in 1977 after infamous Ford Pinto case showed $11 fix vs. deaths calculation.", [ ("Rear Speed", "50 mph MDB"), ("Side Speed", "20 mph MDB"), ("Rollover", "360° rotation"), ("MDB Mass", "4,000 lb"), ("Duration", "5 min post-crash"), ], [ ("ATD", "None (leakage test)"), ("Measurements", "Fuel leakage volume"), ("Duration", "5 minutes static"), ], [ ("Impact Leakage", "≤ 28g", "During crash"), ("Static Leakage", "≤ 142g/min", "Post-crash"), ("Rollover Leakage", "≤ 142g/min", "Each position"), ], "assets/cadaver_crash_test.jpg", "Ford Pinto: 'Cheaper to let them burn' memo became infamous.", ) # FMVSS 208 - OOP add_test_slide( "FMVSS 208 - Out-of-Position (OOP)", "NHTSA", "2000", "Static Deployment Test", "Ensures airbags don't injure occupants too close at deployment. Added after 175+ deaths from early aggressive airbags (mostly children and small adults).", [ ("Position 1", "Chin on module"), ("Position 2", "Chest on module"), ("Position 3", "Abdomen on module"), ("Position 4", "Child seat present"), ("Test", "Airbag deployment"), ], [ ("ATDs Used", "5th female, children"), ("Children", "6yr, 3yr, 12mo CRABI"), ("Total Channels", "~30 per test"), ("Key Sensors", "Head/neck, chest"), ], [ ("HIC15", "≤ 700", "Head"), ("Nij", "≤ 1.0", "Neck"), ("Neck Tension", "≤ 2,620 N", "Neck (5th)"), ("Chest Deflection", "≤ 52 mm", "Thorax (5th)"), ], "assets/crabi_infant_dummy.jpg", "Led to multi-stage airbags and suppression systems.", ) # FMVSS 213 - Child Restraint add_test_slide( "FMVSS 213 - Child Restraint Systems", "NHTSA", "1971", "Sled Test", "Ensures child car seats protect children in crashes. Tests the child restraint system itself, not the vehicle. Multiple dummy sizes used.", [ ("Test Type", "Sled test"), ("Delta-V", "30 mph (48 km/h)"), ("Peak G", "23-26g"), ("Pulse Duration", "~80 ms"), ("Seat Bench", "Standardized"), ], [ ("Dummies", "CRABI, HIII 3/6/10 yr"), ("Total Channels", "~15-20 per dummy"), ("Key Sensors", "Head accel, excursion"), ], [ ("HIC36", "≤ 1000", "All dummies"), ("Head Excursion", "≤ 720 mm", "Forward"), ("Knee Excursion", "≤ 915 mm", "Forward"), ("Chest Accel (3ms)", "≤ 60g", "All"), ], "assets/child_dummy_booster.jpg", ) # FMVSS 201 - Interior Impact add_test_slide( "FMVSS 201 - Interior Impact (FMH)", "NHTSA", "1968/1998", "Component Test", "Ensures interior surfaces (pillars, header) don't cause severe head injury when struck. Led to padded pillars and roof-mounted airbags.", [ ("Test Type", "Component test"), ("Impactor", "Free Motion Headform"), ("FMH Mass", "4.5 kg (10 lb)"), ("Impact Speed", "15 mph (24 km/h)"), ("Targets", "A/B/C pillars, header"), ], [ ("FMH Sensors", "Triaxial accelerometer"), ("Total Channels", "3"), ("Sample Rate", "≥ 8,000 Hz"), ("Filter", "CFC 1000"), ], [("HIC(d)", "≤ 1000", "All points")], "assets/iihs_dummy_sensors.jpg", "Multiple impact points tested across each pillar.", ) # ============================================================================ # SECTION 2: IIHS CONSUMER TESTS # ============================================================================ add_section_slide( "SECTION 2: IIHS CONSUMER INFORMATION TESTS", [ "IIHS Moderate Overlap Frontal", "IIHS Small Overlap Frontal", "IIHS Side Impact (2021 Updated)", "IIHS Roof Strength", "IIHS Head Restraint / Whiplash (Discontinued)", "IIHS Front Crash Prevention - V2V", "IIHS Headlights", "IIHS Front Crash Prevention - Pedestrian", ], ) # IIHS Moderate Overlap add_test_slide( "IIHS Moderate Overlap Frontal", "IIHS", "1995", "Full Vehicle Crash Test", "Simulates head-on crash with partial engagement - the most common serious frontal crash. More demanding than FMVSS 208 because it bypasses part of crush structure.", [ ("Speed", "40 mph (64 km/h)"), ("Overlap", "40% of width"), ("Barrier", "Deformable honeycomb"), ("Barrier Height", "650 mm"), ("Barrier Width", "1,000 mm"), ], [ ("Driver ATD", "Hybrid III 50th male"), ("Total Channels", "~47"), ("Key Sensors", "Head, neck, chest, legs"), ], [ ("Head/Neck", "Good/Acceptable/Marginal/Poor", "Risk level"), ("Chest", "Good/Acceptable/Marginal/Poor", "Risk level"), ("Hip/Thigh", "Good/Acceptable/Marginal/Poor", "Risk level"), ("Lower Leg", "Good/Acceptable/Marginal/Poor", "Risk level"), ], "assets/iihs_frontal_crash_test.jpg", ) # IIHS Small Overlap add_test_slide( "IIHS Small Overlap Frontal", "IIHS", "2012/2017", "Full Vehicle Crash Test", "Addresses corner impacts (tree, pole). Many vehicles that aced moderate overlap failed initially - BMW, Mercedes, Audi all rated Marginal/Poor in 2012.", [ ("Speed", "40 mph (64 km/h)"), ("Overlap", "25% of width"), ("Barrier", "RIGID (not deformable)"), ("Tests", "Driver AND Passenger sides"), ("Barrier Edge", "Rounded"), ], [ ("ATD", "Hybrid III 50th male"), ("Total Channels", "~47"), ("Key Sensors", "Head, neck, chest, legs"), ], [ ("Structure", "Intrusion measured", "Compartment"), ("Kinematics", "Stayed in zone?", "Restraint"), ("Injury Risk", "G/A/M/P", "All regions"), ], "assets/small_overlap_test.jpg", "2012 launch: Only 3 of 13 midsize cars earned 'Good'.", ) # IIHS Side 2021 add_test_slide( "IIHS Side Impact (2021 Updated)", "IIHS", "2003/2021", "Full Vehicle Crash Test", "Simulates T-bone by larger SUV. 2021 update: heavier barrier (4,200 lb vs 3,300 lb) and faster (37 mph vs 31 mph) to reflect real-world vehicle size increases.", [ ("Barrier Speed", "37 mph (2021)"), ("Barrier Mass", "4,200 lb (2021)"), ("Ground Clearance", "Higher (SUV-like)"), ("Face Height", "Taller"), ("Impact", "Driver side"), ], [ ("Front ATD", "SID-IIs (5th female)"), ("Rear ATD", "SID-IIs (5th female)"), ("Total Channels", "~60"), ("Key Sensors", "Head, ribs, pelvis"), ], [ ("Head/Neck", "G/A/M/P", "HIC, accel"), ("Torso", "G/A/M/P", "Rib deflection"), ("Pelvis", "G/A/M/P", "Accel, pubic"), ], "assets/iihs_side_2021.jpg", "Original (2003): 31 mph, 3,300 lb barrier.", ) # IIHS Roof add_test_slide( "IIHS Roof Strength", "IIHS", "2009", "Static Test", "Evaluates roof strength for rollover. IIHS 'Good' requires 4× vehicle weight - exceeds federal 3× requirement. Most vehicles now earn Good.", [ ("Test Type", "Static loading"), ("Plate Angle", "25°"), ("Loading Rate", "≤ 5 mm/sec"), ("Crush Limit", "127 mm"), ("Both Sides", "Tested separately"), ], [("ATD", "None"), ("Measurements", "Force, displacement")], [ ("Good", "≥ 4.0×", "Strength-to-weight"), ("Acceptable", "3.25 - 3.99×", "Strength-to-weight"), ("Marginal", "2.50 - 3.24×", "Strength-to-weight"), ("Poor", "< 2.50×", "Strength-to-weight"), ], "assets/roof_strength_test.jpg", "Discontinued after 2016 - nearly all vehicles earn Good.", ) # IIHS Whiplash add_test_slide( "IIHS Head Restraint / Whiplash", "IIHS", "2004-2020", "Sled Test (DISCONTINUED)", "Evaluated whiplash protection in rear-end crashes. Used BioRID II dummy with 24-vertebrae spine. Discontinued because nearly all seats now earn Good.", [ ("Test Type", "Sled test"), ("Delta-V", "10 mph (16 km/h)"), ("Peak Accel", "~10g"), ("Pulse", "Rear-end simulated"), ("Status", "DISCONTINUED 2020"), ], [ ("ATD", "BioRID II"), ("Special", "24-vertebrae spine"), ("Total Channels", "~35"), ("Key Sensors", "Neck, spine motion"), ], [ ("Contact Time", "How quickly head reached restraint", "Timing"), ("Torso Accel", "Peak acceleration", "Severity"), ("Neck Shear", "Maximum force", "Injury risk"), ("Neck Tension", "Maximum force", "Injury risk"), ], "assets/hybrid_iii_family.jpg", "IIHS developing more demanding rear-impact test.", ) # IIHS FCP V2V add_test_slide( "IIHS Front Crash Prevention - V2V", "IIHS", "2013", "Track Test", "Evaluates AEB and FCW systems. Tests response to passenger cars, motorcycles, and semi-trailers. Points for warnings and speed reductions.", [ ("Targets", "Car, motorcycle, trailer"), ("Speeds", "31, 37, 43 mph"), ("Car Config", "Centered and offset"), ("Motorcycle", "Centered and offset"), ("Semi", "FCW only (steer out)"), ], [ ("Instrumentation", "GPS, speed, decel"), ("FCW Timing", "≥ 2.1 sec required"), ("AEB Weight", "2/3 of score"), ("FCW Weight", "1/3 of score"), ], [ ("Full Avoidance", "Maximum points", "AEB"), ("Speed Reduction", "Partial points", "AEB"), ("Warning ≥2.1s", "Required", "FCW"), ], "assets/iihs_fcp_car_target.png", ) # IIHS Headlights add_test_slide( "IIHS Headlights", "IIHS", "2016", "Track Evaluation", "Evaluates headlight illumination and glare. Revealed huge variation - some 'luxury' vehicles had poor headlights. Tests straights and curves.", [ ("Track", "Straight and curved"), ("Curves", "500ft, 800ft radius"), ("Measurements", "Light intensity"), ("Conditions", "Nighttime, dry"), ("High Beam", "Auto-assist evaluated"), ], [ ("Instrumentation", "Light meters"), ("Measurements", "Illumination distance"), ("Factors", "Low beam, high beam, glare"), ], [ ("Low Beam Straight", "Primary factor", "Distance"), ("Low Beam Curves", "Critical", "Safety"), ("High Beam", "Additional credit", "Bonus"), ("Excessive Glare", "Deductions", "Penalty"), ], "assets/iihs_crash_hall.jpg", "Wide variation even within same model (trim levels).", ) # IIHS Pedestrian AEB add_test_slide( "IIHS Front Crash Prevention - Pedestrian", "IIHS", "2019", "Track Test", "Evaluates AEB for pedestrian detection. Pedestrian fatalities increased as SUV sales grew. Tests adult and child crossing scenarios.", [ ("Adult Perp", "50th male crossing"), ("Adult Parallel", "Walking along edge"), ("Child", "Darting into road"), ("Speeds", "25, 37 mph"), ("Conditions", "Daytime"), ], [ ("Targets", "Adult/child body forms"), ("Movement", "Propelled on track"), ("Instrumentation", "Speed, braking"), ], [ ("Superior", "Avoid/reduce all scenarios", "Rating"), ("Advanced", "Significant reduction", "Rating"), ("Basic", "Warning only", "Rating"), ], "assets/euroncap_headform.png", "Euro NCAP added night testing in 2024.", ) # ============================================================================ # SECTION 3: NCAP TESTS # ============================================================================ add_section_slide( "SECTION 3: NCAP CONSUMER RATING TESTS", [ "NHTSA NCAP 5-Star Frontal", "NHTSA NCAP 5-Star Side", "Euro NCAP MPDB (Mobile Progressive Deformable Barrier)", ], ) # NHTSA NCAP Frontal add_test_slide( "NHTSA NCAP 5-Star Frontal", "NHTSA", "1979", "Full Vehicle Crash Test", "Provides consumers comparative frontal crash ratings. Same test as FMVSS 208 but published as 1-5 stars based on injury probability.", [ ("Speed", "35 mph (56 km/h)"), ("Barrier", "Rigid wall"), ("Overlap", "100% full frontal"), ("Same as", "FMVSS 208"), ], [ ("Driver ATD", "Hybrid III 50th male"), ("Passenger ATD", "Hybrid III 5th female"), ("Total Channels", "~94"), ], [ ("5 Stars", "≤ 10% injury probability", "Best"), ("4 Stars", "11-20%", "Good"), ("3 Stars", "21-35%", "Average"), ("2 Stars", "36-45%", "Below avg"), ("1 Star", "≥ 46%", "Worst"), ], "assets/crash_test_dummies_subaru.jpg", ) # NHTSA NCAP Side add_test_slide( "NHTSA NCAP 5-Star Side", "NHTSA", "1997/2011", "Full Vehicle Crash Test", "Provides consumers comparative side crash ratings. Combines MDB and pole tests (added 2011) for overall side rating.", [ ("MDB Speed", "38.5 mph (62 km/h)"), ("MDB Mass", "3,015 lb"), ("Pole Speed", "20 mph"), ("Pole Diameter", "254 mm"), ("Combined", "Single rating"), ], [ ("Driver MDB", "ES-2re"), ("Driver Pole", "WorldSID"), ("Rear", "SID-IIs 5th female"), ], [ ("MDB + Pole", "Combined rating", "Overall"), ("Driver", "Front seat", "Primary"), ("Rear", "Second row", "Included"), ], "assets/iihs_side_barrier.jpg", ) # Euro NCAP MPDB add_test_slide( "Euro NCAP MPDB", "Euro NCAP", "2020", "Full Vehicle Crash Test", "Simulates head-on between similar vehicles. Uniquely measures 'aggressivity' - how much damage test vehicle inflicts on other car.", [ ("Test Vehicle Speed", "50 km/h (31 mph)"), ("Trolley Speed", "50 km/h"), ("Overlap", "50%"), ("Trolley Mass", "1,400 kg"), ("Barrier", "Progressive deformable"), ], [ ("Driver ATD", "THOR-50M"), ("Rear ATDs", "Q6, Q10 children"), ("THOR Features", "150+ channels"), ("Special", "Multi-point chest"), ], [ ("Occupant Protection", "Injury scores", "Primary"), ("Compatibility", "Barrier deformation", "Unique"), ("Penalty", "Aggressive vehicles penalized", "Modifier"), ], "assets/thor_dummy.jpg", "THOR-50M: Most advanced frontal dummy in use.", ) # ============================================================================ # SECTION 4: PEDESTRIAN PROTECTION # ============================================================================ add_section_slide( "SECTION 4: PEDESTRIAN PROTECTION", [ "Euro NCAP Pedestrian - Legform Impact", "Euro NCAP Pedestrian - Headform Impact", "Euro NCAP AEB Pedestrian/Cyclist", ], ) # Legform add_test_slide( "Euro NCAP Pedestrian - Legform Impact", "Euro NCAP", "1997", "Component Test", "Evaluates bumper design for pedestrian leg injuries. Bumper typically contacts leg first when vehicle strikes pedestrian.", [ ("Impactor", "Flexible lower legform"), ("Impact Speed", "40 km/h (25 mph)"), ("Target", "Front bumper"), ("Test Points", "Multiple across width"), ("Upper Leg Mass", "8.6 kg"), ], [ ("Knee Sensors", "Angle, shear"), ("Tibia Sensors", "Accel, bending"), ("Total Mass", "13.4 kg"), ], [ ("Knee Bending", "≤15° good, ≥21° poor", "Angle"), ("Knee Shear", "≤3.5mm good, ≥6mm poor", "Displacement"), ("Tibia Accel", "≤150g good, ≥200g poor", "Acceleration"), ], "assets/euroncap_headform.png", ) # Headform add_test_slide( "Euro NCAP Pedestrian - Headform Impact", "Euro NCAP", "1997/2023", "Component Test", "Evaluates hood/windshield design for pedestrian head injuries. Hood surface and windshield base are where pedestrians' heads typically strike.", [ ("Impact Speed", "40 km/h (25 mph)"), ("Adult Headform", "4.5 kg, 165mm"), ("Child Headform", "3.5 kg, 130mm"), ("Target", "Hood, windshield base"), ("Test Points", "Grid of locations"), ], [ ("Sensors", "Triaxial accelerometer"), ("Channels", "3 per impact"), ("Filter", "CFC 1000"), ], [ ("HIC15 Good", "≤ 650", "Green"), ("HIC15 Adequate", "650-1000", "Yellow"), ("HIC15 Poor", "≥ 1700", "Red"), ], "assets/euroncap_headform.png", "Led to raised hoods, pop-up systems, external airbags.", ) # AEB Pedestrian/Cyclist add_test_slide( "Euro NCAP AEB Pedestrian/Cyclist", "Euro NCAP", "2016/2018/2024", "Track Test", "Evaluates active systems that detect and brake for pedestrians/cyclists. 2024 update added night testing for pedestrians.", [ ("Adult Crossing", "CPFA, CPNA scenarios"), ("Adult Along Road", "CPLA scenario"), ("Child Running", "CPNC scenario"), ("Cyclist", "CBFA, CBLA scenarios"), ("Speeds", "20, 40, 60 km/h"), ], [ ("Targets", "Adult/child body forms"), ("Cyclist", "Bike + rider target"), ("2024 Update", "Night testing added"), ], [ ("Full Avoidance", "Maximum points", "Best"), ("Speed Reduction", "Partial points", "Good"), ("Warning Only", "Minimal points", "Basic"), ("No Response", "Zero points", "Fail"), ], "assets/euroncap_cyclist_headform.png", ) # ============================================================================ # SECTION 5: SPORTS / HELMET TESTING # ============================================================================ add_section_slide( "SECTION 5: SPORTS / HELMET TESTING", [ "NOCSAE Football Helmet - Drop Test", "NOCSAE Football Helmet - Linear Impactor", "NOCSAE Lacrosse Helmet", "Ice Hockey Helmet (ASTM/HECC/CSA)", "FMVSS 218 - Motorcycle Helmet", ], ) # Football Drop add_test_slide( "NOCSAE Football Helmet - Drop Test", "NOCSAE", "1973", "Drop Test", "Ensures helmets attenuate impact energy to prevent skull fracture and severe brain injury. Founding test that reduced football fatalities by 90%.", [ ("Standard Drop", "60 inches (152 cm)"), ("Additional Heights", "36, 48, 72 inches"), ("Headform", "Humanoid (rigid)"), ("Anvils", "Flat, hemi, edge"), ("Temps", "Ambient, hot, cold"), ], [ ("Sensors", "Triaxial accelerometer"), ("Sample Rate", "≥ 10,000 Hz"), ("Filter", "CFC 1000"), ], [ ("SI Limit", "< 1200", "All conditions"), ("Drop Sequence", "Front, side, rear, top", "60 inch"), ("Conditioning", "Multiple impacts", "Per protocol"), ], "assets/hybrid_iii_family.jpg", "Pre-1973: 32 deaths/yr. Post-standard: ~3/yr (90% reduction).", ) # Football Linear Impactor add_test_slide( "NOCSAE Football - Linear Impactor", "NOCSAE", "2016", "Ram Impact Test", "Evaluates oblique impacts causing rotational acceleration - linked to concussions. Supplements drop tests to address rotational brain injury.", [ ("Impactor", "Pneumatic ram"), ("Ram Mass", "~13 kg"), ("Impact Speed", "5.5-9.3 m/s"), ("Locations", "Multiple angles"), ("Headform", "Hybrid III head/neck"), ], [ ("Linear Accel", "3-axis accelerometer"), ("Rotational Accel", "Angular rate sensors"), ("Rotational Velocity", "Calculated"), ], [ ("Peak Linear", "Brain injury risk", "Linear"), ("Peak Rotational", "Concussion risk", "Rotational"), ("Velocity", "Brain strain", "Rotational"), ], "assets/atd_family.png", "NFL/NFLPA uses combined data for helmet rankings.", ) # Lacrosse add_test_slide( "NOCSAE Lacrosse Helmet", "NOCSAE", "ND041", "Drop + Projectile", "Protects against collision and ball impacts. Combines impact attenuation with projectile protection from high-speed lacrosse ball.", [ ("Drop Heights", "60, 48, 36 inches"), ("Headform", "Humanoid"), ("Anvils", "Flat, hemispherical"), ("Ball Speed", "45 mph (20 m/s)"), ("Ball Targets", "Faceguard and shell"), ], [ ("Sensors", "Triaxial accelerometer"), ("Sample Rate", "≥ 8,000 Hz"), ("Filter", "CFC 1000"), ], [ ("Drop SI", "< 1200", "Impact attenuation"), ("Ball SI", "< 1200", "Projectile"), ("Penetration", "None allowed", "Faceguard"), ], "assets/atd_family.png", ) # Hockey add_test_slide( "Ice Hockey Helmet", "HECC/CSA/ASTM", "Multiple", "Drop + Puck", "Protects against falls, collisions, and puck impacts (100+ mph). Must allow facemask integration. Multiple international standards.", [ ("Drop Heights", "1.5m, 2.0m"), ("Headform", "ISO/CSA specified"), ("Anvils", "Flat, hemi, edge"), ("Puck Mass", "170g (official)"), ("Puck Speed", "25-40 m/s"), ], [ ("Standards", "CSA, ASTM, HECC, CE"), ("Sensors", "Triaxial accelerometer"), ("Primary", "Peak g measurement"), ], [ ("Drop Flat", "Peak < 275g", "CSA"), ("Drop Hemi", "Peak < 275g", "CSA"), ("Puck Impact", "No fracture", "Shell"), ("Facemask", "No penetration", "Puck"), ], "assets/atd_family.png", ) # Motorcycle add_test_slide( "FMVSS 218 - Motorcycle Helmet", "NHTSA", "1968", "Drop + Penetration", "Minimum requirements for motorcycle helmets (DOT certification). Every street-legal helmet must pass. Snell and ECE exceed DOT.", [ ("Drop Height", "1.83m (flat), 1.38m (hemi)"), ("Anvils", "Flat, hemispherical"), ("Headforms", "ISO (multiple sizes)"), ("Conditioning", "Ambient, hot, cold, wet"), ("Penetration", "3kg cone from 3m"), ], [ ("Sensors", "Accelerometer"), ("Primary", "Peak acceleration"), ("Penetration", "Contact detection"), ], [ ("Peak Accel", "≤ 400g", "DOT"), ("Penetration", "No headform contact", "Pass/Fail"), ("Snell M2020", "275g (voluntary)", "Stricter"), ("ECE 22.06", "Includes rotational", "Europe"), ], "assets/john_stapp_portrait.jpg", "DOT is minimum; Snell and ECE exceed requirements.", ) # ============================================================================ # Save the presentation # ============================================================================ output_file = "Test_Modes_Reference.pptx" prs.save(output_file) print(f"Presentation created: {output_file}") print(f"Total slides: {len(prs.slides)}")