What is the VI file format?
Files with the .vi extension belong to the category of virtual instrument files, used within the LabVIEW programming environment developed by National Instruments (now NI, part of Emerson).
What do .vi files contain?
A .vi file stores a virtual instrument - an application that simulates the operation of real laboratory equipment such as a multimeter or an oscilloscope. Each file contains two main sections: a graphical source written in the G language (LabVIEW’s dataflow programming language) and its compiled executable version. Within the graphical section you will find:
- user interface (the front panel)
- block diagram, which holds the G language source wires and nodes
- data space
- connector pane
- icon used to represent the instrument when placed as a SubVI inside another block diagram
The compiled code stored in the second section allows the virtual instrument to run inside the LabVIEW environment without a separate build step.
What are .vi files used for?
Virtual instruments let engineers conduct research and measurements without physically constructing the analysed systems. Since LabVIEW’s introduction in 1986 - originally on Apple Macintosh - VIs have been deployed across industry, academia, and advanced R&D projects including work by NASA. VIs can be nested inside one another as SubVIs, enabling modular, reusable instrument designs.
Can I create my own .vi files?
The LabVIEW environment allows for the visual creation of new or modification of existing virtual instruments. When you edit the block diagram or front panel, LabVIEW automatically recompiles the G language source and saves the updated compiled code back into the same .vi file, so the instrument is immediately ready to run.
Internally, .vi files use NI’s proprietary Resource Container binary format (magic bytes 52 53 52 43 0D 0A - RSRC\r\n - at file offset 0), derived from the Mac OS Resource Fork used in LabVIEW’s original Mac-only years (1986-1992). The format is not forward-compatible: a .vi saved in a newer LabVIEW version cannot be opened in an older one. Related formats include .vit (VI Template), .ctl (custom control), and .lvproj (LabVIEW project).
Security & safety
RISK: MEDIUMVI files can contain compiled executable code that runs on the host machine. A malicious VI could read/write files, communicate over the network, or control hardware. Only open VIs from trusted sources. NI instruments drivers from NI's official Instrument Driver Network are safe; third-party VIs should be reviewed in LabVIEW's block diagram before running.
Format details
in a nutshell- Unix vi editor recovery file - Some Unix systems use .vi as recovery/swap files for the vi text editor, completely unrelated to LabVIEW.
Programs that open VI files
Technical details
deep spec| Binary signature | 52 53 52 43 0D 0A ("RSRC\r\n") at file offset 0 - Resource Container header |
| Container format | NI Resource Container (proprietary; modelled on Mac OS Resource Fork) |
| Byte order | Big-endian |
| Encoding | Binary |
| Compression | None by default; individual data blocks may use zlib in LabVIEW 2021+ |
| Typical file size | 10 KB - 50 MB (depends on compiled code, embedded SubVIs, and icon data) |
| Key chunk types | BDPW (block diagram), FPHP (front panel), VCTP (connector pane), CONP (compiled code), ICON (VI icon) |
| Container version | Resource Container v3 (current, since ~LabVIEW 8.x); v2 in earlier versions |
| Cross-version compatibility | Not forward-compatible - .vi saved in a newer LabVIEW version cannot be opened in an older one; Mass Compile required after upgrade |
| Password protection | Available via VI Properties for front panel and block diagram locking; not cryptographic encryption |
| Integrity checking | CRC-based checks on resource blocks; file is refused on load if corrupt |
| SubVI support | VIs can be nested as SubVIs inside other VIs, enabling modular instrument design |
| MIME type | application/x-labview-vi |
| OS support | Windows, macOS, Linux |
| Released | 1986 (LabVIEW 1.0 for Mac) |
| Latest version | Resource Container version 3 (as of LabVIEW 2021+) |
| Specification | labviewwiki.org |
VI conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about VI files.