# Competitive & Technology Landscape

**Date:** 2026-04-11
**Context:** Survey of tools relevant to Impakt — crash test data analysis, visualization, and reporting.

---

## Summary

No existing tool combines all of: open-source, web-based, ISO-MME native, CFC filtering, injury criteria, protocol scoring, template workflows, and report generation. Commercial tools achieve this but are expensive and Windows-only. Open-source tools each cover a slice. Impakt occupies a genuinely unserved niche.

---

## 1. Direct Competitors (Commercial Crash Test Analysis)

These are the tools crash test engineers actually use day-to-day. All are Windows desktop applications with per-seat licensing.

### measX X-Crash

- **URL:** https://www.measx.com/en/products/software/x-crash.html
- **Type:** Commercial (measX GmbH, Germany)
- **Why it matters:** The gold standard in European crash test labs. measX co-developed the ISO/TS 13499 standard itself. X-Crash includes synchronized video playback with measurement channels, Euro NCAP spreadsheet export, and automated analysis libraries for current laws and consumer protection requirements. The ATD variant handles dummy certification workflows.
- **Key features:** ISO MME native, video-signal sync, Euro NCAP export, test series comparison, load cell wall analysis.
- **Limitation:** Windows-only, expensive per-seat licensing, no web UI.

### NI DIAdem + Crash Analysis Toolkit

- **URL:** https://www.ni.com/en-us/shop/product/diadem-crash-analysis-toolkit.html
- **Type:** Commercial (NI / Emerson)
- **Why it matters:** The most direct commercial equivalent to Impakt's feature set. The Crash Analysis Toolkit adds dedicated injury criteria functions (HIC, HPC, Xms, VC, TTI, HCD, TI, NIC, NIJ, FFC) to DIAdem's base platform. CFC filtering per ISO 6487 / SAE J211. Automated report generation. ISO MME import via DataPlugin. Autoliv uses it for crash test data analysis.
- **Key features:** Full injury criteria suite, CFC filtering, scripting automation (VBScript), 100+ format import via DataPlugins.
- **Limitation:** Windows-only, NI licensing model.

### Kistler EVAluation / CrashView / ISOVerter

- **URL:** https://www.kistler.com/INT/en/cp/software-for-crash-test-analysis-crashtest/P0001508
- **Type:** Commercial (Kistler Group)
- **Why it matters:** Kistler manufactures the sensors and DAQ systems used in crash test labs. Their software suite is tightly integrated with their hardware ecosystem. EVAluation PC/NCAP handles automated analysis and reporting, ISOVerter converts data to/from ISO 13499, CrashView provides visualization, and Load Cell Wall View analyzes barrier forces.
- **Key features:** Hardware-software integration, ISO 13499 compliance, dummy certification workflows.

### Altair HyperGraph

- **URL:** https://altair.com/hypergraph/
- **Type:** Commercial (Altair Engineering)
- **Why it matters:** Industry-standard in automotive CAE. Reads 130+ data formats. The Automatic Plot Builder generates fully annotated engineering plots from templates — conceptually similar to Impakt's template-driven workflows. Strongest for overlaying simulation (LS-DYNA) results against physical test data.
- **Key features:** 130+ formats, template-based plot generation, FEA + test data overlay.

### Dewesoft DewesoftX

- **URL:** https://dewesoft.com/products/dewesoftx
- **Type:** Commercial (Dewesoft d.o.o.)
- **Why it matters:** Unique capability — real-time CFC filtering during acquisition, not just post-processing. Uses an innovative FIR replacement for the reverse Butterworth pass, enabling live SAE J211 compliance. Tightly coupled with Dewesoft DAQ hardware. Free software updates for hardware owners.
- **Key features:** Real-time CFC filtering, integrated DAQ + analysis, live visualization.

### imc FAMOS

