Skip to content

Releases: Niox1337/rainbow-tensor

Rainbow Tensor 1.3.1

Choose a tag to compare

@Niox1337 Niox1337 released this 22 Sep 22:38
v1.3.1
ab4796b

Notebook exploration is included in the standard installation. Both ipywidgets and anywidget are required dependencies, and the interactive extra has been removed.

The agent instructions now prefer interactive NumPy explanations in supported notebooks. Examples let learners select result cells, follow source highlights, compare repeated contributions and explore recorded operation chains. Scripts and hosts without live widget support can use focused SVG exports.

Install or upgrade:

python -m pip install --upgrade rainbow-tensor

Other changes:

  • README, documentation and notebook examples use the standard installation
  • Missing widget packages report an incomplete installation with a repair command
  • Widget tests no longer skip missing required dependencies
  • Wheel and source distribution checks always validate interactive updates and cleanup

Rainbow Tensor 1.3.0

Choose a tag to compare

@Niox1337 Niox1337 released this 22 Sep 22:05
v1.3.0
84f5e14

Version 1.3.0 adds cross-operation element provenance, clickable result exploration, automatic themes and extensible language catalogs.

The rewritten README provides a complete starting point. The new LLM lesson guide includes a reusable prompt and runnable templates for beginner tensor explanations.

Install with python -m pip install --upgrade rainbow-tensor, or use python -m pip install --upgrade "rainbow-tensor[interactive]" for notebook controls.

Added

  • Automatic themes follow the SVG viewer's light or dark preference, including saved SVG files and operand colours
  • Automatic language selection follows the Python process environment and system locale, with explicit overrides
  • English and Simplified Chinese catalogs cover visual labels, hover text, explanations, accessibility descriptions, and notebook controls
  • New languages are discovered from UTF-8 JSON catalogs without adding a Python registry entry, and external catalogs can be loaded from a file or directory
  • Regional language fallback, English fallback for missing messages, and validation of translation keys and placeholders
  • A settings notebook and translation contribution guide
  • A group colour notebook and architecture guide with reproducible index-query benchmarks
  • Index result exploration with explore(index, ...), preserving distinct repeated positions and reverse-slice order while highlighting the corresponding source element
  • Static index(..., focus=...) comparisons with a one-source coordinate trace, bounded previews, and translated provenance text
  • An index explorer notebook covering repeated gathers, reversed slices, scalar outputs, and empty results
  • Explicit Flow recipes trace output elements across indexing, shape changes, combining, reductions, matmul, and einsum without materialising intermediate arrays
  • Bounded provenance trees preserve repeated contribution paths, output ports, and each operation's arithmetic grouping
  • Clickable result cells, Enter and Space activation, and coordinate controls explore individual operations or complete recorded flows
  • Optional focus explains source coordinates for all shape-changing and combining views
  • A worked operation-origins notebook and a reusable LLM prompt guide for beginner visualizations

Changed

  • The default theme and language are now auto, while explicit settings remain available
  • Panel widths account for long captions and full-width characters
  • Reduction groups and combining operands use colours generated from their logical IDs, with stable focus behaviour and paired light and dark paints
  • SVG text and paint primitives, tensor drawing, and panel composition have separate modules while existing renderer imports remain available
  • Equally shaped advanced-index arrays use direct candidate-set intersection, improving duplicate-gather previews without adding a native dependency
  • Repeat uses a constant-size mapping for uniform counts and prefix boundaries for variable counts instead of allocating one source position per output copy
  • Flow value requests plan recursive work before array reads, preserve live input values, and report skipped computation separately from structural truncation
  • The interactive extra includes anywidget for result-cell activation while static rendering remains independent of widget imports
  • The README now provides a complete entry point for installation, operation tracing, notebook interaction, supported APIs, and contributions
  • Documentation builds use the package version directly and fail on import errors instead of showing an outdated fallback version

Rainbow Tensor 1.1.1

Choose a tag to compare

@Niox1337 Niox1337 released this 21 Sep 19:06
9cb35b4

Rainbow Tensor 1.1.1 makes preview work more predictable and validates the packages that users install.

