A converter extension which visualizes data following the standard of the ASAM Open Simulation Interface (ASAM OSI) using the native 3D panel of Lichtblick.
This extension reads OSI messages from MCAP trace files — the multi-channel trace format officially specified since OSI v3.8.0-rc1. You can create compliant MCAP traces using the ASAM OSI Utilities.
- Get Lichtblick from github.
- Get extension file from releases.
- Install the extension in Lichtblick by dragging the
.foxefile into the Lichtblick window. - Open a file/stream which is following the ASAM OSI standard.
The code should follow the coding guidelines of Lichtblick. This includes the usage of typescript, prettier, eslint and the lichtblick-suite sdk.
Extension development uses the yarn package manager to install development dependencies and run build scripts.
To install extension dependencies, run yarn from the root of the extension package.
yarn installTo build and install the extension into your local Foxglove Studio desktop app, run:
yarn run local-installOpen the Lichtblick desktop (or ctrl-R to refresh if it is already open). Your extension is installed and available within the app.
Extensions are packaged into .foxe files. These files contain the metadata (package.json) and the build code for the extension.
Before packaging, make sure to set name, publisher, version, and description fields in package.json. When ready to distribute the extension, run:
yarn run packageThis command will package the extension into a .foxe file in the local directory.
This guide explains the steps to manage commits, tags, and releases for this project.
All commits must follow the Conventional Commits standard to ensure consistency and changelog generation.
<type>(<scope>): <description>feat: add new featurefix(auth): resolve a bugdocs: update README.md file
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (e.g., formatting)refactor: Code restructuring without feature/bug changestest: Adding or fixing testschore: Maintenance tasksci: Continuous integration changes
Before tagging a release, ensure dependencies are secure and up to date.
yarn audit --summary
yarn upgrade
yarn installCommit both package.json andyarn.lock before proceeding with release tagging.
Outdated packages can be identified by using
yarn outdatedNot all upgrades are safe or compatible. Tools like TypeScript, esbuild, ESLint, and React types may introduce breaking changes in newer versions. Since this project relies on older but stable build tooling, prefer minor/patch updates and only adopt breaking major versions intentionally.
The release workflow is triggered in one of two ways:
-
Push a signed tag:
git tag -s -a v<version> -m "Release v<version>" git push origin v<version>
-
Manual trigger: Go to Actions → release → Run workflow and type the version from
package.json(e.g.0.2.0) to confirm.
Both paths read the version from package.json as the single source of truth. The tag-push path validates that the pushed tag matches package.json. The manual path validates the tag does not already exist and creates it automatically.
The workflow generates a changelog, builds the .foxe extension, runs a ScanCode license scan, and creates a GitHub Release with all artifacts.
- Ensure all changes for the release are committed and pushed to the main branch.
- Bump the version in
package.json, commit and push. - Either push a signed tag or use the manual trigger in GitHub Actions.
- Commit Rejected: Ensure your commit message follows the Conventional Commits format.
- Empty Changelog: Verify that commit messages are properly formatted.
- Tag Not Found: Push the tag using
git push origin v<version>.
For further assistance, contact the repository codeowners.