Skip to content

v1.10

We're excited to announce version 1.10 of K SYSTEM, introducing powerful new floor-based tracking capabilities and enhanced visualization tools. This update gives you greater control over vertical positioning and improves spatial awareness during shows.

Explore the new features below!

Show Explorer - Target Parameters

Target Floor Offset (Floor Z)

  • Per-Target Floor Z Offset: Each target now has its own configurable Floor Z offset, allowing you to compensate for different floor heights or stage levels in your venue. This is especially useful for multi-level stages, ramps, or when performers need to be tracked at different vertical offsets.
  • Backward compatible: Older show files automatically default to Floor Z = 0
  • This affects the PSN output when in 2D mode as well as the new floor reprojection visualizations.

How Floor Z Works

The Floor Z value is added to the Manual Z height in 2D mode, giving you fine-grained control over vertical positioning:

  • Manual Z: Controls the height of the target above the floor (typically the performer's height)
  • Floor Z: Offsets the floor level itself (e.g., +0.5m for a raised platform, -0.3m for a sunken stage)
  • Final Z Position = Manual Z + Floor Z

Configuration

Floor Z can be controlled through multiple interfaces:

  1. UI Control: Accessible in the Target Outliner under the "2D Mode" section

    • Range: -20m to +20m
    • Default: 0m (ground level)
  2. KratOSC: Control via OSC commands for automation

    • URI: /kratos/targets/<target_name>/floorZ
    • Type: float
    • Range: -20 to +20
  3. JavaScript Actions: Programmatically control via the scripting engine

    • Property: target.floorZ
    • Allows dynamic floor offset adjustments based on show logic

Use Cases

  • Multi-level Stages: Different performers on different stage levels can have appropriate floor offsets
  • Ramps and Stairs: Compensate for gradual elevation changes
  • PSN Output: Ensures correct 3D positioning when outputting to PosiStageNet in 2D mode
  • Camera Reprojection: Floor markers and vertical lines display at the correct elevation

Target Home Position

Each target now has a configurable Home Position — a saved XYZ coordinate that the target can be recalled to at any time. This is useful for resetting targets to predefined positions between scenes or acts.

  • Save: Set the home position from the Target Outliner or via the target card context menu
  • Recall: Double-click a target in the matrix to move it to its home position, or set target.position = target.homePosition in JavaScript
  • The home position is persisted in the show file

Configuration

  • UI: Editable in the Target Outliner; save current position as home via context menu
  • KratOSC: /kratos/targets/<target_name>/homePosition (vec3: x, y, z)
  • JavaScript: target.homePosition (read/write)

Manual Switch Z Mode

A new per-target setting Manual Switch Z Mode controls how the Z coordinate is handled when a target transitions from tracker mode to manual mode. Three modes are available:

  • Default (0): Legacy behavior — the full XYZ position is captured from the tracker, including the tracker's Z
  • Use Manual Z (1): XY is captured from the tracker, but Z is set to Manual Z + Floor Z instead of the tracker's Z
  • Capture Z (2): The tracker's Z is captured into the Manual Z slider (manualZ = trackerZ - floorZ), so the slider reflects the real tracker height

This is useful when you want precise control over how Z behaves during manual/tracker transitions.

Configuration

  • UI: Enum selector in the Target Outliner, below the "Mode 2D" switch
  • KratOSC: /kratos/targets/<target_name>/manualSwitchZMode (int: 0, 1, or 2)
  • JavaScript: target.manualSwitchZMode (read/write)

Target Parameters Reorganization

  • Reorganized 2D Mode Section: Mode 2D toggle and Floor Z control are now grouped together in a dedicated section for better usability
  • Intuitive Controls: Floor Z uses a number field with clear min/max bounds and meter units

Manual Target Customization (Scale & Opacity)

Manual targets can now be customized with independent scale and opacity settings, just like automatic (Kore) trackers. Two new sliders are available in the Show Explorer under "Manual Target visualization":

  • Manual Target Scale (0.1 - 1.0): Controls the size of the manual target icon on the video view
  • Manual Target Opacity (0.1 - 1.0): Controls the transparency of the manual target when not hovered

These settings are persisted in the show file and replicated across instances.

New Feature: Auto Exposure for Kapta Cameras

You can now let your Kapta cameras handle exposure automatically! A new Auto checkbox appears next to the Exposure field in the Kapta camera settings within the Show Explorer.

  • Check "Auto" to let the camera continuously adapt to changing lighting conditions — no need to adjust the exposure by hand
  • Uncheck "Auto" to return to manual control — the last value calculated by the Auto Exposure algorithm is kept.

KratOSC Behavior :

  • Sending 0 using KratOSC enables the Auto Exposition. Any non-zero value will disable it.

This is especially useful for dynamic stage environments where lighting can change frequently, ensuring your cameras always have optimal exposure without constant manual adjustments.

Show Explorer - BeaKon Data Recording

The recorder module now captures additional BeaKon data for diagnostics and analysis:

  • Anchor Positions: BeaKon anchor positions are saved in recordings
  • Range Reports: BeaKon range reports are saved in recordings

Kapta View - Target Visualization

Three new visualization options help you understand target positioning in 3D space by projecting tracking data onto the floor plane:

Show Manual Track Floor Reprojection

Displays floor projection markers for manually controlled targets. When enabled, you'll see:

  • A cross marker on the floor showing the target's X/Y position
  • A vertical line connecting the floor marker to the target's actual 3D position
  • Useful for understanding where manually positioned targets are in relation to the stage

Show Track Floor Reprojection

Displays floor projection markers for tracker-based targets. Shows the real-time position of hardware trackers:

  • Visualizes where tracking hardware (UWB tags, Kore trackers, etc.) is positioned
  • Helps identify tracking discrepancies or calibration issues
  • Particularly useful during setup and troubleshooting

Show Processed Track Floor Reprojection

Displays floor projection markers for predicted target positions. This shows where the system predicts targets will be:

  • Incorporates prediction, smoothing, and kalman filtering
  • Visualizes the final processed position that drives automation
  • Essential for understanding the complete tracking pipeline

Floor Reprojection Notes

  • All floor projections now respect each target's individual Floor Z offset
  • The vertical line extends from the floor (at Floor Z height) to the target's actual position
  • Floor markers are only displayed when the target is more than 0.1m above the floor level
  • Marker colors match the target colors for easy identification

Target Patcher - Improved Visibility

The target-tracker matrix now provides clearer visual feedback when a tracker has lost validity. Lost trackers display with distinct disabled styling (dimmed text and icon), and the matrix pane highlights targets with lost trackers using an animated error indicator instead of a simple red border.

Modules - PSN Configuration BugFix

A bug was preventing PSN modules from properly updating their network configuration at runtime. Changes to the Multicast Address and Port are now applied immediately, without requiring an application restart.

Modules - New HTTP Module

A new built-in HTTP module is now available, enabling REST API integration directly from Kratos actions. This module allows you to communicate with external web services, APIs, and automation systems using standard HTTP methods.

See the Modules documentation for complete configuration and usage details.

Action Engine - New Parameters

Enum Action Parameter

A new Enum parameter type is available for actions and modules. Enum parameters let you define a fixed set of selectable values displayed as a dropdown in the UI.

  • Create enum parameters from JavaScript using addEnum(name, values, defaultIndex)
  • Access the current value or index programmatically
  • Fully supported in OSC dispatch and feedback

Duplicate Action Area

You can now duplicate Action Areas directly from the Action Area view. Select an Action Area and click the duplicate button in the toolbar to create a copy with all its properties (position, scale, rotation, behavior). The duplicated area is created in a disabled state with " - Duplicate" appended to its name, allowing you to safely adjust it before enabling.

This complements the existing duplicate functionality for Actions and Action Groups.

KratOSC - Simulator & Playback Control

The simulator and playback engine can now be controlled remotely via OSC, enabling automation of recording playback without touching the UI.

See the KratOSC documentation for the full list of available properties.

Other

FPS Counter

Enable Show FPS Counter from the toolbar menu to display a real-time frame rate overlay.

File Logging

You can now save all application logs to disk for offline analysis and troubleshooting. Enable Log To File from the toolbar menu — once activated, Kratos continuously writes logs to files in your application data folder.

  • Post-session debugging: Review logs after the fact, including messages that scrolled past in the console
  • Support: Share log files with the Naostage support team for faster diagnosis
  • Automatic rotation: Log files are automatically rotated (10 MB max, up to 5 backups) so they never fill your disk
  • The setting is remembered across sessions

"Manual Tracker" Renamed to "Manual Target"

All references to "Manual Tracker" in the UI and documentation have been renamed to "Manual Target" for consistency. Existing show files are migrated automatically.

Updated Default Show File

The default show file has been updated with improved defaults:

  • Link selection is enabled between the Kapta view and the Show Explorer in the Kapta page
  • Tracker colors are white by default for a cleaner and more accessible view
  • Processed tracks floor reprojection is disabled by default

Bug Fixes

  • Disabled actions reacting to external changes: Actions that were disabled at startup could still react to parameter changes coming from OSC or other actions. Disabled actions now correctly ignore all external updates.
  • Disabled Action Areas still triggering events: Disabled Action Areas could still detect targets entering or leaving the area. They are now fully inactive until re-enabled.
  • actionArea.isInside() incorrect on disabled areas: The isInside() check on Action Areas could return incorrect results when the area was disabled. It now correctly returns false for disabled areas.
  • Intermittent errors in the action engine: The action engine could occasionally experience unexpected behavior, causing sporadic errors in JavaScript actions. This has been fixed, improving overall stability. You should no longer need try/catch blocks to work around these issues.
  • KratOSC not dispatching Target, Module, and Action Area parameters: Action parameters of type Target, Module, or Action Area were silently ignored when set via OSC. These parameter types are now correctly handled, with descriptive error messages if no match is found.
  • Copied targets not outputting PSN data: When using the copy target action, the destination target could fail to output PSN data under certain conditions. This has been fixed.
  • Clear mask button not working: The clear mask button in the Show Explorer was not functioning correctly. This has been fixed.
  • Simulator timecode sync not working (regression since v1.8): Recordings made with timecode sync enabled would play from timecode 0 instead of syncing to the recorded timecode value. The simulator now correctly reads the timecode metadata from .kramera files and syncs playback accordingly. The simulator banner also displays the expected start timecode when sync is enabled.