Highlights:

  • Integer arguments consistently accept Python and NumPy integers and custom index values, while rejecting booleans and floats before reading array data.
  • Repeated advanced-index selections use shared-coordinate lookups instead of repeated candidate scans.
  • max_total_terms=100000 bounds the combined calculation cost of visible outputs, alongside max_terms=10000 for each output.
  • Skipped output values do not grow the cache.
  • Source archives include all 39 SVG reference fixtures. Both wheel and source installations are checked in isolated environments before publication.

Compatibility:

  • Set both max_terms=None and max_total_terms=None to remove calculation limits.
  • Evaluation metadata now includes planned output_count, total_terms, and reason fields, with scope="per_output_cell_and_preview".
  • Source-panel reads are separate from output calculations. Term limits are not fixed runtime or memory guarantees for arbitrary backends.

Install:

pip install --upgrade rainbow-tensor==1.1.1
pip install --upgrade "rainbow-tensor[interactive]==1.1.1"

Validation covers all 978 test cases across local environments, real CPU checks for PyTorch, JAX, and TensorFlow, fresh package installations, and the updated tutorial.

Rainbow Tensor 1.1.0

Choose a tag to compare

@Niox1337 Niox1337 released this 21 Sep 18:32
27685a8

Rainbow Tensor 1.1.0 makes tensor results easier to inspect and explain in notebooks.

Highlights:

  • Compare an indexed source with its ordered result, including repeated picks, reverse slices, scalar results, and empty results.
  • Trace individual outputs of sum, mean, matrix multiplication, and einsum back to their contributing coordinates.
  • Explore output coordinates with optional notebook controls and export the current view as SVG.
  • Inspect available strides, contiguity, and ownership metadata.
  • Keep large previews bounded with compact index mappings and per-output calculation limits.

Compatibility:

  • Index selections are compact iterables. Convert them to a list only when all coordinates are needed.
  • Numerical previews use Python scalar arithmetic, which can differ from backend dtype accumulation, rounding, and overflow.
  • Scalar and zero-sized source arrays remain unsupported. Scalar and empty indexing results are supported.

Install:

pip install --upgrade rainbow-tensor==1.1.0
pip install --upgrade "rainbow-tensor[interactive]==1.1.0"

Validation includes the full local regression suite, executed tutorials, wheel installation, and independent CPU checks for PyTorch, JAX, and TensorFlow.

Rainbow Tensor 1.2.0

Choose a tag to compare

@Niox1337 Niox1337 released this 22 Sep 08:52
2b4c8d4

Added

  • Scalar sources with shape () and empty sources with zero-length dimensions work across shape views, indexing, transforms, arithmetic previews, and memory inspection
  • Empty sums and contractions produce zero, empty means show NaN, and empty outputs have no trace or focus controls
  • Scalar take indices remove an axis, and scalar inputs support repeat, take, stacking, and broadcasting
  • A scalar and empty tensor notebook compares one value, zero values, empty contribution groups, and empty results
  • sum and mean accept an omitted axis or axis=None for all axes, a tuple of axes, negative axes, and an empty tuple for an unchanged shape
  • Keyword-only keepdims=True retains reduced axes at length one for broadcasting, with those result dimensions marked in the highlight colour
  • Multi-axis focus identifies the full source group, reports the product of reduced dimensions as the mean divisor, and traces terms in source row-major order regardless of axis tuple order
  • Reduction metadata records normalized axes, keepdims, and the number of source terms per output
  • A beginner notebook connects reduction shapes to row normalisation, broadcasting, output traces, and optional interactive controls

Changed

  • Custom renderers receive scalar panel shapes and coordinates as () instead of the former (1,) display surrogate
  • Empty previews avoid element reads and large coordinate or repeat allocations
  • Multi-axis source selections and traces stay compact, including when the contributing group is too large to evaluate within the preview budgets
  • CPU backend, interactive, and installed-distribution checks cover all-axis, multi-axis, and empty-axis reductions with and without retained dimensions

Fixed

  • Scalar sum and mean captions show the logical result shape () instead of the single-cell display shape (1)