- **URL:** https://www.imc-tm.com/products/measurement-software/imc-famos
- **Type:** Commercial (imc Test & Measurement)
- **Why it matters:** 30+ years of measurement data analysis. Over 1000 built-in signal processing functions. Macro language enables complex automated analysis workflows similar to Impakt's scripting API. Strong in automotive test track data and NVH.
- **Key features:** 1000+ built-in functions, macro automation, 100+ format import, PDF/PowerPoint reports.

### Siemens Simcenter Testlab

- **URL:** https://plm.sw.siemens.com/en-US/simcenter/physical-testing/testlab/
- **Type:** Commercial (Siemens Digital Industries)
- **Why it matters:** Enterprise-grade, heavily used by automotive OEMs. Predefined processing templates for standard analyses — parallels Impakt's template system. Strong test-simulation correlation. Integration with Siemens PLM ecosystem (Teamcenter, NX).

### DADiSP

- **URL:** https://www.dadisp.com/
- **Type:** Commercial (DSP Development Corp)
- **Why it matters:** Unique "engineering spreadsheet" paradigm — each cell is a plot window showing a signal. Very intuitive for multi-channel exploration. CFC filter module specifically for crash test data. Has been around since the 1980s.

### NHTSA Signal Analysis Software

- **URL:** https://www.nhtsa.gov/databases-and-software/signal-analysis-software-windows
- **Type:** Free (US Government, public domain)
- **Why it matters:** Suite of 20+ Windows applications from the regulatory agency itself. SignalBrowser for plotting, AutoInjuryCriteria for automated computation. The injury criteria calculators (HIC, Nij, TibiaIndex, Clip3ms) are essentially the reference implementations. Reads UDS-1992 format.
- **Key features:** Free, authoritative injury criteria implementations, direct NHTSA database connection.
- **Limitation:** Dated Windows GUIs (some VB6/Fortran), UDS format rather than ISO MME.

### FalCon MME Creator / CustomerView

- **URL:** https://www.falcon.de/falcon/en/MMEcreator_en.htm
- **Type:** Commercial (FalCon GmbH, Germany)
- **Why it matters:** ISO MME tree navigation. Synchronized video + measurement graphs. The CustomerView free-distribution model lets OEMs send test data packages with a built-in viewer at no cost to recipients.

---

## 2. Open Source — Same Domain

These are the closest open-source equivalents. All are cloned in `research/repos/`.

### pyisomme

