14 KiB
Impakt — Brainstorm
Ideas, feature proposals, and design thoughts collected during development. Grouped by theme. Checkboxes indicate implementation status.
Data Import & Channel Intelligence
- Lazy channel loading — For tests with 500+ channels, don't load
.datfiles until a channel is first accessed. Load headers eagerly, data lazily. This keepsSession.open()fast even for large datasets. - Channel aliasing — Allow users to define human-friendly aliases for channel codes. e.g.,
"head_ax" -> "11HEAD0000ACXA". Aliases can live in templates or user config. - Auto-detect signal type from channel code — Use the measurement code (AC, FO, MO, DC...) to automatically suggest appropriate CFC class, plot axis labels, and unit handling.
- Batch loader — Load an entire directory of tests at once.
Session.open_batch("/tests/series_2024/")returns aSeriesobject with cross-test operations. - Channel search by physical meaning — "Show me all head accelerations" should work across different test objects (driver, passenger, child dummies).
- Delta channel — Compute the difference between the same channel across two tests. Useful for design iteration comparisons.
- NHTSA open data integration — NHTSA publishes crash test data but in their own proprietary format (UDS), not ISO 13499 MME. No publicly available MME datasets exist (the format is industry-internal; Euro NCAP data is confidential). Build a UDS-to-MME converter or direct UDS reader plugin. NHTSA's NCAP database is at
nhtsa.gov/file-downloads?p=nhtsa/downloads/NCAP/— the Access DB (NCAP 6-14-10.mdb) contains summary results, not time-history data. Contact NHTSA (SCI@dot.gov, 888-327-4236) for time-history channel data access. - Channel metadata editor — Sometimes
.chnfiles have wrong units or missing metadata. Provide a non-destructive override mechanism stored in the session. - Synthetic data generator — Built into the test suite (
tests/fixtures/generate_mme.py) for development. Consider exposing this asimpakt.synthfor users who want to prototype templates or test analysis scripts without real test data.
Visualization
- Synchronized zoom/pan — When plotting multiple subplots (e.g., head accel + chest deflection), zoom/pan actions should sync across all subplots.
- Waterfall / 3D surface plots — For tests with many similar channels (e.g., barrier face loads at multiple locations), a 3D surface or waterfall view shows spatial distribution.
- Animation mode — Playback the crash event in time, with a vertical cursor sweeping across all plots simultaneously. Sync with video if available.
- Channel comparison sparklines — In the channel tree sidebar, show tiny inline sparklines next to each channel name so engineers can visually identify signals before selecting them.
- Peak annotation — Auto-annotate the peak value and time on plots. Toggle-able. Shows a marker + text label at the peak.
- Statistical overlays — When viewing multiple tests, show mean +/- 1 sigma envelope, min/max envelope. Useful for repeatability studies.
- Color-by-test vs color-by-channel — When overlaying multiple tests, let the user choose: each test gets a color (channels within a test share the color), or each channel gets a color (tests use line dash variants).
- Dark mode — Engineers often work in labs with varying lighting. A dark theme would be appreciated.
- Custom plot layouts — Allow 2x2, 3x1, 1x3, etc. subplot grids within a single view, each with independent channel selection.
- Persistent cursor positions — When moving between plot views or applying transforms, cursor positions should persist in the session state.
Signal Processing
- Frequency spectrum viewer — FFT / power spectral density of a channel. Helps diagnose noise, identify resonant frequencies, and verify CFC filter behavior.
- Integration / differentiation — Integrate acceleration to get velocity/displacement. Differentiate displacement to get velocity. Track cumulative units.
- Cross-correlation — Find time lag between two channels. Useful for understanding signal propagation through the vehicle structure.
- Envelope detection — Compute the signal envelope (Hilbert transform). Useful for identifying amplitude trends.
- Window functions — Apply Hanning, Hamming, etc. for spectral analysis pre-processing.
- Savitzky-Golay filter — Alternative to CFC for smoothing that better preserves peaks.
- Event detection — Automatically detect impact events from acceleration signals (threshold crossing, change-point detection). Useful for multi-event tests.
- Signal quality metrics — Detect clipping, saturation, dropout, or excessive noise. Flag channels with potential data quality issues.
Injury Criteria & Protocols
- BrIC (Brain Injury Criterion) — Rotational brain injury metric using angular velocity. Increasingly used in newer protocols.
- DAMAGE (Diffuse Axonal Multi-Axis General Evaluation) — Related to BrIC, uses angular acceleration.
- SIMon / GHBMC coupling — Interface with finite element head models for advanced brain injury assessment.
- Thorax Trauma Index (TTI) — Side impact chest criterion.
- Abdominal Peak Force (APF) — Abdomen criterion for side impact.
- Acetabular force — Pelvis criterion for side impact (SID-IIs, WorldSID).
- Pedestrian criteria — Head Impact Criterion for headform impactors, lower leg bending, upper leg force.
- Protocol version management UI — Visual diff between protocol versions. Show what thresholds changed between e.g. Euro NCAP 2023 vs 2025.
- Custom protocol builder — Let users define their own pass/fail criteria with custom thresholds. Useful for internal OEM targets that are stricter than regulation.
- Sensitivity analysis — "What if" tool: how would the score change if HIC was 50 points lower? Slider-based interactive exploration.
- Regulatory compliance check — Given a test, automatically check all applicable FMVSS / ECE regulation limits and flag any exceedances.
Templates & Workflow
- Template marketplace / sharing — Allow teams to share templates. Git-based version control for template libraries. Team templates synced via a shared directory or Git repo.
- Template inheritance — A template can extend another template. e.g., "My NCAP template" extends "Euro NCAP 2024" but adds custom corridors and extra plots.
- Channel auto-mapping — When applying a template to a new test, auto-map channel patterns to actual available channels. Handle naming variations across test facilities.
- Template validation — When a template references channel patterns, validate that the current test data has matching channels. Show warnings for missing channels.
- Quick comparison mode — Two tests side-by-side with synchronized cursors. One-click "compare" from the template panel.
- Corridor management UI — Visual editor for creating and editing tolerance corridors. Draw the envelope on a plot, export to CSV.
- Session history / undo — Track a history of actions (transforms applied, cursors moved, channels added) with undo/redo.
Reports
- Multi-page reports — Combine multiple plots + injury summary + protocol rating into a single PDF with automatic table of contents.
- Configurable report branding — Company logo, header/footer text, color scheme. Stored in user config.
- Excel export — Export criteria results and cursor values to Excel, not just PDF. Engineers love spreadsheets.
- PowerPoint export — Generate slides with one plot per slide. Common request in OEM environments.
- Automated report narration — Generate natural-language summary paragraphs: "The head acceleration exceeded the Euro NCAP green threshold at t=0.032s, resulting in a yellow rating for the head region."
- Report templates gallery — Pre-built templates for common submission formats (NHTSA compliance report, Euro NCAP submission, IIHS test report).
- Comparison reports — Automatically generate a report comparing two or more tests, highlighting differences in criteria and ratings.
Integration & Automation
- Jupyter notebook integration — Impakt objects should display rich output in Jupyter (interactive Plotly plots, HTML tables). Consider
_repr_html_on key objects. - Watch mode — Monitor a directory for new test data. When a new test appears (e.g., DAQ export completes), automatically apply a template and generate a report.
- CI/CD integration —
impakt evaluate --protocol euro_ncap --exit-codereturns non-zero if any criterion fails. Useful for automated test validation pipelines. - REST API mode — Run Impakt as a server with a REST API for integration with other tools (CAE workflows, PLM systems).
- Pre/post-processing hooks — User-defined Python functions that run before/after template application, criteria computation, or report generation. Part of the plugin system.
- CAE data import — Read simulation results (LS-DYNA d3plot binodes, Abaqus ODB) so that test vs. simulation overlay is trivial.
- Video sync — Link high-speed camera footage with channel data. Scrubbing the video moves the time cursor on plots, and vice versa.
Performance & Scale
- Memory-mapped data — For very large datasets, use
numpy.memmapto avoid loading everything into RAM. - Channel cache — Cache frequently-accessed transformed channels to avoid recomputing CFC filters every time.
- Parallel criteria computation — Compute all injury criteria in parallel using
concurrent.futures. The individual computations are independent. - Web UI performance — For 500-channel tests, the channel tree and dropdown become unwieldy. Implement virtualized scrolling and tree expansion.
- Progressive rendering — Show plots immediately with low-resolution data, then refine with full-resolution data once loaded.
Data Quality & Validation
- Channel polarity check — Verify SAE sign convention compliance. Detect if a channel appears to have inverted polarity (e.g., positive compression forces that should be negative).
- Sensor sanity checks — Flag physically impossible values (e.g., head acceleration > 500g, negative femur tension during frontal impact).
- Inter-channel consistency — Check that related channels are consistent (e.g., resultant acceleration is actually sqrt of sum of squares of components).
- Time sync verification — Check that all channels have consistent timing (same sample rate, same trigger point, no time drift).
- Missing channel detection — For a given protocol, check which required channels are missing from the test data and warn the user.
User Experience
- Keyboard shortcuts —
Ctrl+1throughCtrl+9for quick channel groups.Spaceto toggle play/pause on animation.Rto reset zoom. - Right-click context menus — Right-click on a channel in the tree to apply common transforms, compute criteria, or export data.
- Drag-and-drop — Drag channels from the tree onto the plot area. Drag a test directory onto the app to open it.
- Recent files — Remember recently opened tests for quick access.
- Bookmarks — Save specific views (channel selection + zoom range + cursors) as named bookmarks within a session.
- Multi-window — Open multiple test sessions in separate browser tabs, synchronized or independent.
- Guided analysis wizards — Step-by-step guided workflows: "Run frontal NCAP analysis" walks the user through channel selection, filtering, criteria computation, and report generation.
- Tooltip glossary — Hover over terms like "HIC15", "CFC 180", "Nij" to see a brief explanation. Aids learning for junior engineers.
Plugin Ideas
- impakt-dicom — Import DICOM medical imaging data for correlation with dummy injury metrics.
- impakt-catia — Link to CATIA vehicle models for 3D visualization of sensor locations.
- impakt-abaqus — Import Abaqus simulation results.
- impakt-lsdyna — Import LS-DYNA simulation results (binout, d3plot).
- impakt-madymo — Import MADYMO occupant simulation results.
- impakt-jncap — Japanese NCAP scoring protocol.
- impakt-cncap — Chinese NCAP scoring protocol.
- impakt-kncap — Korean NCAP scoring protocol.
- impakt-ancap — Australian NCAP scoring protocol.
- impakt-latinncap — Latin NCAP scoring protocol.
Architecture Notes
Transform Pipeline Composition
Currently transforms are a flat chain. Consider a DAG-based pipeline for more complex workflows where a channel needs to be both filtered and unfiltered, with the resultant computed from filtered components but cursor values shown on unfiltered data.
Real-time Collaboration
Multiple engineers often need to look at the same test data simultaneously during post-test review sessions. Consider WebSocket-based real-time sync of cursor positions, channel selections, and annotations. A "presenter mode" where one engineer drives and others follow.
Offline Mode
The web UI requires a running Python server. For situations where engineers need to share results with non-technical stakeholders, consider an "export to static HTML" mode that bundles all data and Plotly.js into a single self-contained HTML file that can be opened in any browser.
Standardization of Corridor Files
Corridors currently use a simple CSV format. Consider adopting or defining a more structured format that includes metadata (source protocol, year, applicable dummy type, confidence level). Corridors from official protocol documents could be bundled with the tool.