1411 lines
55 KiB
Python
1411 lines
55 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
"""
|
||
|
|
Create PowerPoint presentation: "Data Saves Lives"
|
||
|
|
The Story of Safety Testing: How Regulatory Agencies Emerged from Tragedy
|
||
|
|
A comprehensive presentation for DTS
|
||
|
|
|
||
|
|
Structure:
|
||
|
|
- Part 1: The Dark Ages & Pioneers (Pre-1966)
|
||
|
|
- Part 2: The Birth of Regulation (1966-1980)
|
||
|
|
- Part 3: Test Modes - Each with Origins, Technical Details, DTS Connection
|
||
|
|
- Part 4: The Active Safety Revolution
|
||
|
|
- Part 5: The Future & DTS Role
|
||
|
|
"""
|
||
|
|
|
||
|
|
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
|
||
|
|
|
||
|
|
# Create presentation with widescreen dimensions
|
||
|
|
prs = Presentation()
|
||
|
|
prs.slide_width = Inches(13.333)
|
||
|
|
prs.slide_height = Inches(7.5)
|
||
|
|
|
||
|
|
# Color scheme - DTS inspired
|
||
|
|
DARK_BLUE = RGBColor(0, 51, 102)
|
||
|
|
ACCENT_BLUE = RGBColor(0, 112, 192)
|
||
|
|
ACCENT_RED = RGBColor(192, 0, 0)
|
||
|
|
ACCENT_GREEN = RGBColor(0, 128, 0)
|
||
|
|
DARK_GRAY = RGBColor(64, 64, 64)
|
||
|
|
LIGHT_GRAY = RGBColor(200, 200, 200)
|
||
|
|
WHITE = RGBColor(255, 255, 255)
|
||
|
|
|
||
|
|
|
||
|
|
def add_title_slide(title, subtitle=""):
|
||
|
|
"""Add a title slide"""
|
||
|
|
slide_layout = prs.slide_layouts[6] # Blank
|
||
|
|
slide = prs.slides.add_slide(slide_layout)
|
||
|
|
|
||
|
|
# 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 = DARK_BLUE
|
||
|
|
p.alignment = PP_ALIGN.CENTER
|
||
|
|
|
||
|
|
# Subtitle
|
||
|
|
if subtitle:
|
||
|
|
sub_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(4.2), Inches(12.333), Inches(1.5)
|
||
|
|
)
|
||
|
|
tf = sub_box.text_frame
|
||
|
|
tf.word_wrap = True
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = subtitle
|
||
|
|
p.font.size = Pt(28)
|
||
|
|
p.font.color.rgb = DARK_GRAY
|
||
|
|
p.alignment = PP_ALIGN.CENTER
|
||
|
|
|
||
|
|
return slide
|
||
|
|
|
||
|
|
|
||
|
|
def add_section_slide(title, subtitle=""):
|
||
|
|
"""Add a section divider slide with colored bar"""
|
||
|
|
slide_layout = prs.slide_layouts[6] # Blank
|
||
|
|
slide = prs.slides.add_slide(slide_layout)
|
||
|
|
|
||
|
|
# Add colored background bar
|
||
|
|
shape = slide.shapes.add_shape(
|
||
|
|
MSO_SHAPE.RECTANGLE, Inches(0), Inches(2.8), Inches(13.333), Inches(2)
|
||
|
|
)
|
||
|
|
shape.fill.solid()
|
||
|
|
shape.fill.fore_color.rgb = DARK_BLUE
|
||
|
|
shape.line.fill.background()
|
||
|
|
|
||
|
|
# Title on bar
|
||
|
|
title_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(3), Inches(12.333), Inches(1.2)
|
||
|
|
)
|
||
|
|
tf = title_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = title
|
||
|
|
p.font.size = Pt(44)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = WHITE
|
||
|
|
p.alignment = PP_ALIGN.CENTER
|
||
|
|
|
||
|
|
# Subtitle below bar
|
||
|
|
if subtitle:
|
||
|
|
sub_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(5), Inches(12.333), Inches(0.8)
|
||
|
|
)
|
||
|
|
tf = sub_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = subtitle
|
||
|
|
p.font.size = Pt(24)
|
||
|
|
p.font.italic = True
|
||
|
|
p.font.color.rgb = DARK_GRAY
|
||
|
|
p.alignment = PP_ALIGN.CENTER
|
||
|
|
|
||
|
|
return slide
|
||
|
|
|
||
|
|
|
||
|
|
def add_content_slide(title, bullets, footnote=""):
|
||
|
|
"""Add a content slide with title and bullets"""
|
||
|
|
slide_layout = prs.slide_layouts[6] # Blank
|
||
|
|
slide = prs.slides.add_slide(slide_layout)
|
||
|
|
|
||
|
|
# Title
|
||
|
|
title_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(0.3), Inches(12.333), Inches(1)
|
||
|
|
)
|
||
|
|
tf = title_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = title
|
||
|
|
p.font.size = Pt(36)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = DARK_BLUE
|
||
|
|
|
||
|
|
# Underline
|
||
|
|
line = slide.shapes.add_shape(
|
||
|
|
MSO_SHAPE.RECTANGLE, Inches(0.5), Inches(1.1), Inches(12.333), Inches(0.03)
|
||
|
|
)
|
||
|
|
line.fill.solid()
|
||
|
|
line.fill.fore_color.rgb = ACCENT_BLUE
|
||
|
|
line.line.fill.background()
|
||
|
|
|
||
|
|
# Bullets
|
||
|
|
body_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(1.4), Inches(12.333), Inches(5.5)
|
||
|
|
)
|
||
|
|
tf = body_box.text_frame
|
||
|
|
tf.word_wrap = True
|
||
|
|
|
||
|
|
for i, bullet in enumerate(bullets):
|
||
|
|
if i == 0:
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
else:
|
||
|
|
p = tf.add_paragraph()
|
||
|
|
|
||
|
|
# Handle sub-bullets (indented with -)
|
||
|
|
if bullet.startswith(" -"):
|
||
|
|
p.text = " " + bullet.strip().lstrip("-").strip()
|
||
|
|
p.font.size = Pt(20)
|
||
|
|
p.level = 1
|
||
|
|
else:
|
||
|
|
p.text = bullet.strip().lstrip("-").strip()
|
||
|
|
p.font.size = Pt(24)
|
||
|
|
p.level = 0
|
||
|
|
|
||
|
|
p.font.color.rgb = DARK_GRAY
|
||
|
|
p.space_after = Pt(10)
|
||
|
|
|
||
|
|
# Footnote
|
||
|
|
if footnote:
|
||
|
|
foot_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(6.8), Inches(12.333), Inches(0.5)
|
||
|
|
)
|
||
|
|
tf = foot_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = footnote
|
||
|
|
p.font.size = Pt(14)
|
||
|
|
p.font.italic = True
|
||
|
|
p.font.color.rgb = LIGHT_GRAY
|
||
|
|
|
||
|
|
return slide
|
||
|
|
|
||
|
|
|
||
|
|
def add_quote_slide(quote, attribution=""):
|
||
|
|
"""Add a quote slide"""
|
||
|
|
slide_layout = prs.slide_layouts[6] # Blank
|
||
|
|
slide = prs.slides.add_slide(slide_layout)
|
||
|
|
|
||
|
|
# Quote
|
||
|
|
quote_box = slide.shapes.add_textbox(
|
||
|
|
Inches(1), Inches(2), Inches(11.333), Inches(3)
|
||
|
|
)
|
||
|
|
tf = quote_box.text_frame
|
||
|
|
tf.word_wrap = True
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = f'"{quote}"'
|
||
|
|
p.font.size = Pt(32)
|
||
|
|
p.font.italic = True
|
||
|
|
p.font.color.rgb = DARK_BLUE
|
||
|
|
p.alignment = PP_ALIGN.CENTER
|
||
|
|
|
||
|
|
# Attribution
|
||
|
|
if attribution:
|
||
|
|
attr_box = slide.shapes.add_textbox(
|
||
|
|
Inches(1), Inches(5.2), Inches(11.333), Inches(0.8)
|
||
|
|
)
|
||
|
|
tf = attr_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = f"-- {attribution}"
|
||
|
|
p.font.size = Pt(24)
|
||
|
|
p.font.color.rgb = DARK_GRAY
|
||
|
|
p.alignment = PP_ALIGN.CENTER
|
||
|
|
|
||
|
|
return slide
|
||
|
|
|
||
|
|
|
||
|
|
def add_stat_slide(big_number, description, context=""):
|
||
|
|
"""Add a big statistic slide"""
|
||
|
|
slide_layout = prs.slide_layouts[6] # Blank
|
||
|
|
slide = prs.slides.add_slide(slide_layout)
|
||
|
|
|
||
|
|
# Big number
|
||
|
|
num_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(1.5), Inches(12.333), Inches(2.5)
|
||
|
|
)
|
||
|
|
tf = num_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = big_number
|
||
|
|
p.font.size = Pt(120)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = ACCENT_BLUE
|
||
|
|
p.alignment = PP_ALIGN.CENTER
|
||
|
|
|
||
|
|
# Description
|
||
|
|
desc_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(4), Inches(12.333), Inches(1)
|
||
|
|
)
|
||
|
|
tf = desc_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = description
|
||
|
|
p.font.size = Pt(36)
|
||
|
|
p.font.color.rgb = DARK_BLUE
|
||
|
|
p.alignment = PP_ALIGN.CENTER
|
||
|
|
|
||
|
|
# Context
|
||
|
|
if context:
|
||
|
|
ctx_box = slide.shapes.add_textbox(
|
||
|
|
Inches(1), Inches(5.2), Inches(11.333), Inches(1.5)
|
||
|
|
)
|
||
|
|
tf = ctx_box.text_frame
|
||
|
|
tf.word_wrap = True
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = context
|
||
|
|
p.font.size = Pt(20)
|
||
|
|
p.font.color.rgb = DARK_GRAY
|
||
|
|
p.alignment = PP_ALIGN.CENTER
|
||
|
|
|
||
|
|
return slide
|
||
|
|
|
||
|
|
|
||
|
|
def add_two_column_slide(title, left_title, left_bullets, right_title, right_bullets):
|
||
|
|
"""Add a two-column comparison slide"""
|
||
|
|
slide_layout = prs.slide_layouts[6] # Blank
|
||
|
|
slide = prs.slides.add_slide(slide_layout)
|
||
|
|
|
||
|
|
# Title
|
||
|
|
title_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(0.3), Inches(12.333), Inches(1)
|
||
|
|
)
|
||
|
|
tf = title_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = title
|
||
|
|
p.font.size = Pt(36)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = DARK_BLUE
|
||
|
|
|
||
|
|
# Underline
|
||
|
|
line = slide.shapes.add_shape(
|
||
|
|
MSO_SHAPE.RECTANGLE, Inches(0.5), Inches(1.1), Inches(12.333), Inches(0.03)
|
||
|
|
)
|
||
|
|
line.fill.solid()
|
||
|
|
line.fill.fore_color.rgb = ACCENT_BLUE
|
||
|
|
line.line.fill.background()
|
||
|
|
|
||
|
|
# Left column title
|
||
|
|
left_title_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(1.4), Inches(5.9), Inches(0.6)
|
||
|
|
)
|
||
|
|
tf = left_title_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = left_title
|
||
|
|
p.font.size = Pt(24)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = ACCENT_BLUE
|
||
|
|
|
||
|
|
# Left column bullets
|
||
|
|
left_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(2), Inches(5.9), Inches(4.5)
|
||
|
|
)
|
||
|
|
tf = left_box.text_frame
|
||
|
|
tf.word_wrap = True
|
||
|
|
for i, bullet in enumerate(left_bullets):
|
||
|
|
if i == 0:
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
else:
|
||
|
|
p = tf.add_paragraph()
|
||
|
|
p.text = bullet
|
||
|
|
p.font.size = Pt(18)
|
||
|
|
p.font.color.rgb = DARK_GRAY
|
||
|
|
p.space_after = Pt(6)
|
||
|
|
|
||
|
|
# Right column title
|
||
|
|
right_title_box = slide.shapes.add_textbox(
|
||
|
|
Inches(6.9), Inches(1.4), Inches(5.9), Inches(0.6)
|
||
|
|
)
|
||
|
|
tf = right_title_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = right_title
|
||
|
|
p.font.size = Pt(24)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = ACCENT_BLUE
|
||
|
|
|
||
|
|
# Right column bullets
|
||
|
|
right_box = slide.shapes.add_textbox(
|
||
|
|
Inches(6.9), Inches(2), Inches(5.9), Inches(4.5)
|
||
|
|
)
|
||
|
|
tf = right_box.text_frame
|
||
|
|
tf.word_wrap = True
|
||
|
|
for i, bullet in enumerate(right_bullets):
|
||
|
|
if i == 0:
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
else:
|
||
|
|
p = tf.add_paragraph()
|
||
|
|
p.text = bullet
|
||
|
|
p.font.size = Pt(18)
|
||
|
|
p.font.color.rgb = DARK_GRAY
|
||
|
|
p.space_after = Pt(6)
|
||
|
|
|
||
|
|
return slide
|
||
|
|
|
||
|
|
|
||
|
|
def add_timeline_slide(title, events):
|
||
|
|
"""Add a timeline slide with year-event pairs"""
|
||
|
|
slide_layout = prs.slide_layouts[6] # Blank
|
||
|
|
slide = prs.slides.add_slide(slide_layout)
|
||
|
|
|
||
|
|
# Title
|
||
|
|
title_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(0.3), Inches(12.333), Inches(1)
|
||
|
|
)
|
||
|
|
tf = title_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = title
|
||
|
|
p.font.size = Pt(36)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = DARK_BLUE
|
||
|
|
|
||
|
|
# Events
|
||
|
|
y_pos = 1.3
|
||
|
|
for year, event in events:
|
||
|
|
# Year
|
||
|
|
year_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(y_pos), Inches(1.5), Inches(0.5)
|
||
|
|
)
|
||
|
|
tf = year_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = str(year)
|
||
|
|
p.font.size = Pt(20)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = ACCENT_BLUE
|
||
|
|
|
||
|
|
# Event
|
||
|
|
event_box = slide.shapes.add_textbox(
|
||
|
|
Inches(2.2), Inches(y_pos), Inches(10.5), Inches(0.5)
|
||
|
|
)
|
||
|
|
tf = event_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = event
|
||
|
|
p.font.size = Pt(18)
|
||
|
|
p.font.color.rgb = DARK_GRAY
|
||
|
|
|
||
|
|
y_pos += 0.55
|
||
|
|
|
||
|
|
return slide
|
||
|
|
|
||
|
|
|
||
|
|
def add_test_mode_slide(test_name, year, org, purpose, channels, dts_connection):
|
||
|
|
"""Add a test mode summary slide"""
|
||
|
|
slide_layout = prs.slide_layouts[6] # Blank
|
||
|
|
slide = prs.slides.add_slide(slide_layout)
|
||
|
|
|
||
|
|
# Title with year and org
|
||
|
|
title_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(0.3), Inches(12.333), Inches(1)
|
||
|
|
)
|
||
|
|
tf = title_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = f"{test_name}"
|
||
|
|
p.font.size = Pt(32)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = DARK_BLUE
|
||
|
|
|
||
|
|
# Subtitle with org and year
|
||
|
|
sub_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(0.9), Inches(12.333), Inches(0.5)
|
||
|
|
)
|
||
|
|
tf = sub_box.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = f"{org} | Introduced: {year}"
|
||
|
|
p.font.size = Pt(18)
|
||
|
|
p.font.color.rgb = ACCENT_BLUE
|
||
|
|
|
||
|
|
# Underline
|
||
|
|
line = slide.shapes.add_shape(
|
||
|
|
MSO_SHAPE.RECTANGLE, Inches(0.5), Inches(1.3), Inches(12.333), Inches(0.03)
|
||
|
|
)
|
||
|
|
line.fill.solid()
|
||
|
|
line.fill.fore_color.rgb = ACCENT_BLUE
|
||
|
|
line.line.fill.background()
|
||
|
|
|
||
|
|
# Purpose section
|
||
|
|
purpose_title = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(1.5), Inches(6), Inches(0.4)
|
||
|
|
)
|
||
|
|
tf = purpose_title.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = "PURPOSE"
|
||
|
|
p.font.size = Pt(16)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = DARK_BLUE
|
||
|
|
|
||
|
|
purpose_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.5), Inches(1.9), Inches(6), Inches(1.8)
|
||
|
|
)
|
||
|
|
tf = purpose_box.text_frame
|
||
|
|
tf.word_wrap = True
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = purpose
|
||
|
|
p.font.size = Pt(16)
|
||
|
|
p.font.color.rgb = DARK_GRAY
|
||
|
|
|
||
|
|
# Channels section
|
||
|
|
channels_title = slide.shapes.add_textbox(
|
||
|
|
Inches(6.9), Inches(1.5), Inches(6), Inches(0.4)
|
||
|
|
)
|
||
|
|
tf = channels_title.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = "KEY MEASUREMENTS"
|
||
|
|
p.font.size = Pt(16)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = DARK_BLUE
|
||
|
|
|
||
|
|
channels_box = slide.shapes.add_textbox(
|
||
|
|
Inches(6.9), Inches(1.9), Inches(6), Inches(1.8)
|
||
|
|
)
|
||
|
|
tf = channels_box.text_frame
|
||
|
|
tf.word_wrap = True
|
||
|
|
for i, channel in enumerate(channels):
|
||
|
|
if i == 0:
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
else:
|
||
|
|
p = tf.add_paragraph()
|
||
|
|
p.text = channel
|
||
|
|
p.font.size = Pt(14)
|
||
|
|
p.font.color.rgb = DARK_GRAY
|
||
|
|
|
||
|
|
# DTS Connection section - highlighted box
|
||
|
|
dts_shape = slide.shapes.add_shape(
|
||
|
|
MSO_SHAPE.ROUNDED_RECTANGLE,
|
||
|
|
Inches(0.5),
|
||
|
|
Inches(4.2),
|
||
|
|
Inches(12.333),
|
||
|
|
Inches(2.3),
|
||
|
|
)
|
||
|
|
dts_shape.fill.solid()
|
||
|
|
dts_shape.fill.fore_color.rgb = RGBColor(240, 248, 255) # Light blue
|
||
|
|
dts_shape.line.color.rgb = ACCENT_BLUE
|
||
|
|
|
||
|
|
dts_title = slide.shapes.add_textbox(
|
||
|
|
Inches(0.7), Inches(4.4), Inches(12), Inches(0.4)
|
||
|
|
)
|
||
|
|
tf = dts_title.text_frame
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = "DTS CONNECTION"
|
||
|
|
p.font.size = Pt(16)
|
||
|
|
p.font.bold = True
|
||
|
|
p.font.color.rgb = DARK_BLUE
|
||
|
|
|
||
|
|
dts_box = slide.shapes.add_textbox(
|
||
|
|
Inches(0.7), Inches(4.8), Inches(12), Inches(1.5)
|
||
|
|
)
|
||
|
|
tf = dts_box.text_frame
|
||
|
|
tf.word_wrap = True
|
||
|
|
p = tf.paragraphs[0]
|
||
|
|
p.text = dts_connection
|
||
|
|
p.font.size = Pt(16)
|
||
|
|
p.font.color.rgb = DARK_GRAY
|
||
|
|
|
||
|
|
return slide
|
||
|
|
|
||
|
|
|
||
|
|
# ============================================================
|
||
|
|
# BUILD THE PRESENTATION
|
||
|
|
# ============================================================
|
||
|
|
|
||
|
|
# TITLE SLIDE
|
||
|
|
add_title_slide(
|
||
|
|
"Data Saves Lives",
|
||
|
|
"The Story of Safety Testing: How Tragedy, Science, and Data Created the Modern Safety Ecosystem",
|
||
|
|
)
|
||
|
|
|
||
|
|
# OPENING HOOK
|
||
|
|
add_stat_slide(
|
||
|
|
"77%",
|
||
|
|
"Reduction in traffic fatality rate since 1970",
|
||
|
|
"1970: 4.74 deaths per 100M miles | Today: 1.10 deaths per 100M miles\nIf we still had 1970 rates with today's driving: 153,000 deaths per year instead of 36,000",
|
||
|
|
)
|
||
|
|
|
||
|
|
# THE PATTERN
|
||
|
|
add_content_slide(
|
||
|
|
"The Pattern: Every Test Has a Story",
|
||
|
|
[
|
||
|
|
"Every crash test exists because people were dying in a specific way",
|
||
|
|
"The cycle repeats throughout history:",
|
||
|
|
" - TRAGEDY: People die in ways we don't understand",
|
||
|
|
" - PIONEERS: Researchers ask 'why?' and investigate",
|
||
|
|
" - DATA: Testing reveals the mechanism of injury",
|
||
|
|
" - INSTITUTION: Regulatory body is formed or empowered",
|
||
|
|
" - STANDARD: A test is created to measure the problem",
|
||
|
|
" - ENGINEERING: Manufacturers design solutions",
|
||
|
|
" - LIVES SAVED: That specific death mode decreases",
|
||
|
|
"Then a NEW gap emerges... and the cycle continues",
|
||
|
|
],
|
||
|
|
"This presentation traces that cycle from 1899 to today",
|
||
|
|
)
|
||
|
|
|
||
|
|
# ============================================================
|
||
|
|
# PART 1: THE DARK AGES
|
||
|
|
# ============================================================
|
||
|
|
add_section_slide("Part 1: The Dark Ages", "1899-1965: When No One Was Watching")
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"Before Safety: The Philosophy of Blame",
|
||
|
|
[
|
||
|
|
"1899: First US traffic death - Henry Bliss, hit by electric taxi in NYC",
|
||
|
|
"1921: 13,253 deaths with 55 billion VMT (24.09 deaths per 100M miles)",
|
||
|
|
"1937: 37,819 deaths - 14x today's fatality RATE",
|
||
|
|
"Industry position: 'Crashes are caused by bad drivers, not bad cars'",
|
||
|
|
"The Three E's of traffic safety:",
|
||
|
|
" - Education (teach drivers to be careful)",
|
||
|
|
" - Enforcement (punish bad drivers)",
|
||
|
|
" - Engineering (of ROADS, not vehicles)",
|
||
|
|
"Vehicle design was NOT considered a safety factor",
|
||
|
|
"No federal oversight. No standards. No data.",
|
||
|
|
],
|
||
|
|
"The car was fine. You were the problem.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"What Cars Were Like",
|
||
|
|
[
|
||
|
|
"No seatbelts (optional accessory, rarely ordered)",
|
||
|
|
"Rigid steering columns - metal shafts pointed at driver's chest",
|
||
|
|
" - By 1964: over 1 MILLION cumulative steering column deaths",
|
||
|
|
"Solid steel dashboards with chrome knobs and protrusions",
|
||
|
|
"No crumple zones - rigid structures transferred all force to occupants",
|
||
|
|
"No head restraints - whiplash was expected",
|
||
|
|
"Windshields of plate glass - shattered into deadly shards",
|
||
|
|
"Fuel tanks placed wherever convenient - often behind rear bumper",
|
||
|
|
"Door latches that popped open on impact - ejecting occupants",
|
||
|
|
],
|
||
|
|
"If you crashed, the car stayed intact. You didn't.",
|
||
|
|
)
|
||
|
|
|
||
|
|
# THE PIONEERS
|
||
|
|
add_section_slide("The Pioneers", "The individuals who changed everything")
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"Hugh DeHaven: The Father of Crashworthiness",
|
||
|
|
[
|
||
|
|
"1917: Survives mid-air collision as WWI pilot trainee - fell 500 feet",
|
||
|
|
" - Other pilot and his observer died. DeHaven walked away.",
|
||
|
|
" - Spent the rest of his life asking: 'Why did I survive?'",
|
||
|
|
"1942: Founded Cornell Crash Injury Research Project",
|
||
|
|
"Key insight: The 'Second Collision'",
|
||
|
|
" - First collision: car hits object",
|
||
|
|
" - Second collision: occupant hits interior",
|
||
|
|
" - The second collision is what kills people",
|
||
|
|
"Studied survivors of falls from great heights",
|
||
|
|
" - People survived 10-story falls if they landed on awnings",
|
||
|
|
" - Conclusion: 'Package the passenger' - distribute forces",
|
||
|
|
"His research led to padded dashboards, collapsible columns, door locks",
|
||
|
|
],
|
||
|
|
"Quote: 'The human body can tolerate far greater forces than we assumed - if distributed properly.'",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"John Stapp: The Fastest Man on Earth",
|
||
|
|
[
|
||
|
|
"USAF Flight Surgeon, Physician, Biophysicist (1910-1999)",
|
||
|
|
"1947: Began rocket sled deceleration experiments at Edwards AFB",
|
||
|
|
"Problem: No one knew human tolerance limits for rapid deceleration",
|
||
|
|
"Solution: Stapp rode the sled himself - 29 TIMES",
|
||
|
|
"December 10, 1954: The final ride",
|
||
|
|
" - Reached 632 mph, stopped in 1.4 seconds",
|
||
|
|
" - 46.2 g deceleration - still a record for voluntary human exposure",
|
||
|
|
" - Injuries: broken ribs, broken wrists, temporary blindness, lost fillings",
|
||
|
|
"Prior belief: Humans couldn't survive beyond 18g",
|
||
|
|
"Stapp proved: Proper restraints + force distribution = survival",
|
||
|
|
"His research led to aircraft seatbelts, ejection seats, auto restraints",
|
||
|
|
],
|
||
|
|
"Fun fact: 'Murphy's Law' originated on Stapp's project",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_quote_slide(
|
||
|
|
"I felt a sensation in the eyes, somewhat like the extraction of a molar without anesthetic.",
|
||
|
|
"John Stapp, describing 46.2g deceleration",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"The Wayne State Cadaver Pioneers",
|
||
|
|
[
|
||
|
|
"1930s-1960s: Wayne State University, Detroit",
|
||
|
|
"Problem: How do we measure human injury tolerance without killing people?",
|
||
|
|
"Solution: Use cadavers - the recently deceased who donated bodies to science",
|
||
|
|
"Research methods:",
|
||
|
|
" - Ball bearings dropped on skulls (fracture thresholds)",
|
||
|
|
" - Bodies dropped from heights onto steel plates",
|
||
|
|
" - Crude accelerometers attached to measure forces",
|
||
|
|
"Professor Lawrence Patrick subjected HIMSELF to impacts",
|
||
|
|
"Created the Wayne State Tolerance Curve - foundation of HIC (Head Injury Criterion)",
|
||
|
|
"Albert King's 1995 calculation: Each cadaver saves 276 lives per year",
|
||
|
|
" - 61 from seatbelt improvements",
|
||
|
|
" - 147 from airbag design",
|
||
|
|
" - 68 from windshield safety",
|
||
|
|
],
|
||
|
|
"Ethically controversial. Scientifically irreplaceable. Lives saved: hundreds of thousands.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"Nils Bohlin: The Seatbelt that Saved Millions",
|
||
|
|
[
|
||
|
|
"Swedish engineer (1920-2002), previously designed ejection seats at Saab",
|
||
|
|
"1958: Hired by Volvo as safety engineer",
|
||
|
|
"1959: Invented the modern 3-point seatbelt",
|
||
|
|
" - Previous seatbelts were 2-point lap belts - caused internal injuries",
|
||
|
|
" - The 3-point V-shape distributes force across chest AND pelvis",
|
||
|
|
"The remarkable decision:",
|
||
|
|
" - Volvo patented the design (US Patent 3,043,625)",
|
||
|
|
" - Then made it available to ALL automakers for FREE",
|
||
|
|
" - 'Safety should not be proprietary'",
|
||
|
|
"Bohlin's study of 28,000 crashes:",
|
||
|
|
" - No belted occupant died below 60 mph if compartment stayed intact",
|
||
|
|
"NHTSA estimate: Seatbelts save ~15,000 lives per year in the US alone",
|
||
|
|
],
|
||
|
|
"One invention. One decision to share it freely. Millions of lives saved.",
|
||
|
|
)
|
||
|
|
|
||
|
|
# NADER AND THE AWAKENING
|
||
|
|
add_content_slide(
|
||
|
|
"Ralph Nader: Unsafe at Any Speed (1965)",
|
||
|
|
[
|
||
|
|
"November 30, 1965: A young lawyer publishes a book",
|
||
|
|
"Chapter 1: 'The Sporty Corvair' - exposed dangerous swing-axle suspension",
|
||
|
|
"Central thesis: Automakers prioritized STYLE over SAFETY",
|
||
|
|
" - $700 per car spent on annual styling changes",
|
||
|
|
" - $0.23 per car spent on safety",
|
||
|
|
"The GM Response:",
|
||
|
|
" - Hired private investigators to follow Nader",
|
||
|
|
" - Tapped his phones, tried to entrap him",
|
||
|
|
" - GM President forced to apologize before Congress",
|
||
|
|
" - Nader sued and won $425,000",
|
||
|
|
"The impact: Public awakening to automotive safety as a design problem",
|
||
|
|
],
|
||
|
|
"The book that launched federal regulation",
|
||
|
|
)
|
||
|
|
|
||
|
|
# ============================================================
|
||
|
|
# PART 2: BIRTH OF REGULATION
|
||
|
|
# ============================================================
|
||
|
|
add_section_slide("Part 2: The Birth of Regulation", "1966-1980: Institutions Emerge")
|
||
|
|
|
||
|
|
add_timeline_slide(
|
||
|
|
"The Regulatory Revolution",
|
||
|
|
[
|
||
|
|
(
|
||
|
|
"1966",
|
||
|
|
"National Traffic and Motor Vehicle Safety Act signed by President Johnson",
|
||
|
|
),
|
||
|
|
("1966", "US Department of Transportation created"),
|
||
|
|
("1966", "William Haddon appointed first NHTSA Administrator"),
|
||
|
|
("1967", "First 20 FMVSS standards issued"),
|
||
|
|
("1968", "FMVSS 208 takes effect - seatbelts required"),
|
||
|
|
("1968", "36 football fatalities - leads to NOCSAE founding (1969)"),
|
||
|
|
(
|
||
|
|
"1969",
|
||
|
|
"William Haddon becomes IIHS President - transforms into testing organization",
|
||
|
|
),
|
||
|
|
("1970", "NHTSA established as independent agency"),
|
||
|
|
("1976", "Hybrid III dummy introduced - still the gold standard today"),
|
||
|
|
("1979", "NHTSA NCAP launched - first consumer crash test ratings"),
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"William Haddon Jr.: Father of Injury Epidemiology",
|
||
|
|
[
|
||
|
|
"First NHTSA Administrator (1966-1969), then IIHS President (1969-1985)",
|
||
|
|
"Revolutionary insight: Crashes are PUBLIC HEALTH problems, not moral failures",
|
||
|
|
"Created the 'Haddon Matrix' - still used today:",
|
||
|
|
" - Pre-event factors (prevent crash)",
|
||
|
|
" - Event factors (reduce injury severity)",
|
||
|
|
" - Post-event factors (improve survival after crash)",
|
||
|
|
"Philosophy: Design systems assuming humans WILL make mistakes",
|
||
|
|
" - Don't blame the driver - engineer the solution",
|
||
|
|
"At IIHS: Transformed from insurance lobbying to TESTING organization",
|
||
|
|
"Pushed for standards, published data, held manufacturers accountable",
|
||
|
|
"Died 1985 at age 58 - but his framework shapes safety policy worldwide",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_two_column_slide(
|
||
|
|
"The Safety Ecosystem Emerges",
|
||
|
|
"Government/Regulatory",
|
||
|
|
[
|
||
|
|
"NHTSA (1970) - Federal Motor Vehicle Safety Standards",
|
||
|
|
" - Minimum requirements - pass/fail",
|
||
|
|
" - Mandatory compliance",
|
||
|
|
" - 70+ FMVSS standards today",
|
||
|
|
"",
|
||
|
|
"Transport Canada",
|
||
|
|
"UN/ECE (Europe)",
|
||
|
|
"JNCAP, KNCAP, ANCAP, etc.",
|
||
|
|
],
|
||
|
|
"Consumer Testing (Independent)",
|
||
|
|
[
|
||
|
|
"IIHS (1959, testing from 1969)",
|
||
|
|
" - Insurance-funded",
|
||
|
|
" - Tests ABOVE minimum standards",
|
||
|
|
" - Star/letter ratings create market pressure",
|
||
|
|
"",
|
||
|
|
"Euro NCAP (1997)",
|
||
|
|
"Global NCAP programs (2000s-present)",
|
||
|
|
"",
|
||
|
|
"Key: Competition for ratings drives innovation",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"IIHS: Where Insurance Meets Safety",
|
||
|
|
[
|
||
|
|
"Founded 1959 by insurance industry - they PAY crash claims",
|
||
|
|
"Business case: Fewer crashes = lower payouts = higher profits",
|
||
|
|
"1969: Haddon transforms IIHS into testing organization",
|
||
|
|
"Key innovations:",
|
||
|
|
" - 1995: Moderate Overlap frontal test (40% offset)",
|
||
|
|
" - 2003: Side Impact test with small female dummy",
|
||
|
|
" - 2009: Roof strength ratings",
|
||
|
|
" - 2012: Small Overlap test (25% offset) - shocked the industry",
|
||
|
|
" - 2013: Front Crash Prevention (AEB) testing",
|
||
|
|
" - 2021: Updated side test - heavier, taller barrier",
|
||
|
|
"IIHS tests are often MORE demanding than NHTSA requirements",
|
||
|
|
"Manufacturers compete for 'Top Safety Pick' - market pressure works",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"NOCSAE: Sports Safety After Tragedy",
|
||
|
|
[
|
||
|
|
"1968: 36 football players died - worst year on record",
|
||
|
|
" - Most from head and neck injuries",
|
||
|
|
" - No standards for helmets - manufacturers made their own claims",
|
||
|
|
"1969: NOCSAE founded (National Operating Committee on Standards for Athletic Equipment)",
|
||
|
|
"1973: First football helmet certification standard",
|
||
|
|
" - Drop tower test: helmet on headform dropped onto anvil",
|
||
|
|
" - Severity Index (SI) must be below 1200",
|
||
|
|
"Results:",
|
||
|
|
" - 1960s: 26 deaths/year",
|
||
|
|
" - 1970s: 15 deaths/year (standards take effect)",
|
||
|
|
" - 2010s: 3 deaths/year",
|
||
|
|
"90% reduction in football fatalities from better helmet standards",
|
||
|
|
"Same basic physics as automotive: protect the brain from deceleration",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"Euro NCAP: Forcing Safety in Europe (1997)",
|
||
|
|
[
|
||
|
|
"European governments struggled to mandate safety improvements",
|
||
|
|
"Solution: Consumer information creates market pressure",
|
||
|
|
"1997: First Euro NCAP ratings published",
|
||
|
|
"Immediate impact: Rover 100 receives 1 star (out of 4)",
|
||
|
|
" - Rover pulls the car from production within MONTHS",
|
||
|
|
" - Proved consumer ratings could kill unsafe products",
|
||
|
|
"Euro NCAP has consistently pushed ahead of regulation:",
|
||
|
|
" - Pedestrian protection testing (1997)",
|
||
|
|
" - AEB requirement for 5-star (2014)",
|
||
|
|
" - Driver monitoring requirement (2024)",
|
||
|
|
" - Night pedestrian testing (2024)",
|
||
|
|
"The model: Make safety a COMPETITIVE advantage, not just compliance",
|
||
|
|
],
|
||
|
|
"Euro NCAP tests things the US still doesn't require.",
|
||
|
|
)
|
||
|
|
|
||
|
|
# ============================================================
|
||
|
|
# PART 3: THE TEST MODES
|
||
|
|
# ============================================================
|
||
|
|
add_section_slide(
|
||
|
|
"Part 3: Test Modes", "Each test exists because people were dying a specific way"
|
||
|
|
)
|
||
|
|
|
||
|
|
# FRONTAL IMPACT
|
||
|
|
add_section_slide("Frontal Impact Testing", "Where it all began")
|
||
|
|
|
||
|
|
add_test_mode_slide(
|
||
|
|
"FMVSS 208: Occupant Crash Protection",
|
||
|
|
"1968",
|
||
|
|
"NHTSA",
|
||
|
|
"The foundational standard for frontal crash protection. Initially required only seatbelt anchorages. Today includes 30 mph full frontal barrier test, driver and passenger airbag requirements, and advanced occupant sensing. This single standard drove development of seatbelt systems, frontal airbags, and all advanced restraint systems.",
|
||
|
|
[
|
||
|
|
"Head acceleration (HIC15 < 700)",
|
||
|
|
"Chest acceleration (3ms clip < 60g)",
|
||
|
|
"Chest deflection (< 63mm for 50th male)",
|
||
|
|
"Femur load (< 10 kN)",
|
||
|
|
"Neck injury criteria (Nij < 1.0)",
|
||
|
|
],
|
||
|
|
"DTS accelerometers in head, chest, pelvis. Load cells in neck, femur, tibia. Chest deflection potentiometers. These measurements define whether a vehicle passes. Every data point matters - one bad channel could mean repeating a $500K test.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_timeline_slide(
|
||
|
|
"The Airbag Wars: 28 Years of Fighting",
|
||
|
|
[
|
||
|
|
("1970", "NHTSA proposes airbag requirement"),
|
||
|
|
("1972", "GM offers airbags on Oldsmobiles - few buyers"),
|
||
|
|
("1976", "Industry lobbying delays requirement"),
|
||
|
|
("1977", "Joan Claybrook (NHTSA) pushes airbag mandate"),
|
||
|
|
("1981", "Reagan administration RESCINDS mandate"),
|
||
|
|
("1983", "Supreme Court rules rescission was arbitrary"),
|
||
|
|
("1984", "Compromise: 'automatic restraint' - airbag OR automatic belt"),
|
||
|
|
("1990", "First airbag fatality - child in front seat"),
|
||
|
|
("1997", "53 deaths from airbag deployment - peak year"),
|
||
|
|
("1998", "FINALLY: Frontal airbags mandatory after 28 years"),
|
||
|
|
("2000", "Advanced airbag rule - sensing, suppression for small occupants"),
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"The Depowering Crisis: When Airbags Killed",
|
||
|
|
[
|
||
|
|
"Early airbags designed for UNBELTED adult males",
|
||
|
|
"Deployed with maximum force in every crash - no modulation",
|
||
|
|
"Problem: What about children? What about small adults close to airbag?",
|
||
|
|
"1990: First airbag fatality - a child",
|
||
|
|
"1996-1997: 53 deaths from airbag deployment",
|
||
|
|
" - Victims: mostly children in front seats, small women sitting close",
|
||
|
|
"The data-driven fix (1998-2000):",
|
||
|
|
" - 'Depowered' airbags with lower inflation force",
|
||
|
|
" - Weight sensors in seats detect occupant size",
|
||
|
|
" - Suppression systems for small occupants",
|
||
|
|
" - 'Airbag off' indicators",
|
||
|
|
"Today: <10 airbag deaths/year vs. ~2,800 lives SAVED per year",
|
||
|
|
],
|
||
|
|
"The data showed the problem. Better data gave us the solution.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_test_mode_slide(
|
||
|
|
"NHTSA NCAP Frontal Test",
|
||
|
|
"1979",
|
||
|
|
"NHTSA",
|
||
|
|
"Consumer information program testing at 35 mph - HIGHER than the 30 mph FMVSS requirement. Generates 1-5 star ratings based on injury probability. Created competitive pressure for safety beyond minimum compliance. Industry opposed it as 'unfair' and 'confusing' - but '5-star safety rating' became marketing gold.",
|
||
|
|
[
|
||
|
|
"Same as FMVSS 208 but at higher speed",
|
||
|
|
"50th male + 5th female dummies",
|
||
|
|
"Star ratings based on injury risk curves",
|
||
|
|
"Frontal rating contributes to Overall Vehicle Score",
|
||
|
|
],
|
||
|
|
"Higher speed = higher forces = more demanding instrumentation requirements. DTS systems must capture data accurately at 35 mph impact severity. Reliability is critical - a single test costs $50-500K, and the published rating affects sales for years.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_test_mode_slide(
|
||
|
|
"IIHS Moderate Overlap Frontal",
|
||
|
|
"1995",
|
||
|
|
"IIHS",
|
||
|
|
"The problem: Only 25% of real frontal crashes are 'full frontal.' Most are offset - hitting at an angle or with one side of the vehicle. 40% of vehicle width strikes a deformable barrier at 40 mph. Tests structural engagement on ONE side only. Early results shocked the industry - some '5-star' NCAP vehicles performed poorly.",
|
||
|
|
[
|
||
|
|
"50th male Hybrid III in driver position",
|
||
|
|
"Structural rating (intrusion measurement)",
|
||
|
|
"Head/neck injury measures",
|
||
|
|
"Chest injury measures (deflection, acceleration)",
|
||
|
|
"Hip/leg injury measures",
|
||
|
|
"Restraint/kinematics evaluation",
|
||
|
|
],
|
||
|
|
"Offset crashes stress structure differently - forces concentrated on one side. DTS instrumentation captures whether the structure held and whether the restraint system kept the occupant in position. Intrusion measurements show if survival space was maintained.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_test_mode_slide(
|
||
|
|
"IIHS Small Overlap Frontal",
|
||
|
|
"2012",
|
||
|
|
"IIHS",
|
||
|
|
"Only 25% of vehicle width strikes a RIGID barrier at 40 mph. The small overlap bypasses main structural rails - forces go through wheel and suspension into footwell. When introduced, luxury vehicles that passed every other test failed miserably. BMW, Mercedes, Audi - all Marginal or Poor. Forced complete structural redesigns within 3 years.",
|
||
|
|
[
|
||
|
|
"50th male Hybrid III in driver position",
|
||
|
|
"Structural/safety cage integrity",
|
||
|
|
"Footwell intrusion (critical - wheel invasion)",
|
||
|
|
"Head trajectory and contact",
|
||
|
|
"Dummy kinematics (did occupant stay in position?)",
|
||
|
|
"2017: Passenger side added to prevent asymmetric 'gaming'",
|
||
|
|
],
|
||
|
|
"The most demanding frontal test. Small overlap creates unique loading - A-pillar rotation, wheel intrusion, occupant sliding toward gap. DTS systems capture head trajectory, torso kinematics, and contact forces. Every channel tells part of the story of whether the structure held and the restraints worked.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_two_column_slide(
|
||
|
|
"Small Overlap Test (2012): The Shock",
|
||
|
|
"What Failed",
|
||
|
|
[
|
||
|
|
"BMW 3 Series - MARGINAL",
|
||
|
|
"Mercedes C-Class - MARGINAL",
|
||
|
|
"Audi A4 - MARGINAL",
|
||
|
|
"Lexus IS - MARGINAL",
|
||
|
|
"Lexus ES - MARGINAL",
|
||
|
|
"Lincoln MKZ - POOR",
|
||
|
|
"Buick Regal - POOR",
|
||
|
|
"Volkswagen CC - POOR",
|
||
|
|
],
|
||
|
|
"What It Revealed",
|
||
|
|
[
|
||
|
|
"These were luxury vehicles that earned",
|
||
|
|
"top marks in every other test.",
|
||
|
|
"",
|
||
|
|
"The small overlap exposed a",
|
||
|
|
"critical structural blind spot.",
|
||
|
|
"",
|
||
|
|
"Within 5 years, most redesigns",
|
||
|
|
"earned GOOD ratings.",
|
||
|
|
"",
|
||
|
|
"The test drove real engineering change.",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
# SIDE IMPACT
|
||
|
|
add_section_slide("Side Impact Testing", "The door that wasn't a barrier")
|
||
|
|
|
||
|
|
add_stat_slide(
|
||
|
|
"25% / 30%",
|
||
|
|
"Side impacts: 25% of crashes but 30% of fatalities",
|
||
|
|
"More deadly PER CRASH than frontal because: minimal crush space, no crumple zone, direct loading to occupant's torso and head",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_test_mode_slide(
|
||
|
|
"FMVSS 214: Side Impact Protection",
|
||
|
|
"1973 (static) / 1990 (dynamic)",
|
||
|
|
"NHTSA",
|
||
|
|
"Originally a static door strength test (1973). Dynamic MDB test added 1990 - moving deformable barrier strikes stationary vehicle at 33.5 mph, 90 degrees. 2007: Pole test added (254mm pole at 20 mph) to drive side curtain airbag adoption for head protection. The pole test specifically targets head injury - tree strikes, utility poles.",
|
||
|
|
[
|
||
|
|
"ES-2re dummy (50th male side impact)",
|
||
|
|
"Thoracic Trauma Index (TTI)",
|
||
|
|
"Pelvis acceleration",
|
||
|
|
"Rib deflection (Viscous Criterion)",
|
||
|
|
"Head injury (HIC for pole test)",
|
||
|
|
"Lower spine acceleration",
|
||
|
|
],
|
||
|
|
"Side impact dummies are fundamentally different from frontal dummies - different rib structure, different instrumentation. DTS rib deflection sensors, accelerometers at multiple locations. The pole test head measurements drove universal adoption of side curtain airbags - now standard equipment.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_timeline_slide(
|
||
|
|
"The Side Airbag Revolution",
|
||
|
|
[
|
||
|
|
("Pre-1995", "Nothing between your ribs and the door in a side crash"),
|
||
|
|
("1995", "Volvo introduces first side torso airbag"),
|
||
|
|
("1998", "First side curtain airbags (head protection)"),
|
||
|
|
("2003", "IIHS side test launched - accelerates adoption"),
|
||
|
|
("2007", "FMVSS 214 pole test requires head protection"),
|
||
|
|
("2010", "Side curtain airbags standard on most vehicles"),
|
||
|
|
("2021", "IIHS updates side test: heavier, taller, faster barrier"),
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_test_mode_slide(
|
||
|
|
"IIHS Side Impact (Original 2003, Updated 2021)",
|
||
|
|
"2003 / 2021",
|
||
|
|
"IIHS",
|
||
|
|
"Original (2003): 31 mph MDB strike using SID-IIs (5th percentile female) dummy - focused on protecting smaller occupants. Updated (2021): 37 mph strike with heavier (4,200 lb vs 3,300 lb), taller barrier simulating modern SUVs and trucks. Many vehicles that earned 'Good' with old test dropped to lower ratings with new test.",
|
||
|
|
[
|
||
|
|
"SID-IIs (small female) in front row",
|
||
|
|
"Head injury criterion (HIC)",
|
||
|
|
"Thorax injury (chest deflection, TTI)",
|
||
|
|
"Pelvis injury",
|
||
|
|
"Structural intrusion measurement",
|
||
|
|
"Updated barrier: Taller profile matches SUV/truck front ends",
|
||
|
|
],
|
||
|
|
"The 2021 update reflects fleet changes - SUVs and trucks now dominate. Higher, heavier barrier creates different loading. DTS instrumentation must perform reliably at higher energy levels. The small female dummy choice protects the most vulnerable - not just the 'average' male.",
|
||
|
|
)
|
||
|
|
|
||
|
|
# ROLLOVER AND ROOF
|
||
|
|
add_section_slide("Rollover & Roof Strength", "When the sky falls")
|
||
|
|
|
||
|
|
add_stat_slide(
|
||
|
|
"3% / 30%",
|
||
|
|
"Rollovers: 3% of crashes but 30% of fatalities",
|
||
|
|
"Ejection in rollover is 77% fatal. SUVs had higher rollover rates due to high center of gravity. The mechanism is different - multiple impacts, occupant not restrained against a surface.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_test_mode_slide(
|
||
|
|
"FMVSS 216: Roof Crush Resistance",
|
||
|
|
"1973 / 2009 upgrade",
|
||
|
|
"NHTSA",
|
||
|
|
"Static test: metal plate pressed onto roof at windshield/roof junction at 5-degree angle. Original (1973): roof must withstand 1.5x vehicle weight. This standard was unchanged for 36 YEARS despite advocacy for stronger roofs. Upgraded (2009): doubled to 3x vehicle weight, both sides tested. IIHS pushed further: 4x required for 'Good' rating.",
|
||
|
|
[
|
||
|
|
"Force vs. displacement measurement",
|
||
|
|
"Peak force before 127mm (5 inches) of crush",
|
||
|
|
"Both left and right sides tested (post-2009)",
|
||
|
|
"DTS load cells measure applied force",
|
||
|
|
"Displacement sensors track crush",
|
||
|
|
],
|
||
|
|
"Unlike crash tests, roof strength is a static test - controlled force application. DTS load cells and displacement sensors capture the force-deflection curve. The test determines if occupants have survival space if the vehicle rolls. Many modern vehicles exceed 5-6x ratios.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"Electronic Stability Control: Preventing the Rollover",
|
||
|
|
[
|
||
|
|
"Roof strength protects IN rollovers",
|
||
|
|
"ESC PREVENTS rollovers from happening",
|
||
|
|
"How it works:",
|
||
|
|
" - Sensors detect loss of control (compares steering input to actual direction)",
|
||
|
|
" - System applies individual brakes to correct",
|
||
|
|
" - Acts in milliseconds - faster than human reaction",
|
||
|
|
"FMVSS 126: ESC required on all vehicles by 2012",
|
||
|
|
"Effectiveness: 75% reduction in fatal single-vehicle rollovers",
|
||
|
|
"Combined with side curtain airbags (prevent ejection):",
|
||
|
|
" - Rollover fatalities dropped dramatically",
|
||
|
|
"This is active safety + passive safety working together",
|
||
|
|
],
|
||
|
|
"You prevent the rollover with ESC. If one happens anyway, the strong roof and curtain airbags protect you.",
|
||
|
|
)
|
||
|
|
|
||
|
|
# REAR IMPACT
|
||
|
|
add_section_slide("Rear Impact & Whiplash", "The hidden epidemic")
|
||
|
|
|
||
|
|
add_test_mode_slide(
|
||
|
|
"IIHS Head Restraint / Whiplash Test",
|
||
|
|
"1995 (geometry) / 2004 (dynamic)",
|
||
|
|
"IIHS",
|
||
|
|
"Over 1 MILLION whiplash injuries per year in US. Most occur in low-speed rear impacts. Early head restraints were set too low and too far back - didn't engage head before neck stretched. Swedish research led to 'active' head restraints that move up/forward during crash. Dynamic test (2004) uses BioRID II dummy with highly articulated spine.",
|
||
|
|
[
|
||
|
|
"BioRID II dummy - 24 articulated vertebrae",
|
||
|
|
"Neck injury criteria (NIC)",
|
||
|
|
"Neck forces and moments",
|
||
|
|
"Relative head-to-torso movement",
|
||
|
|
"Seat strength (must not collapse backward)",
|
||
|
|
],
|
||
|
|
"Whiplash isn't fatal but has enormous economic impact - medical costs, lost work, chronic pain. BioRID II spine instrumentation captures the neck dynamics that cause injury. DTS sensors along the articulated spine measure relative motion. Active head restraints now standard because of this test.",
|
||
|
|
)
|
||
|
|
|
||
|
|
# FUEL SYSTEM INTEGRITY
|
||
|
|
add_section_slide("Fuel System Integrity", "The Ford Pinto scandal")
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"FMVSS 301: When Cost-Benefit Analysis Failed",
|
||
|
|
[
|
||
|
|
"Post-crash fires were killing people in survivable crashes",
|
||
|
|
"Ford Pinto (1971-1980): Rear fuel tank 6 inches from bumper",
|
||
|
|
" - Could rupture in rear impacts",
|
||
|
|
" - Bolts on differential could puncture tank",
|
||
|
|
"The infamous internal memo (1973):",
|
||
|
|
" - Fix cost: $11/car x 12.5 million vehicles = $137 million",
|
||
|
|
" - 'Acceptable' deaths: 180 x $200,000 = $36 million",
|
||
|
|
" - FORD CHOSE NOT TO FIX THE DESIGN",
|
||
|
|
"The reckoning:",
|
||
|
|
" - 1977: Mother Jones 'Pinto Madness' expose",
|
||
|
|
" - 1978: Recall of 1.5 million Pintos",
|
||
|
|
" - 1978: First criminal prosecution of an automaker",
|
||
|
|
"FMVSS 301 strengthened in direct response",
|
||
|
|
],
|
||
|
|
"Estimated 27-180 deaths from this single design decision",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_test_mode_slide(
|
||
|
|
"FMVSS 301: Fuel System Integrity",
|
||
|
|
"1968 / 1977 upgrade",
|
||
|
|
"NHTSA",
|
||
|
|
"Tests fuel system in multiple crash modes: rear impact (30 mph MDB), frontal impact (30 mph barrier), side impact (20 mph MDB), and rollover (90 and 180 degree). Measures fuel leakage during and after crash. The Pinto scandal drove significant tightening of leakage limits and test severity in 1977.",
|
||
|
|
[
|
||
|
|
"Fuel leakage measurement during impact",
|
||
|
|
"Fuel leakage measurement post-crash (30 min)",
|
||
|
|
"Tank attachment integrity",
|
||
|
|
"Fuel line integrity",
|
||
|
|
"Static rollover test",
|
||
|
|
],
|
||
|
|
"Not a dummy instrumentation test - fuel leakage measurement. But crash severity must be verified. DTS accelerometers on vehicle structure confirm impact severity. This test ensures survivable crashes don't become fatal due to fire.",
|
||
|
|
)
|
||
|
|
|
||
|
|
# ACTIVE SAFETY
|
||
|
|
add_section_slide("Active Safety", "From surviving crashes to preventing them")
|
||
|
|
|
||
|
|
add_two_column_slide(
|
||
|
|
"The Philosophy Shift",
|
||
|
|
"Passive Safety (1968-2000s)",
|
||
|
|
[
|
||
|
|
"Assume crash WILL happen",
|
||
|
|
"Focus on protection DURING crash",
|
||
|
|
" - Seatbelts",
|
||
|
|
" - Airbags",
|
||
|
|
" - Structure",
|
||
|
|
"",
|
||
|
|
"After 50 years, we've gotten very good",
|
||
|
|
"at protecting people in crashes.",
|
||
|
|
"",
|
||
|
|
"But 94% of crashes involve human error...",
|
||
|
|
],
|
||
|
|
"Active Safety (2000s-present)",
|
||
|
|
[
|
||
|
|
"Try to PREVENT the crash",
|
||
|
|
"Warn driver, assist, brake automatically",
|
||
|
|
" - AEB (Autonomous Emergency Braking)",
|
||
|
|
" - ESC (Electronic Stability Control)",
|
||
|
|
" - Lane Keeping Assist",
|
||
|
|
" - Blind Spot Monitoring",
|
||
|
|
"",
|
||
|
|
"If crash unavoidable, passive kicks in.",
|
||
|
|
"",
|
||
|
|
"Active + Passive = Maximum protection",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_test_mode_slide(
|
||
|
|
"IIHS Front Crash Prevention (AEB)",
|
||
|
|
"2013",
|
||
|
|
"IIHS",
|
||
|
|
"Tests Autonomous Emergency Braking effectiveness. Vehicle approaches stationary foam target at 12 mph and 25 mph. Measures: Does it warn? Does it brake automatically? How much speed reduction? Ratings: Superior / Advanced / Basic. In 2016, 20 automakers voluntarily committed to make AEB standard by 2022 - the fastest safety technology adoption in history.",
|
||
|
|
[
|
||
|
|
"Vehicle approach speed",
|
||
|
|
"Warning timing",
|
||
|
|
"Brake application timing",
|
||
|
|
"Speed at impact (or full stop)",
|
||
|
|
"Target must be stationary foam vehicle",
|
||
|
|
],
|
||
|
|
"Not traditional crash test instrumentation, but a growing market. DTS expanding into vehicle dynamics measurement. AEB reduces rear-end crashes by 50%+. The future of safety testing includes evaluating systems that PREVENT crashes.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"The Pedestrian Crisis: When Occupant Safety Isn't Enough",
|
||
|
|
[
|
||
|
|
"While occupant deaths have FALLEN, pedestrian deaths are RISING:",
|
||
|
|
" - 2009: 4,109 pedestrian deaths",
|
||
|
|
" - 2019: 6,205 pedestrian deaths",
|
||
|
|
" - 2022: 7,500+ pedestrian deaths (18% of all traffic deaths)",
|
||
|
|
"Why?",
|
||
|
|
" - Larger vehicles (SUVs, trucks) dominate sales",
|
||
|
|
" - Higher front ends hit torso/head instead of legs",
|
||
|
|
" - Distracted driving and walking",
|
||
|
|
"IIHS Pedestrian AEB testing (2019):",
|
||
|
|
" - Adult and child pedestrian targets",
|
||
|
|
" - Day and night scenarios",
|
||
|
|
" - Crossing and parallel walking",
|
||
|
|
"Euro NCAP has tested pedestrian PROTECTION (hood impact) since 1997",
|
||
|
|
"US has NO federal pedestrian crashworthiness standard",
|
||
|
|
],
|
||
|
|
"We've gotten very good at protecting people INSIDE vehicles. Now we must protect people OUTSIDE.",
|
||
|
|
)
|
||
|
|
|
||
|
|
# PEDESTRIAN PROTECTION
|
||
|
|
add_test_mode_slide(
|
||
|
|
"Euro NCAP Pedestrian Protection",
|
||
|
|
"1997",
|
||
|
|
"Euro NCAP",
|
||
|
|
"Europe has tested pedestrian protection for 25+ years while US has no federal standard. Uses impactors - headform and legform fired at vehicle surfaces. Headform tests hood and windshield base. Legform tests bumper. Drove design changes: active hood hinges, energy-absorbing bumpers, external pedestrian airbags (Volvo). The US tests if cars AVOID pedestrians (AEB) but not what happens if they don't.",
|
||
|
|
[
|
||
|
|
"Headform impactor (adult and child sizes)",
|
||
|
|
" - Fired at hood surface at 40 km/h",
|
||
|
|
" - HIC measurement",
|
||
|
|
"Upper legform impactor",
|
||
|
|
" - Fired at bumper/leading edge",
|
||
|
|
" - Bending moment, shear force",
|
||
|
|
"Lower legform impactor",
|
||
|
|
" - Knee bending, shear, acceleration",
|
||
|
|
],
|
||
|
|
"Headform impactor testing uses DTS accelerometers inside the impactor headform - same basic technology as crash dummies. The physics is identical: protect the brain from rapid deceleration. Expanding market as US considers pedestrian protection requirements.",
|
||
|
|
)
|
||
|
|
|
||
|
|
# SPORTS SAFETY
|
||
|
|
add_section_slide("Beyond Automotive", "Same physics, different arena")
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"The Concussion Crisis in Sports",
|
||
|
|
[
|
||
|
|
"2005: Dr. Bennet Omalu publishes first CTE case in NFL player (Mike Webster)",
|
||
|
|
"2009: NFL finally acknowledges concussion problem after years of denial",
|
||
|
|
"2011: $765 million settlement with former players",
|
||
|
|
"The science:",
|
||
|
|
" - Concussion: Brain injury from rapid deceleration",
|
||
|
|
" - CTE: Degenerative disease from REPEATED impacts",
|
||
|
|
" - Even 'subconcussive' impacts accumulate",
|
||
|
|
"The question: Can better helmets reduce brain injury?",
|
||
|
|
"Same question we answer in automotive: How do we protect the head?",
|
||
|
|
"Same injury criterion: Severity Index closely related to HIC",
|
||
|
|
"Same measurement: Accelerometers on the head",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_test_mode_slide(
|
||
|
|
"NOCSAE Football Helmet Testing",
|
||
|
|
"1973",
|
||
|
|
"NOCSAE",
|
||
|
|
"Founded after 36 football fatalities in 1968. Drop tower test: helmet on headform dropped from 60 inches onto various anvils. Severity Index must be below 1200. Later added linear impactor testing (2016) - ram fired at helmet to simulate player-to-player collisions. Modern research focuses on rotational acceleration (may be more important than linear for brain injury).",
|
||
|
|
[
|
||
|
|
"Headform acceleration (triaxial)",
|
||
|
|
"Severity Index < 1200",
|
||
|
|
"Multiple drop locations",
|
||
|
|
"Hot, cold, wet conditions",
|
||
|
|
"Linear impactor: 20+ mph impacts",
|
||
|
|
"Rotational measurements (emerging)",
|
||
|
|
],
|
||
|
|
"DTS accelerometers inside helmet headforms - same sensors used in automotive crash dummies. The injury threshold (SI < 1200) is derived from the same human tolerance research as automotive HIC. One technology, one data acquisition approach, applied across domains.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_stat_slide(
|
||
|
|
"90%",
|
||
|
|
"Reduction in football fatalities since NOCSAE standards (1973)",
|
||
|
|
"1960s: 26 deaths/year | 1970s: 15 deaths/year | 2010s: 3 deaths/year\nBetter helmets, better rules, better data.",
|
||
|
|
)
|
||
|
|
|
||
|
|
# MILITARY APPLICATIONS
|
||
|
|
add_content_slide(
|
||
|
|
"Military: Blast Protection & Survivability",
|
||
|
|
[
|
||
|
|
"IEDs (Improvised Explosive Devices) - leading cause of US casualties in Iraq/Afghanistan",
|
||
|
|
"Underbody blast: explosive under vehicle floor",
|
||
|
|
"Traditional crash dummies not designed for this loading:",
|
||
|
|
" - Vertical acceleration, not horizontal",
|
||
|
|
" - Lumbar spine and pelvis critical",
|
||
|
|
" - Different injury mechanisms",
|
||
|
|
"WIAMan (Warrior Injury Assessment Manikin):",
|
||
|
|
" - Developed by US Army with DTS partnership",
|
||
|
|
" - Purpose-built for underbody blast testing",
|
||
|
|
" - Lumbar spine and pelvis instrumentation",
|
||
|
|
" - ~$500,000 per dummy",
|
||
|
|
"Same principle: Understand the forces, measure them accurately, engineer protection",
|
||
|
|
],
|
||
|
|
"DTS partnered with US Army to develop WIAMan - our technology protecting soldiers",
|
||
|
|
)
|
||
|
|
|
||
|
|
# ============================================================
|
||
|
|
# PART 4: THE FUTURE AND DTS ROLE
|
||
|
|
# ============================================================
|
||
|
|
add_section_slide("The Future", "What gaps remain?")
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"Every Test Exposed What Previous Tests Missed",
|
||
|
|
[
|
||
|
|
"1968: FMVSS 208 (frontal) - but side crashes were neglected",
|
||
|
|
"1990: FMVSS 214 (side) - but offset frontal crashes were missed",
|
||
|
|
"1995: IIHS Moderate Overlap - but small overlap was missed",
|
||
|
|
"2012: IIHS Small Overlap - but passenger side was 'gamed'",
|
||
|
|
"2017: Small Overlap Passenger - but fleet changed (bigger SUVs)",
|
||
|
|
"2021: Updated Side Test - but gaps remain...",
|
||
|
|
"What's NEXT?",
|
||
|
|
" - Rear seat occupant protection (currently neglected)",
|
||
|
|
" - Far-side impacts (opposite side from impact)",
|
||
|
|
" - Vehicle compatibility (small cars vs. large trucks)",
|
||
|
|
" - EV-specific tests (battery safety, mass distribution)",
|
||
|
|
" - AV/ADAS validation (how do you test a self-driving car?)",
|
||
|
|
],
|
||
|
|
"The cycle continues. New gaps emerge. New tests will be created.",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"The Gender Gap in Crash Testing",
|
||
|
|
[
|
||
|
|
"Most crash tests use 50th percentile male dummy (5'9\", 175 lbs)",
|
||
|
|
"'Small female' dummy (Hybrid III 5th) is just a SCALED-DOWN male",
|
||
|
|
"Women are 17% more likely to DIE in equivalent crashes",
|
||
|
|
"Women are 73% more likely to be seriously injured",
|
||
|
|
"Why?",
|
||
|
|
" - Female anatomy differs: hip structure, neck strength, breast tissue",
|
||
|
|
" - Women sit closer to steering wheel (shorter legs)",
|
||
|
|
" - Seatbelt geometry optimized for male torsos",
|
||
|
|
"The solution (in progress):",
|
||
|
|
" - THOR-5F (2023): First 'true female' dummy - not scaled male",
|
||
|
|
" - Different skeletal structure, includes breast representation",
|
||
|
|
" - NHTSA considering requiring female dummy in tests",
|
||
|
|
],
|
||
|
|
"Quote: 'For decades, the average human in crash testing has been male.'",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"The ATD Evolution: From Sierra Sam to THOR",
|
||
|
|
[
|
||
|
|
"1949: Sierra Sam - first crash test dummy (USAF ejection seats)",
|
||
|
|
"1968: VIP-50 - built for GM and Ford",
|
||
|
|
"1971: Hybrid I - GM combined best features",
|
||
|
|
"1972: Hybrid II - first FMVSS-compliant dummy",
|
||
|
|
"1976: Hybrid III - STILL the global standard for frontal impact",
|
||
|
|
"2000s: WorldSID - international side impact harmonization",
|
||
|
|
"2013: THOR-50M - advanced male, 150+ data channels",
|
||
|
|
"2015: WIAMan - military blast (DTS partnership)",
|
||
|
|
"2023: THOR-5F - first true female dummy",
|
||
|
|
"The trend: More biofidelic, more instrumentation, more data",
|
||
|
|
"Hybrid III: ~47 channels | THOR: 150+ channels",
|
||
|
|
"More channels = more data = better understanding = safer designs",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"DTS: The Nervous System of Safety Testing",
|
||
|
|
[
|
||
|
|
"ATDs are mechanical bodies - they can't 'feel' or 'report'",
|
||
|
|
"DTS provides the nervous system:",
|
||
|
|
" - Accelerometers measure deceleration (head, chest, pelvis)",
|
||
|
|
" - Load cells measure forces (neck, femur, tibia)",
|
||
|
|
" - Potentiometers measure displacement (chest deflection)",
|
||
|
|
" - Angular rate sensors measure rotation",
|
||
|
|
"Where DTS equipment is used:",
|
||
|
|
" - Every major automotive safety lab worldwide",
|
||
|
|
" - NHTSA, IIHS, Euro NCAP",
|
||
|
|
" - Every major OEM",
|
||
|
|
" - Universities, research institutions",
|
||
|
|
" - Military (WIAMan partnership)",
|
||
|
|
" - Sports (helmet testing)",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_quote_slide(
|
||
|
|
"A crashed car is gone forever. The data is what remains.", "Industry saying"
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"Why Data Quality Matters",
|
||
|
|
[
|
||
|
|
"A single crash test costs $50,000 - $500,000+",
|
||
|
|
" - Test vehicle: $30,000 - $80,000 (destroyed)",
|
||
|
|
" - ATD (Hybrid III 50th): $200,000 - $400,000",
|
||
|
|
" - ATD (THOR): $500,000 - $800,000",
|
||
|
|
" - Facility, personnel, analysis",
|
||
|
|
"The vehicle is destroyed in 100 milliseconds",
|
||
|
|
"ALL VALUE is captured in the data",
|
||
|
|
"If a sensor fails, if a channel drops, if data is questionable:",
|
||
|
|
" - You might have to repeat the entire test",
|
||
|
|
" - $100K+ repeat cost, weeks of delay",
|
||
|
|
"DTS data acquisition is a fraction of test cost",
|
||
|
|
"But it captures 100% of the value",
|
||
|
|
"Our customers demand reliability because the stakes are that high",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"The Data Chain: From Impact to Insight",
|
||
|
|
[
|
||
|
|
"Frontal crash: Head, chest, femur loads - DTS instrumentation",
|
||
|
|
"Side crash: Pelvis, thorax, head loads - DTS instrumentation",
|
||
|
|
"Roof crush: Force vs. displacement - DTS load cells",
|
||
|
|
"Sled tests: Dummy kinematics - DTS systems",
|
||
|
|
"Pedestrian impactors: Headform acceleration - DTS accelerometers",
|
||
|
|
"Helmet testing: Same accelerometers, same DAQ",
|
||
|
|
"Military blast: WIAMan instrumentation - DTS partnership",
|
||
|
|
"Test methods evolve. Pass/fail thresholds change.",
|
||
|
|
"Vehicles change. Regulations change.",
|
||
|
|
"DATA REQUIREMENTS REMAIN.",
|
||
|
|
"DTS provides the data that makes every test meaningful.",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
# CLOSING
|
||
|
|
add_section_slide("The Bottom Line", "Why this matters")
|
||
|
|
|
||
|
|
add_stat_slide(
|
||
|
|
"117,000",
|
||
|
|
"Lives saved per year compared to 1970 rates",
|
||
|
|
"1970 fatality rate applied to today's VMT: 153,000 deaths per year\nActual 2019 deaths: 36,000 | Difference: ~117,000 lives per year",
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"Each of Those Lives Was Saved By:",
|
||
|
|
[
|
||
|
|
"A TRAGEDY that revealed a problem",
|
||
|
|
" - Steering column deaths, Pinto fires, football fatalities",
|
||
|
|
"PIONEERS who asked 'why?' and investigated",
|
||
|
|
" - DeHaven, Stapp, Bohlin, Patrick, Haddon, Nader",
|
||
|
|
"INSTITUTIONS that were formed or empowered",
|
||
|
|
" - NHTSA, IIHS, NOCSAE, Euro NCAP",
|
||
|
|
"DATA that revealed the mechanism of injury",
|
||
|
|
" - Cadaver research, rocket sled tests, crash tests",
|
||
|
|
"A TEST that measured the problem",
|
||
|
|
" - FMVSS 208, IIHS Small Overlap, NOCSAE drop test",
|
||
|
|
"ENGINEERING that solved it",
|
||
|
|
" - Seatbelts, airbags, crumple zones, helmets",
|
||
|
|
"DTS is in this chain at steps 4, 5, and 6 - capturing the data that drives solutions",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_content_slide(
|
||
|
|
"The Work Continues",
|
||
|
|
[
|
||
|
|
"The cycle hasn't stopped:",
|
||
|
|
" - Pedestrian deaths are RISING while occupant deaths fall",
|
||
|
|
" - Rear seat occupants are less protected than front",
|
||
|
|
" - Female occupants are more likely to die than males",
|
||
|
|
" - Autonomous vehicles create new testing challenges",
|
||
|
|
"New tragedies will reveal new gaps",
|
||
|
|
"New institutions will form or expand",
|
||
|
|
"New tests will be created",
|
||
|
|
"New data will be required",
|
||
|
|
"And DTS will be there - providing the instrumentation,",
|
||
|
|
"the data acquisition, the accuracy and reliability",
|
||
|
|
"that turns crashes into knowledge and knowledge into lives saved.",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
add_title_slide(
|
||
|
|
"Data Saves Lives",
|
||
|
|
"Every test has a story. Every story started with tragedy.\nEvery tragedy ended when we got the data to understand it.",
|
||
|
|
)
|
||
|
|
|
||
|
|
# Q&A
|
||
|
|
add_title_slide("Questions?", "DTS: The data that makes safety testing possible.")
|
||
|
|
|
||
|
|
# Save the presentation
|
||
|
|
prs.save("Data_Saves_Lives.pptx")
|
||
|
|
print("Presentation created: Data_Saves_Lives.pptx")
|
||
|
|
print(f"Total slides: {len(prs.slides)}")
|