- **Repo:** `research/repos/pyisomme/` | [github.com/jonaskeller14/pyisomme](https://github.com/jonaskeller14/pyisomme)
- **License:** MIT
- **Language:** Python (33 files)
- **Why it matters:** The closest open-source equivalent to Impakt. Covers ISO-MME I/O (compressed + uncompressed), CFC filtering, injury criteria (HIC, a3ms, DAMAGE, OLC, BrIC, NIJ), and automated PowerPoint reports compliant with Euro NCAP, UN-R137, and UN-R94.
- **Key differences from Impakt:** Generates PowerPoint (not PDF/HTML), no web UI, minimal community adoption (1 GitHub star), single maintainer. Impakt has a more modular architecture with plugin system, web UI, and template/session lifecycle.
- **Useful for:** Cross-validating injury criteria implementations, comparing ISO-MME parsing approaches.

### NHTSA-Tools (Fortran)

- **Repo:** `research/repos/NHTSA-Tools/` | [github.com/DeadParrot/NHTSA-Tools](https://github.com/DeadParrot/NHTSA-Tools)
- **License:** MIT (public domain origin)
- **Language:** Fortran (89.7%), GNU Make
- **Why it matters:** The actual NHTSA reference implementations for injury criteria, modernized with bug fixes and increased array limits. 23+ applications: HIC, VC (viscous criterion), BwFilt (Butterworth filtering), FIR100, Integ (integration), Diffr (differentiation), Clip (clip analysis), Resultant computation. Format conversion between UDS, ASCII, ATB, MADY.
- **Useful for:** Validating Impakt's HIC, VC, and filter implementations against the authoritative source code.

### PyAvia

- **Repo:** `research/repos/pyavia/` | [github.com/ericjwhitney/pyavia](https://github.com/ericjwhitney/pyavia)
- **License:** MIT
- **Language:** Python (109 files)
- **Why it matters:** Contains an independent SAE J211 CFC implementation (`J211_2pole`) that follows the standard's Appendix C algorithm exactly — using the digital Butterworth approach rather than relying on `scipy.signal` generics. Important caveat from the author: for CFC 180 and 60, the SAE Appendix C digital Butterworth should be used rather than scipy's generic implementation.
- **Useful for:** Cross-validating Impakt's `transform/cfc.py` implementation. Checking whether our scipy-based approach produces identical results to the Appendix C algorithm.

### lasso-python (LS-DYNA post-processing)

- **Repo:** `research/repos/lasso-python/` | [github.com/open-lasso-python/lasso-python](https://github.com/open-lasso-python/lasso-python)
- **License:** BSD-3-Clause
- **Language:** Python (65 files)
- **Why it matters:** D3plot/Binout/KeyFile reading for LS-DYNA simulation results. The `diffcrash` module enables crash simulation comparison and dimensionality reduction. This is the path to implementing Impakt's BRAINSTORM.md item "CAE data import — Read simulation results (LS-DYNA d3plot)". Maintained successor to the archived `qd-cae-python` (147 stars).
- **Useful for:** Future LS-DYNA integration. Test-vs-simulation correlation workflows.

### EPFL crash-tests-service-robots

- **Repo:** `research/repos/crash-tests-service-robots/` | [github.com/epfl-lasa/crash-tests-service-robots](https://github.com/epfl-lasa/crash-tests-service-robots)
- **License:** GPL
- **Language:** Python scripts + Excel data
- **Why it matters:** Working Python implementations of standard injury criteria (HIC-15, a3ms, Nij, chest deflection, tibia index) applied to physical crash test data. Published in Nature Scientific Reports (2022). While the context is robot-pedestrian collisions, the injury criteria math is identical.
- **Useful for:** Cross-validation of injury criteria. The data visualization approach (see screenshots below) shows accelerometer signals with injury threshold markers.

Screenshots from this project:

![Head acceleration signal with injury analysis](screenshots/epfl-head-acceleration.png)
*Head acceleration signal from Q3 dummy chest impact — annotated with injury criteria markers*

![Tibia injury analysis](screenshots/epfl-tibia-injury.png)
*Tibia moment analysis with injury threshold comparison*

### pycrash (vehicle crash reconstruction)

- **Repo:** `research/repos/pycrash/` | [github.com/joe-cormier/pycrash](https://github.com/joe-cormier/pycrash)
- **License:** GPL
- **Language:** Python (98 files)
- **Why it matters:** Published SAE paper (2021-01-0896). 2D vehicle motion simulation and impact analysis. Automated processing of NHTSA load cell and acceleration data. Derives A/B stiffness values from crash test data. Focused on accident reconstruction rather than test data analysis, but its structural parameter derivation could complement Impakt.

### MMEViewer

- **Repo:** `research/repos/MMEViewer/` | [github.com/Luncher91/MMEViewer](https://github.com/Luncher91/MMEViewer)
- **License:** MIT
- **Language:** C# / .NET
- **Why it matters:** Simple ISO MME viewer. Basic CFC 60-1000 filters. Only 3 commits since 2018 — effectively abandoned. The developer requests test data contributions. Demonstrates demand for a lightweight MME viewer.

### iso-location-code

- **Repo:** `research/repos/iso-location-code/` | [github.com/WuglyakBolgoink/iso-location-code](https://github.com/WuglyakBolgoink/iso-location-code)
- **License:** MIT
- **Language:** JavaScript / Node.js
- **Why it matters:** Parses ISO Location Codes (ISO/TS 13499) from MDB database files, exports to JSON. Provides structured datasets of ISO 13499 location codes. Useful for validating Impakt's channel code lookup tables in `channel/lookup.py`.

### pyFDA (Python Filter Design Analysis)

- **Repo:** `research/repos/pyfda/` | [github.com/chipmuenk/pyfda](https://github.com/chipmuenk/pyfda)
- **License:** MIT
- **Language:** Python (104 files)
- **Why it matters:** Interactive GUI for designing and analyzing digital filters — Butterworth, Chebyshev, Elliptic, Equiripple, FIR. Time and frequency domain visualization. Not crash-specific, but the best open-source tool for understanding CFC filter behavior. Useful for Impakt users who need to verify what CFC filtering does to their signals.

Screenshots:

![pyFDA main interface](screenshots/pyfda-main.png)
*pyFDA filter design interface showing frequency response, pole-zero plot, and coefficient display*

![pyFDA 3D surface](screenshots/pyfda-3d-surface.png)
*3D surface visualization of filter characteristics*

---

## 3. Web-Based Visualization Frameworks

Tools and libraries relevant to Impakt's web UI layer.

### plotly-resampler (evaluate for integration)

- **Repo:** `research/repos/plotly-resampler/` | [github.com/predict-idlab/plotly-resampler](https://github.com/predict-idlab/plotly-resampler)
- **License:** MIT | ~1,200 GitHub stars
- **Why it matters:** Drop-in wrapper for Plotly figures that adds dynamic data aggregation. Handles 110M+ points via MinMaxLTTB downsampling. Works natively with Dash (`FigureResampler`) and Jupyter (`FigureWidgetResampler`). Parallel aggregation for multiple traces. Published academic paper (arXiv:2206.08703).
- **Integration path:** Minimal code changes — replace `go.Figure()` with `FigureResampler(go.Figure())` in Impakt's plot engine. Would solve large-dataset rendering performance for high-sample-rate crash test channels.

![plotly-resampler demo](screenshots/plotly-resampler-demo.gif)
*Dynamic resampling during zoom/pan — data aggregation adapts to viewport*

![plotly-resampler overview](screenshots/plotly-resampler-overview.gif)
*Overview of the resampling pipeline showing before/after comparison*

### Rerun

- **URL:** https://rerun.io/ | [github.com/rerun-io/rerun](https://github.com/rerun-io/rerun)
- **License:** Apache 2.0 + MIT dual | ~10,500 GitHub stars
- **Why it matters:** SDK for logging, storing, querying, and visualizing multimodal data. Time-aware in-memory database with multi-rate data support — directly relevant since crash tests involve signals at different sample rates. Python, C++, Rust SDKs. Web viewer runs in-browser. Recent blog post about "fast plots" for kHz time-series. The multi-modal approach (signals + images + 3D) maps to crash test needs (signals + video + barrier deformation).
- **Tech stack:** Rust (83.9%), Python (11.1%), WebGPU rendering.
- **Status:** Very active. $25M+ funding. v0.31+ released April 2026.

### Taipy

- **URL:** https://taipy.io/ | [github.com/Avaiga/taipy](https://github.com/Avaiga/taipy)
- **License:** Apache 2.0 | ~18,800 GitHub stars
- **Why it matters:** Dash alternative with built-in chart decimator (intelligent downsampling for large datasets) and scenario management. The scenario management maps to Impakt's template/session lifecycle. Unlike Streamlit, does not re-run the entire app on each interaction. Claims better performance than Streamlit.

### HoloViz Panel + Datashader

- **URL:** https://panel.holoviz.org/ | [github.com/holoviz/panel](https://github.com/holoviz/panel)
- **License:** BSD-3 | ~4,800 GitHub stars
- **Why it matters:** Works with Matplotlib, Plotly, Bokeh, Altair, and more. The HoloViz ecosystem includes Datashader, which can render billions of points by rasterizing data server-side. Used by Pangeo (climate science) and LSST (astronomy) for petabyte-scale exploration. Alternative architecture to Dash.

### Bokeh

- **URL:** https://bokeh.org/ | [github.com/bokeh/bokeh](https://github.com/bokeh/bokeh)
- **License:** BSD-3 | ~19,000+ GitHub stars
- **Why it matters:** Linked panning/brushing across plots — excellent for synchronized zoom across multiple crash test signal subplots. Crosshair tool maps directly to cursor functionality. Lower-level than Dash, giving more rendering control. BokehJS can run standalone in the browser without Python.

### Grafana

- **URL:** https://grafana.com/oss/grafana/ | [github.com/grafana/grafana](https://github.com/grafana/grafana)
- **License:** AGPL v3 | ~67,000+ GitHub stars
- **Why it matters:** Industry-standard time-series dashboarding. A custom Grafana data source plugin could serve crash test data as interactive dashboards. Dual Y-axis support for correlating different signal types. However, fundamentally a viewer — no signal processing or injury criteria computation.

### Foxglove

- **URL:** https://foxglove.dev/
- **License:** Freemium (open-source core archived July 2024)
- **Why it matters:** Panel-based layout with multi-modal data visualization (signals + video + images). The synchronized video + signal paradigm directly addresses crash test analysis needs. Web-native. Originally robotics-focused but the architecture generalizes.

---

## 4. Engineering Data Analysis Platforms

### asammdf

- **Repo:** `research/repos/asammdf/` | [github.com/danielhrisca/asammdf](https://github.com/danielhrisca/asammdf)
- **License:** LGPL | ~766 GitHub stars
- **Language:** Python (171 files) + C for performance
- **Why it matters:** Fast reader/editor for ASAM MDF v2/v3/v4 files (the automotive ECU/CAN bus measurement format). Handles 14,000 channels, 5GB files. GUI for visualization and data operations. Export to pandas, HDF5, Matlab, CSV, Parquet. The MDF format is complementary to MME — MDF covers ECU/CAN data, MME covers crash test instrumentation.

![asammdf GUI](screenshots/asammdf-gui.png)
*asammdf GUI showing multi-channel time-series visualization with channel tree navigation*

![asammdf tabular view](screenshots/asammdf-tabular.png)
*Tabular data view with sorting and filtering*

### Peak Solution ODSBox (ASAM ODS)

- **URL:** [github.com/peak-solution/odsbox](https://github.com/peak-solution/odsbox)
- **License:** Open source
- **Why it matters:** Python wrapper for ASAM ODS (ISO/TS 22240) — the enterprise standard for managing crash test data in large OEMs. Returns pandas DataFrames. Example notebooks include crash analysis HIC calculation. Relevant for enterprise integration scenarios.

### HBK catman (WebServer component)

- **URL:** https://www.hbkworld.com/en/products/software/daq/catman-data-acquisition-software
- **Type:** Commercial (HBK / Hottinger Bruel & Kjaer)
- **Why it matters:** The catman WebServer component enables browser-based access to live and recorded measurement data — a similar paradigm to Impakt's web UI. Strong integration with HBK/HBM strain gauge bridges and load cells common in crash test instrumentation.

### binjr (Time Series Browser)

- **URL:** [github.com/binjr/binjr](https://github.com/binjr/binjr)
- **License:** Apache 2.0
- **Language:** Java (JavaFX)
- **Why it matters:** The "time series browser" paradigm — compose ad-hoc views by dragging signals from different sources — is exactly the workflow crash test engineers need. Unique ability to mix numeric signals with textual log data in a unified timeline. Plugin architecture for custom data source adapters.

---

## 5. Feature Comparison Matrix

| Capability | Impakt | measX X-Crash | NI DIAdem | pyisomme | NHTSA Tools | Grafana |
|------------|--------|---------------|-----------|----------|-------------|---------|
| Open source | Yes (MIT) | No | No | Yes (MIT) | Yes (PD) | Yes (AGPL) |
| Web-based UI | Yes | No | No | No | No | Yes |
| ISO MME read | Yes | Yes | Plugin | Yes | No (UDS) | No |
| CFC filtering | Yes | Yes | Yes | Yes | Yes | No |
| HIC | Yes | Yes | Yes | Yes | Yes | No |
| Nij | Yes | Yes | Yes | Yes | Yes | No |
| Chest deflection | Yes | Yes | Yes | No | No | No |
| Femur / Tibia | Yes | Yes | Yes | No | Yes | No |
| Euro NCAP scoring | Yes | Yes | Yes | Yes | No | No |
| US NCAP scoring | Yes | No | No | No | No | No |
| IIHS scoring | Yes | No | No | No | No | No |
| Template workflows | Yes | Yes | Yes | No | No | Yes |
| Report generation | PDF/HTML | PDF/Excel | PDF | PowerPoint | Text | PNG/PDF |
| Video sync | No | Yes | Yes | No | No | No |
| Plugin system | Yes | No | DataPlugins | No | No | Yes |
| Scripting API | Yes | Yes | VBScript | CLI | No | API |
| Price | Free | $$$ | $$$ | Free | Free | Free/$$$ |
| Platform | Any (web) | Windows | Windows | Any | Windows | Any (web) |

---

## 6. Recommended Actions

### Immediate (high value, low effort)

1. **Evaluate plotly-resampler** for integration into Impakt's plot engine. The drop-in `FigureResampler` wrapper would solve large-dataset rendering with minimal code changes. Repo is cloned at `research/repos/plotly-resampler/`.

2. **Cross-validate CFC implementation** against PyAvia's `J211_2pole` (pure Appendix C algorithm) and NHTSA-Tools' `BwFilt` (Fortran reference). Repos are cloned locally.

3. **Cross-validate injury criteria** against NHTSA-Tools Fortran source, pyisomme, and EPFL implementations. Four independent implementations available for comparison.

### Medium-term (roadmap items)

4. **LS-DYNA data import** via lasso-python. Enables test-vs-simulation correlation — a major differentiator. Repo cloned at `research/repos/lasso-python/`.

5. **ASAM MDF support** via asammdf. Would let Impakt read ECU/CAN bus data alongside crash instrumentation. Repo cloned at `research/repos/asammdf/`.

6. **Video synchronization** — the most-requested feature in commercial tools. Foxglove and Rerun both demonstrate web-native approaches.

### Long-term (architecture)

7. **Evaluate Rerun** as a potential next-generation visualization backend. Its time-aware database with multi-rate data support and WebGPU rendering addresses several limitations of the current Plotly/Dash approach.

---

## Repository Index

All open-source repositories are cloned (shallow, `--depth 1`) into `research/repos/`. They are gitignored and not committed to the Impakt repo.

| Directory | Project | License | Size | Language |
|-----------|---------|---------|------|----------|
| `repos/pyisomme/` | ISO-MME analysis + reporting | MIT | 11M | Python |
| `repos/NHTSA-Tools/` | NHTSA injury criteria (Fortran) | MIT | 4.4M | Fortran |
| `repos/pyavia/` | SAE J211 CFC filter | MIT | 1.4M | Python |
| `repos/lasso-python/` | LS-DYNA post-processing | BSD-3 | 140M | Python |
| `repos/plotly-resampler/` | Large dataset Plotly rendering | MIT | 40M | Python |
| `repos/asammdf/` | ASAM MDF reader/GUI | LGPL | 24M | Python |
| `repos/crash-tests-service-robots/` | Injury criteria (EPFL research) | GPL | 36M | Python |
| `repos/pycrash/` | Crash reconstruction | GPL | 354M | Python |
| `repos/pyfda/` | Filter design GUI | MIT | 26M | Python |
| `repos/MMEViewer/` | ISO MME viewer | MIT | 500K | C# |
| `repos/iso-location-code/` | ISO 13499 code parser | MIT | 11M | JavaScript |

Screenshots are stored in `research/screenshots/` (also gitignored).
