Release Notes
These Release Notes describe the key features, software enhancements and improvements for NVIDIA Halos Outside-In Safety Blueprint releases.
1.4 EA
This release changes how Safety Core processes connect to each other, makes the SEI configuration strict, makes the Perception Monitor safety-relevant, and selects each AI monitor’s mode on the launcher command line. Several changes stop an existing 1.3 deployment from starting until you act. Each item below says what changed and what to do.
Rebuild or reinstall every Safety Core runtime from this release together: the CCPLEX packages, the container image and, for SDM on FSI, the FSI firmware. Mixed versions reject each other’s messages (see Wire format).
Transports
- Every link between Safety Core processes is now an AF_UNIX
SOCK_SEQPACKETsocket in/run/nvpsf: client registration and reports (nvpssd), the SEI daemon to the NvPSD Gateway (nvpssd_to_psd), and the NvPSD Gateway to the SDMs andfsicom-agent(nvpsd_gateway). None of them can be selected or configured. - The NvPSD Gateway no longer listens on UDP port 50000 and opens no network port. Its
--sdm_ipand--sdm_portoptions are gone and are refused as unknown options, as are--transport,--sdm_socketand--sdm_allow. fsicom-agentconnects through the socket.--gw-ipand--gw-portare retired and refused, as are--gw-transportand--gw-socket.atl_sdmno longer accepts--gateway_ipor--gateway_port.proximity_sdmstill accepts them, with no effect.- Peer check. Every socket accepts a peer only if the peer’s primary group id equals its own,
and the SDMs,
fsicom-agentand the NvPSD Gateway also check the server they connect to. Every Safety Core process, on the host and in the container, must therefore run with one primary group. All processes in the container, or all on the host as root, meet this.launch_hoisa.sh --runtime dockerstarts the SDMs orfsicom-agenton the host with the container user’s group; a process you start on the host next to the container needs the same. See Shared process group. - Kernel socket buffers. The NvPSD Gateway, the CCPLEX SDMs and
fsicom-agentcheck that the kernel grants the socket buffers they need. The gateway refuses to start whennet.core.rmem_maxornet.core.wmem_maxis too small, withnvpsf_transport: SO_RCVBUF granted <n> bytes but <m> are required ...; raise net.core.rmem_max. See Kernel socket buffers. - Registration refusals are answered. The gateway replies to a refused SDM registration with a
reason (
malformed,no_valid_event_types,table_fullorrate_limited), and the SDMs andfsicom-agentlog it. Registrations are rate limited per connection by the new gateway options--regr_max_per_window(default 4) and--regr_window_ms(default 10000). fsicom-agent --relay-fsi-respnow requires--cmd-identifier:0xA2for the forklift safety function,0xA5for Proximity Monitoring.launch_hoisa.shpasses it.
SEI configuration (nvpss.conf)
- New mandatory keys:
deploymentMode(2Dor3D),enableFusion(trueorfalse),required_safety_monitor,required_perception_monitorandrequired_mdx_instances. Add them before you upgrade; the shipped file sets2D,true,1,1and1. - Strict loading. A missing or unreadable file, a missing mandatory key, a line without
=, or a repeateddeploymentMode,enableFusionor required-source key now stops the daemon. In 1.3 a missing required key made the daemon discard the whole file and run on built-in defaults. PSSDToPSDComBackendis retired. A file that still contains it is refused, whatever its value. Delete the line.- Unknown names in
bypassFusionEventsare now ignored with an error record, instead of being replaced byEVENT_0.SW_FAILis always bypassed. - New optional keys:
psd_operational_queue_depth,psd_critical_queue_depth,fusion_failure_error_ms,client_reject_error_threshold, and, in 3D,sensorGroupConfig. - The shipped
timeWindowSizeis now 400 ms (it was 1000 ms). Events older than this, or dated more than this far in the future, are marked stale and dropped by the SDMs, with or without fusion. nvpss_daemon --conf <path>reads another file.
See SEI Configuration for every key and its failure message.
Sensor identity
sensor_pipelines_config.confis new and mandatory for the CCPLEX SDMs. It lists the reviewed sensor set behind the all-safety-relevant-sensors-failed latch, which used to be compiled into each SDM. The package installs it live at/opt/nvidia/psf/bin/sensor_pipelines_config.confwith the three reference cameras. A site with a different camera set must edit it. The SDMs refuse to start if it is missing or malformed.- Events from sensors that are not configured are refused. In 1.3 the MDX client sent such an
event with
pipelineId0, which bypassed the identity and sensor-health checks. It is now dropped (Dropping event: sensor not in sensor_config, so it has no pipelineID: <name>), and the SEI daemon refuses any per-sensor event without apipelineId. Make the names in Kafka and insensor_config.confagree. - An event that drives a decision must name its sensor. An event with an empty
sensorIdentifieron a camerapipelineIdused to be accepted, which skipped the name check that catches a wrongpipelineId. It is now rejected in 2D and 3D, with fusion on or off (Rejecting event: empty sensorIdentifier for pipelineID <n> ...).SW_FAILand the trust reports (SENSOR_*,AI_PIPELINE_*) are not refused for an empty name. The MDX client already names every event; a custom event source that leaves the name empty must set it. - 3D (BEV) deployments are declared, not inferred. With
deploymentMode = 3Dthe SEI daemon needs a sensor group file (sensorGroupConfig) andenableFusion = false, the MDX client resolves the BEV group name throughsensor_pipelines_config.conf, and that file lists the group instead of the cameras. This replaces the 1.3 advice to leave the group out of the configuration. See Sensor files.
Launchers
- Each AI monitor has its own required mode.
launch_hoisa.shand the container both require--saim-mode learn|active|skipand--pcm-mode learn|active|skip. Neither selects the other.launch_hoisa.sh --moderemains as a deprecated alias for--saim-modeonly, and--skip-pcmas a deprecated alias for--pcm-mode skip; both print a warning. A command line with only--modenow stops withError: --pcm-mode is required and must be learn, active, or skip: add--pcm-mode. launch_hoisa.sh --runtime dockerstarts host processes with the container user’s group. Once the container runs, the launcher reads the group ID of itsnvidiauser and starts the SDMs orfsicom-agenton the host as root with that group, throughsetpriv, so the NvPSD Gateway in the container accepts them. A control-plane run with--runtime dockernow needssetprivthrough passwordlesssudo, and refuses Docker with user-namespace remapping or in rootless mode. It warns, without stopping, when host accounts share the container user’s group or user ID, because they can reach the Safety Core sockets.--runtime hostis unchanged. See Host processes and the container’s group and Known Limitations.- The modes must match
nvpss.conf. When the control plane runs (a monitor inactive, or both skipped),required_safety_monitorandrequired_perception_monitormust be1for a monitor inactiveand0for one inlearnorskip. A mismatch stops the launcher before anything starts. The launchers never change the file. - Learning runs. With only
learnandskipselected, the launchers run the learning monitors and exit. They start no SEI daemon, NvPSD Gateway, MDX client or SDM, and do not readnvpss.conf;--nvpss-confis ignored with a warning. A learning monitor never switches to active. In a run where the other monitor isactive, a learning monitor stops when it has written its baselines and the rest keeps running. - PCM runs in the container. Under
--runtime docker, SAIM and PCM both run inside the Safety Core container, which now also gets/var/run/docker.sock, the PCM baseline directory andpcm.log. Under--runtime hostboth run on the host. The container entrypoint starts PCM, so a plaindocker runneeds no PCM on the host. - New PCM options on both launchers:
--pcm-baseline-dir(default/opt/nvidia/psf/bin/pcm_baseline) and--pcm-config(default/opt/nvidia/psf/bin/pcm_monitor.cfg). The container’s--brokernow reaches PCM too, aslaunch_hoisa.sh --kafka-brokerdoes.--app,--sdm-configand--event-mappingalso apply to learning runs, where they select the decision maker bindings PCM records. - Supervision. Both launchers stop the run when an active monitor exits, when a learning
monitor fails, or when a monitor’s log can no longer be written.
launch_hoisa.shalso stops everything when the container exits, withError: PSF Docker container exited unexpectedly. - Every CCPLEX ATL and Proximity SDM needs an SDM configuration file that binds its situations
to event codes. Pass it with the new
--sdm-configoption, oflaunch_hoisa.shor of the container. Templates are installed in/opt/nvidia/psf/bin/as*.conf.sample. This applies to a plaindocker runthat starts the SDM in the container too. - Several decision makers on one stack.
--appacceptsatl,pxc,pxc,atl,atl,atl,pxc,pxcandatl_dual, with one--sdm-config, command receiver port and optional--sdm-log-fileper SDM. The container also accepts--app atl_proximity. - New
launch_hoisa.shoptions:--sdm-config,--sdm-log-file,--event-mapping,--sensor-pipelines-config,--atl-zone1-conf,--atl-zone2-conf,--zone2-cmd-rx-port,--halo-ip,--halo-port,--saim-mode,--pcm-mode,--pcm-baseline-dirand--pcm-config. - New container options:
--sdm-config,--sdm-log-file,--event-mapping,--sdm-external,--atl-zone1-conf,--atl-zone2-conf,--zone2_cmd_rx_port,--proximity_cmd_rx_port,--pair_ttl_ms,--pcm-mode,--pcm-baseline-dirand--pcm-config. --nvpss-confapplies to both runtimes. With--runtime hostit is passed to the daemon as--conf.--gateway-ipand--gateway-porthave no effect and should be left out.- The MDX client takes
--instance-id, which the launchers set to 1, and exactly one of--sensor-config(2D) or--sensor-pipelines-config(3D).
See Launchers and command-line options.
Perception Monitor is safety-relevant and required by default
- In 1.3 the Perception Monitor (PCM) was a preview whose
AI_PIPELINE_INVALIDonly suppressed event-driven decisions. Now every SDM, on the CCPLEX and on the FSI, latches its safe state onAI_PIPELINE_INVALID, and accepts a release only afterAI_PIPELINE_VALID. - The shipped
nvpss.confrequires PCM: start it with--pcm-mode active, or setrequired_perception_monitor = 0and use--pcm-mode skip. A required PCM that never registers latches every SDM about 4 minutes after the SEI daemon starts. - PCM sends its first
AI_PIPELINE_VALIDonly when its checks have real evidence, and re-sends the current verdict every 5 s by default (verdict_resend_ms). In LEARN mode it never reports. - PCM checks the data the SDMs decide on. Besides unknown cameras and frame rate, its data check now covers frame freshness (observation time stamps), the ROI and proximity data that the configured SDMs use, and ten consecutive undecodable messages. Bounding boxes, confidence and object classes no longer count.
- Setup problems are not faults. Docker unreachable, a Kafka error, no usable baseline or an
empty container list is logged and turns the affected check off instead of reporting
AI_PIPELINE_INVALID. A listed container that never appears is logged, not a fault; once seen, a container that stops with any exit code is a fault. The shipped container list now names five containers:vss-vios-nvstreamer,vss-vios-streamprocessing,vss-rtvi-cv,vss-behavior-analyticsandkafka. pcm_monitor.cfgneeds new sections.[fault_aggregator]withbad_ticks_to_invalidandgood_ticks_to_validis required, and so arebad_objects_percentandbad_frames_percentin[data_validation]while the data check is on. Without them PCM does not start in active mode. Start from the shipped file instead of a 1.3 copy.- New baseline location and format. PCM baselines live in
/opt/nvidia/psf/bin/pcm_baseline/. LEARN writes onepcm_baseline.cfgfor the whole camera set, including the decision maker bindings it was learned with; an active run with other bindings does not use it. Baselines learned into/opt/nvidia/psf/binby 1.3 are ignored, with a warning: learn again. - Reference PCM baselines for the three demo cameras ship as
pcm_<camera>_baseline.cfg.default. They fit--app atl,pxcwithatl_sdm_zone1.confandpxc_sdm_forklift.conf; other configurations need a learn run. - PCM log lines now read
[<date> <time>] [PCM][INFO|WARNING|ERR] <message>, in/var/log/psf/pcm.logunder both runtimes.
Safety AI Monitor
- Learn the SAIM baselines again after upgrading. SAIM refuses baselines from earlier releases
with
... was learned on a 0x0 tile grid but this build uses 15x15. Re-run LEARN to regenerate this baseline.and stops watching that camera. The camera then stays at its start-up state and is never counted as failed, so learn every camera before you rely on active mode. The shipped.cfg.defaulttemplates are new too; under the Docker runtime the container reads them from the host, so upgrade the Debian package together with the image. See Baselines. - Scoring per tile. SAIM also measures a 15×15 grid of tiles in every frame. A change in the whole-frame metrics counts only as far as the tiles agree on it, so moving forklifts and people no longer lower the score. A new area score drops below the low threshold when a blocked, saturated, blurred or noisy part of the image covers more than about 2.5% of the frame for about 5 s; the verdict follows after the debounce. The frame score is the lowest of the brightness and structure, colour and area scores. See What SAIM checks.
- Supported frame sizes. SAIM analyses 1920×1080 and 3840×2160 streams only, and a baseline
only at the size it was learned at. Other sizes stop that camera with
SAIM_INTERNAL_ERROR. See Known Limitations. - Lost streams are reported sooner and recovered without a restart. A stream ends after more
than 5 s without packets, instead of 60 s, and a trusted camera reports
SAIM_STREAM_DISCONNECTat once. In active mode SAIM retries a lost or unreachable camera every 5 s for as long as it runs, and starts watching it again when it comes back. It no longer gives up on a camera after six attempts, except when the camera’s URL is malformed, and no longer exits when no camera can be reached. See Camera failures. - RTSP control URL. SAIM sends
PLAY, keep-alives andTEARDOWNto the control URL the server returns, so servers that answer with a per-viewer URL, such as NVStreamer, work. - Fixed: on IGX Thor (PVA), SAIM could analyse a frame before it was fully copied.
Safe state
- Lost safety sources latch every SDM. If SAIM, PCM or a numbered MDX client stops being registered for any reason (hang, crash, exit, heartbeat loss), or a required one never registers, every SDM latches, and no release is accepted until that source is back. Restarting a monitor therefore needs a release afterwards.
- A source whose reports are all rejected latches every SDM, after
client_reject_error_thresholdconsecutive rejections, until the SEI daemon confirms it usable again. - Standing verdicts are re-sent. The SEI daemon re-sends every standing
SENSOR_INVALIDandAI_PIPELINE_INVALIDeach status interval, so an SDM that restarts latches again. - New fault reports. The gateway sends a recovery record (cause 14) once its link to the SEI
daemon is healthy again. When the SEI daemon’s queue for fault reports is full, a report displaces
an event from a distrusted source, or the daemon reports
ERRORuntil it can deliver it. On FSI, a request thatfsicom-agentcannot queue now latches the FSI SDM. - A safe release is evaluated against a whole request, so it cannot be accepted between one cause clearing and another being raised by the same request.
- Camera initialisation does not latch. Every SDM, on the CCPLEX and on the FSI, does not count
a camera as failed while SAIM initialises it, from SAIM’s
CAUSE_SAIM_INITreport until the camera reports healthy, including events that the SEI marks unhealthy in that time. ASENSOR_INVALIDwith any other cause still counts as a failure. See Sensor health.
See Causes and records and Safe-state model.
Wire format
- Schema version 5 (1.3 used 3). Every event carries a one-byte cause (0–18) instead of a rule
name string, and the event types after
EVENT_23are renumbered (SW_FAILis 24). A runtime built from another schema rejects every message, so install the CCPLEX packages, the image and the FSI firmware in the same maintenance action. - Logs print causes as numbers (
cause=4), on every runtime. Scripts that search for cause names must use the numbers in Causes and records.
Other changes
- The Proximity reference command receiver now supports the VST relay options
--vst_ipand--vst_port. proximity_sdmcan send its commands to a VST halo overlay too (--halo_ip,--halo_port;launch_hoisa.sh --halo-ip,--halo-port).- The runtime package and the image install a log rotation rule,
/etc/logrotate.d/pss, for/var/log/psf/*.logand/var/log/pss.log: daily, 7 old files kept, rotated early above 100 MB, compressed. - The runtime package installs
/opt/nvidia/psf/tests/pcm/test_monitor_launch.sh, a check of the launchers’ monitor handling that needs no Docker, Kafka, GPU orsudo.
Closed-loop testing
The closed-loop harness gains Safety Core proximity control of the simulated forklift, one scenario id per run, and multi-forklift fleets. The reference perception pipeline has been upgraded to VSS Warehouse Blueprint 3.3, and the simulation to NVIDIA Isaac Sim 6.1. The IGX Thor profiles (hil, base on IGX Thor) stay on VSS Warehouse 3.2.1 and the Safety Core 1.3 package in this release, so the Safety Core changes above do not apply to them yet. Some features remain in an alpha state and should not be used in production.
Proximity control in the closed loop
PSF_APP=pxcruns the Proximity SDM in the SIL loop on the 3D feed, andPSF_APP=bothruns it beside ATL in one container. The forklift controller obeys the decision — capped speed on REDUCE, stopped on STOP, stopped when the link goes silent — and the in-scene indicator shows the level. An optional floor line draws each scored pair with its separation. See SIL — 3D Perception.
Scenarios and fleets (breaking for the closed-loop harness)
- One
SCENARIOid names the scene, fleet file, cameras config and waypoint set, read by Isaac Sim and every forklift controller (scenarios.yaml). - Forklifts are spawned from
robots.yaml, which also carries each truck’sdrive:andproximity:behavior. TheFORKLIFT_*drive variables,FORKLIFT_WAYPOINTS_DIR,FORKLIFT_USE_NAMESPACEandFORKLIFT_ROBOT_IDare removed; waypoints moved towaypoints/<map>/<robot>.json. - The ROS surface is namespaced per robot:
/forklift_b/cmd_vel,/forklift_b/odom, TFforklift_b/odom→forklift_b/base_link, nodeforklift_b_controller. Scripts and RViz configs that name the 1.3 topics need the prefix. See Forklift Controller. - Added two-forklift runs through the
multi-robotcompose profile on the experimentalwarehouse_40x20scene.
VSS Warehouse Blueprint 3.3 upgrade
- The reference perception pipeline is VSS Warehouse 3.3.0 (GitHub release
v3.3.0), deployed with the VSS repository’svss-build-vision-aiskill or by hand. Its images are innvcr.io/nvidia/vss-coreand need Docker logged in tonvcr.iowith the NGC API key. VSS 3.3 ships the Sparse4D model and the loading-dock BEV calibration, so the separate R101 model install and the-3dcalibration dataset are gone. See Deploy AI Perception.
NVIDIA Isaac Sim 6.1
- The closed-loop harness runs on Isaac Sim 6.1 (
nvcr.io/nvidia/isaac-sim:6.1.0), with IRA configs at version 1.7.0; Isaac Sim 6.1 refuses 1.6.0. Isaac Sim 6.1 ships the upstream fix for the RTSP cold-starthas no capsrace.
1.3 EA
This early access (EA) release builds on 1.2.1 and includes major safety-path, perception-trust, event-ingestion, packaging, and deployment updates. The reference perception pipeline has been upgraded to VSS Warehouse Blueprint 3.2.1. Some features remain in an alpha state and should not be used in production.
Key Features and Enhancements
Fail-safe SDM lockout and validated release
- Added fault-safe SDM lockout and validated safe-release behavior for ATL and Proximity on CCPLEX and FSI.
Perception Container Monitor (Preview)
- Added Perception Monitor (PCM) to assess container and Kafka message data health and report status to SEI.
- PCM is Preview in 1.3 and must not be used to trigger a safe state.
- Its verdict does reach the decision path: when PCM reports the AI pipeline invalid, the reference SDMs treat perception as untrusted and log incoming events without processing them for decisions. A PCM fault therefore suppresses event-driven decisions rather than commanding a safe state, and the behavior is not validated for safety use in this release. Pass
--skip-pcmtolaunch_hoisa.shto leave PCM out.
Safety AI Monitor improvements
- Added PVA backend support for IGX.
- Added GPU/PVA backend improvements, additional frame-quality checks.
Command receiver logging
- The reference command receivers now write their verbose per-packet log to
/tmp/cmdrx.logand reserve the console for safe-state latch, clear, and release events, so the safe-release prompt is no longer buried in packet output. Use--log-file <PATH>to redirect the detail, or--no-log-fileto restore the previous console behavior.
Hardware-in-the-Loop (HIL) testing profile
- Added the
hilprofile, which splits the closed loop across two hosts: NVIDIA Isaac Sim, the communication layer, and the forklift controller run on an x86 stimulus host, while the VSS Warehouse perception stack and the Safety Core run on an NVIDIA IGX Thor. See Hardware-in-the-Loop Testing. - The safety decision returns to the simulation over UDP to the communication layer
on the stimulus host. The on-video VST overlay used by the
baseprofile is not driven in this profile. - Added a two-host preflight check that validates the address pairing, the command port, ssh reachability, and clock synchronization before bring-up.
Regression Testing Reporter (Preview)
- Added the Regression Testing Reporter, a closed-loop regression-testing layer that records NVIDIA Isaac Sim ground truth alongside the safety decision on one timeline, then scores each test case on whether the alarm was raised and cleared at the right moment. It runs on top of a deployed SIL stack and needs no manual labeling. See Regression Testing Reporter.
- Added its debug viewer, a browser tool that plays a graded test case back with the video, ground truth, perception, behavior events, and Safety Core state on a shared timeline. See Debug Viewer.
- Added the
hoisa-generate-regression-reportskill, which drives a multi-scenario run and produces the report.
Closed-loop forklift controller
- The
forklift-controllerservice now drives the forklift against its odometry feed. It steers toward the next point on the route, advances only once the forklift has actually arrived, and publishescmd_vel; the in-scene control graph converts what it receives and nothing more. Earlier builds played back fixed segments — a duration and a velocity per segment — from inside the Action Graph, with no position feedback. - Position feedback corrects wheel slip as it happens, so a long run holds its route instead of drifting off it.
- A
sloworstopcommand scales the controller’s velocity, and the forklift still drives to the same point on the route, so a slow-down costs time rather than distance. The safety decision itself does not change how the forklift drives — the controller is a stimulus generator. See Forklift Controller. - Routes are authored outside the simulation as JSON, so changing one no longer means editing the Action Graph. Added the Forklift Waypoint Generator, a web tool that draws a route over the warehouse floor plan and exports that JSON, including the origin that fixes the odometry frame. See Forklift Waypoint Generator.
NVIDIA Isaac Sim 6.0
- Upgraded the closed-loop testing harness from Isaac Sim 5.1 to 6.0.
- Breaking change. Isaac Sim now serves its camera streams over RTSP directly, so the
separate streaming relay is gone: the harness no longer starts a
mediamtxservice, and the stream URLs move from the relay to Isaac Sim’s own ports. Existing sensor registrations and any scripted stream URLs need updating. - Breaking change. Pedestrian behavior is authored as IRA 1.6 behavior trees; the legacy text command files are no longer read.
VSS Warehouse Blueprint 3.2.1 upgrade
- Upgraded the reference AI perception source from VSS for Warehouse Operations 3.2.0 to 3.2.1, and updated every documentation reference to match.
Agentic deployment
- The
hoisa-deploy-profileskill now covers thehilprofile, the IGX Thor Safety Core, and the 3D perception backend alongsidebaseandsil. - A second skill,
hoisa-generate-regression-report, ships alongside it; see Regression Testing Reporter (Preview).
Cloud deployment on NVIDIA Brev
- Added an NVIDIA Brev Launchable that provisions a cloud GPU instance with the driver, Docker, the NVIDIA Container Toolkit, and both repositories in place, then brings up the
silclosed loop from a single notebook and prints the evidence that the safety decision is following the simulated scene. Evaluating the blueprint no longer requires a host of your own. See Deploy on NVIDIA Brev.
3D perception profile
- Bug fixes and stability work on the 3D (BEV) perception profile. See SIL — 3D Perception.
1.2.1 EA
This early access (EA) update builds on 1.2. The NVIDIA Halos Outside-In Safety Blueprint source is published for integrators under NVIDIA license terms, the reference perception pipeline has been upgraded to VSS Warehouse Blueprint 3.2.0, and the packaging and deployment guidance has been refreshed. Some features remain in an alpha state and should not be used in production.
Key Features and Enhancements
Source availability
- The Safety Core source and packaging scripts are published so integrators can build and extend the reference applications. The files carry proprietary NVIDIA license headers: distribution and use are governed by the applicable NVIDIA license terms, and publication does not place the source under an open-source license.
VSS Warehouse Blueprint 3.2.0 upgrade
- Upgraded the reference AI perception source from NVIDIA Metropolis Blueprint for video search & summarization (VSS) for Warehouse Operations 3.1.0 to 3.2.0, including all related documentation references.
- VSS Warehouse Operations Blueprint is deployed from its public GitHub repository. Deploy AI Perception and the closed-loop (SIL/HIL) testing guides have been updated for the new deployment flow, service names, environment settings, and 2D and 3D perception configuration.
Deployment skill updates
- The deployment skill for coding agents (such as Claude Code, Codex, and Cursor) is part of the published repository as a single
hoisa-deploy-profileskill that deploys Halos by profile:base(Safety Core on an existing perception feed, on x86 or on NVIDIA IGX Thor with the decision maker on CCPLEX or FSI) andsil(full closed loop). The VSS Warehouse Operations Blueprint 3.2.0 as perception backend is deployed first via the separatevss-deploy-profileskill from the VSS Warehouse Blueprint.
Packaging and distribution updates
- Safety Core packages and container images are published in NGC under
nvidia/halos-outside-in(with the gated FSI firmware package undernvidia/outside-in-safety), at version 1.2.1. - The
fsicom-agenthost bridge ships in thepsf-tegra-fsi.debpackage.
Command receiver VST relay
- The ATL reference command receiver can optionally relay validated decision packets to a VST display destination with
--vst_ipand--vst_port. Both options are required together; relay delivery failures do not interrupt command reception or acknowledgement. The Proximity receiver does not implement this relay.
Safety-flashed IGX Thor deployment guidance
- Added guidance for deploying the VSS Warehouse Blueprint - 2D profile on safety-flashed IGX Thor systems, including container runtime and image pull workarounds. See Annex A for details.
1.2 EA
This is an early access (EA) release including a refactored architecture and new features. There are some features in an alpha state and should not be used in production.
Key Features and Enhancements
Safety Decision Maker on FSI for IGX
- Added support for running the Safety Decision Maker (SDM) on the Functional Safety Island (FSI) for IGX platforms.
Safety AI Monitor (Preview)
- Added Safety AI Monitor, supported on GPU only, to validate input video for Out-of-Distribution (OOD) and camera blockage detection.
Proximity monitoring reference application
- Added a new Proximity Monitoring reference application for proximity detection between a human operator and robot.
Safety Core updates
- Added performance and functional safety updates and bug fixes to the Safety Core components.
Closed-loop testing harness updates
- Added the groundwork for Hardware-in-the-Loop (HIL) testing (Preview). The deployable
hilprofile arrived in 1.3. - Added support for deployment support via agentic skills and coding agent platforms (Claude, Codex, etc.) (Preview)
- Added support for 3D vision AI perception pipeline (Preview)
1.1 EA
This is an early access (EA) release including a refactored architecture and new features. There are some features in an alpha state and should not be used in production.
Key Features and Enhancements
New reference applications for safety control
- Introduced a reference Automated Trailer Loading (ATL) application that uses the Safety Core to control a forklift’s safety function based on outside-in perception of humans inside and around the trailer.
Software-in-Loop (SIL) testing support
- Added end-to-end Software-in-Loop (SIL) testing that validates the Halos Outside-In Safety Blueprint system using Isaac Sim.
- SIL runs the real VSS Warehouse Operations Blueprint, Safety Event Integrator, Safety Decision Maker, and communication layer against simulated warehouse, forklift, humans, and camera streams to safely exercise safety logic and failure scenarios.
Multi-camera and multi-pipeline fusion
- Enhanced Safety Event Integrator (SEI) logic to support fusion of events from multiple cameras and redundant perception pipelines.
Outside-In safety with VSS Blueprint
- Leveraged the VSS Blueprint (Warehouse Operations 2D Vision AI profile) to use RT-DETR-based detection, tracking, and ROI/tripwire analytics as the primary safety perception source.