| Category | Tech Stack |
|---|---|
| UI · Realtime Visualization | |
| Protection Algorithm Engine | |
| Hardware Audio I/O | |
| Desktop Shell · Packaging | |
| License |
English | 한국어
A desktop app for demonstrating Iron Device Corporation's speaker protection algorithm, developed as part of a Jeonbuk National University SW industry-academic collaboration project. While an audio file plays, it captures the speaker's voltage (V) and current (I) sensing signals from real hardware, runs them through the protection algorithm (compiled to WebAssembly), and visualizes speaker temperature and cone excursion (displacement) in real time.
The analysis engine runs directly inside the app (the Tauri WebView), and audio playback and capture are handled by a per-platform native helper (macOS CoreAudio / Windows ASIO) in a single IOProc, so playback and capture share one clock.
This repository does not include the protection algorithm C sources or the ASIO SDK. You must place both at the paths below before builds/packaging will proceed. (Use the SDK shared on Teams.)
./iron-Device-simulator
└── native
├── wasm-engine/custom/ # ① protection algorithm source drop-in (any filenames)
│ ├ protection-algorithm.h
│ └ protection-algorithm.c
└── windows/audio-device-helper/
└── third_party/ # ② mkdir third_party
└── ASIOSDK # folder name must match (only needed for Windows packaging)
git clone https://github.com/JBNU-CILAB/Iron-Device-Simulator.git
cd iron-Device-simulator
npm installOne command right after cloning (checks the environment → npm install → WASM build → dev server startup check).
npm run bootstrap
npm run build:tauri -- --windows # or --mac or --linux- macOS: after the first launch is blocked, go to System Settings → Privacy & Security → "Open Anyway"
- Windows: on the SmartScreen warning, click "More info" → "Run anyway"
- Linux:
chmod +x *.AppImagethen run directly — no warning
npm run build:wasm # compile the C sources in native/wasm-engine to browser-target WASM
npm run build:wasm -- --dev # skip WASM obfuscation (use while working on the algorithm)
npm run build:desktop # static build → out/ (see the build section above)
npm run build:tauri # static build + Tauri packaging → out/ + dist-tauri/
npm run build:tauri -- --hostOS --devtools --dev
# --hostOS: {mac, linux, windows}
# --dev: skip WASM obfuscation and encryption (use while working on the algorithm)
# --devtools: enable developer tools
Copyright (C) 2026 Iron Device Corporation & JBNU-CILAB.
This project is free and open-source software licensed under the
GNU General Public License v3.0 only (GPL-3.0-only).
Third-party components remain subject to their respective licenses.