Skip to content

Repository files navigation

Iron Device Simulator

Category Tech Stack
UI · Realtime Visualization Next.js 15 React 19 TypeScript Tailwind CSS uPlot
Protection Algorithm Engine WebAssembly C
Hardware Audio I/O macOS CoreAudio Swift Windows ASIO C++
Desktop Shell · Packaging Tauri v2 Rust
License License: GPL-3.0

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.

image

Prerequisites (Required)

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)

Installation

git clone https://github.com/JBNU-CILAB/Iron-Device-Simulator.git
cd iron-Device-simulator
npm install

Getting Started

One 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

Notes

  • 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 *.AppImage then run directly — no warning

Dev Commands

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

License

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.

About

A Tauri desktop app that plays real-time audio through an external speaker while tracking V/I sensing data in real time, running it through a speaker-protection algorithm(WebAssembly) to control the output and visualize excursion and temperature.

Topics

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages