evo-output-serialization

SkillDev tools

Serializes egomotion labels to JSON with frame-interval keys and binary masks to NPZ in CSR sparse format using only NumPy.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the evo-output-serialization skill

What this skill tells your AI

The instructions your AI receives, as published by openlair/openskill in tasks-evolved/dynamic-object-aware-egomotion/environment/skills/evo-output-serialization/SKILL.md and read by ahel’s review.

Serializes analysis results to the required output formats.

Key Functions

  • dense_to_csr_manual(dense_mask) — Converts 2D bool array to CSR (data, indices, indptr)
  • save_csr_masks_npz(mask_list, output_file, shape) — Saves masks to NPZ with CSR format
  • export_motion_labels_json(motion_results, output_path) — Saves motion labels to JSON

Usage

import sys
sys.path.insert(0, '/app/environment/skills/evo-output-serialization/scripts')
from utils import save_csr_masks_npz, export_motion_labels_json

# motion_results: list of (sample_idx_prev, sample_idx_curr, labels_list)
export_motion_labels_json(motion_results, '/root/pred_instructions.json')

# mask_list: list of boolean 2D arrays, shape: [H, W]
save_csr_masks_npz(mask_list, '/root/pred_dyn_masks.npz', shape=[H, W])

CSR Format Details

For each frame i, stores:

  • f_{i}_data: bool array of True values
  • f_{i}_indices: int32 column indices of nonzero elements
  • f_{i}_indptr: int32 array of length H+1 (row pointers)
  • shape: [H, W] as int32 array

JSON Format

{
    "0->1": ["Pan Right"],
    "1->2": ["Stay"],
    ...
}

Keys are "sample_idx_prev->sample_idx_curr" (0-based sample indices).

Signals

GitHub stars
89
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
evo-output-serialization
Source
github.com/openlair/openskill