NBISJS

CWebAssemblyEmscriptenTypeScriptNPM

NBIS-JS is an open-source port of the NIST Biometric Image Software (NBIS) to JavaScript using WebAssembly. This project was born out of a professional need at BRy Tecnologia, where I realized that biometric validation and template generation didn't necessarily need to happen in the backend.

The original NBIS is a massive C project developed by the National Institute of Standards and Technology. It includes tools for image processing, fingerprint feature extraction (mitosis), and matching. I focused on extracting the core functionality needed for web applications: capturing a fingerprint image, extracting its minutiae, and generating a standardized template (MINEX II).

Using Emscripten, I compiled the performance-critical C code into WebAssembly. This allowed the browser to perform complex biometric calculations at near-native speeds. The result was a library that could be easily integrated into any web application, providing a seamless and secure biometric collection process without the need for constant round-trips to an API.

Impact and Connectivity

The introduction of NBIS-JS significantly improved the user experience for biometric enrollment. It allowed for real-time quality checks directly in the browser, giving users immediate feedback on whether their fingerprint capture was successful. Furthermore, it enabled offline biometric capture, a crucial feature for field workers or users with unstable internet connections.

This project also gave me the opportunity to dive deep into the world of WebAssembly and low-level optimizations. I shared these findings in a talk titled "WebAssembly: High-performance applications in the browser" at The Developers Conference 2023 in Porto Alegre.

Picture of Arthur Bianco giving presentation on Web Assembly at The Developers Conference 2023 in Porto Alegre

NBIS-JS is available as an open-source project on GitHub and can be easily installed via NPM. It continues to be a testament to how modern web technologies can breathe new life into battle-tested legacy software.


© 2025 Arthur Bianco.