Skip to content

Releases: Gamakon/UltraDim

UltraDim 0.5.0

Choose a tag to compare

@andrew-gamakon andrew-gamakon released this 29 Sep 13:40

UltraDim 0.5.0 — the facet index, and one abi3 wheel per platform

UltraDim is an analytical vector database for ultra-wide data, shipped as a compiled Python wheel. The database runs in-process: no server, no port.

import ultradim
db = ultradim.UltraDim("./db")
print(len(db.capabilities()))   # 205 RPCs, all reachable via db.call_json(...)

What is in this release

0.5.0 adds the facet index and rebuilds the packaging.

Engine:

  • The facet index. GetUltradimV23RowIdsByFacet selects rows by a payload filter — a date range, a keyword, a prefix, or a conjunction — from a sorted per-facet column beside the payloads, without building a search index first. Measured against the full payload scan it replaces, at 5,000,000 rows with three facets: 43× for a prefix that selects half the family, 3602× for a one-day window of 13,699 rows. Every facet a row carries is indexed on the write path.
  • CreateSyntheticBank generates its points on the GPU, with a CPU fallback when no GPU is present.
  • Half-life decay for the rolling k-means lineage.
  • cell_cap, a parameter that bounds how many rows the settle gathers per cell.

Packaging:

  • One wheel per platform serves every CPython from 3.12 onward. The extension is now built against CPython's stable ABI (abi3, floor 3.12), so each wheel is tagged cp312-abi3 and carries ultradim/_ultradim.abi3.so. The 0.4.0 wheels were tagged cp312-cp312; pip refused them on 3.13 and later.
  • The wheel has no dependencies. 0.4.0 declared Requires-Dist: numpy, which pip fetched although nothing in the wheel imports it. The MCP server, the harness and the examples still need numpy and carry it themselves.
  • No compiled bytecode ships. 0.4.0 carried a 3.12-specific .pyc; a maturin exclude keeps it out.
  • The licence is a PEP 639 expression. The metadata declares the SPDX identifier PolyForm-Noncommercial-1.0.0 in the License-Expression field, with no OSI classifier (PolyForm Noncommercial is not OSI-approved).

The API has 205 RPCs, one more than 0.4.0's 204: GetUltradimV23RowIdsByFacet.

Licence

Noncommercial use (personal study, research, teaching, charities, public research bodies, government) is free under the PolyForm Noncommercial License 1.0.0. Any commercial use, including internal use by a for-profit business, needs a commercial licence from Gamakon Ltd. Contact jesung@gamakon.ai or andrew@gamakon.ai. The licence text is LICENSE; the two-track notice is LICENSES/LICENSE.md. Both ship in this repository and inside the wheel.

Install

CPython 3.12 or newer. Pick the wheel for your platform and install it by path; it has no dependencies:

python3.12 -m venv .venv && source .venv/bin/activate   # or any CPython 3.12 or newer
pip install ./ultradim-0.5.0-cp312-abi3-macosx_11_0_arm64.whl        # macOS, Apple silicon
pip install ./ultradim-0.5.0-cp312-abi3-manylinux_2_28_x86_64.whl     # Linux x86_64, glibc 2.28+
pip install ./ultradim-0.5.0-cp312-abi3-manylinux_2_28_aarch64.whl    # Linux arm64, glibc 2.28+

A GPU is used when one is reachable (Metal on macOS, Vulkan on Linux). Without a GPU the database loads, ingests, indexes and searches; UMAP fits, k-means clustering and k-means lineages return an error. See docs/GPU_SETTINGS.md.

Other platforms — Windows, Intel Mac — are available on request: write to jesung@gamakon.ai or andrew@gamakon.ai.

Verify the download

File sha256
ultradim-0.5.0-cp312-abi3-macosx_11_0_arm64.whl c0e13f519859710f1a2f1662087fe0e8a9ddaa718d625387ba00800fb404942a
ultradim-0.5.0-cp312-abi3-manylinux_2_28_aarch64.whl 14c6e6edceee80ad8d883737ee7fa01511181b1105ac26a161ecd02242e07730
ultradim-0.5.0-cp312-abi3-manylinux_2_28_x86_64.whl b49af3d32209024fcd6102ac69e296ebdd722f16b623eee4e60881b5011f1ab0

Verified

Each wheel installs and runs on CPython 3.13 with no dependencies — only UltraDim in pip list — and on 3.12 from the same file: capabilities() returns 205 and HealthCheck returns {"status":1}. The extension module was recompiled against abi3, so its sha256 differs from 0.4.0's. The engine's search code is unchanged from 0.4.0, so search quality is unchanged.

One consequence for the MCP server

The MCP server (mcp/ultradim_mcp_server_v0_5_0.py) imports numpy. Until 0.4.0 numpy was pulled in as the wheel's declared dependency; now that the wheel declares none, an MCP install must add numpy explicitly: pip install <wheel> numpy. The examples install numpy themselves and are unaffected.

UltraDim 0.4.0

Choose a tag to compare

@andrew-gamakon andrew-gamakon released this 08 Sep 15:49

UltraDim 0.4.0 — compiled wheels, three platforms

UltraDim is an analytical vector database for ultra-wide data, shipped as a compiled Python wheel. The database runs in-process: no server, no port.

import ultradim
db = ultradim.UltraDim("./db")
print(len(db.capabilities()))   # 204 RPCs, all reachable via db.call_json(...)

What is in this release

  • The engine is identical to 0.3.12: 204 RPCs, 46 MCP tools, no behaviour change.
  • The wheel now carries its licence inside the package at ultradim/LICENSES/. Earlier wheels shipped no terms.

Licence

Noncommercial use (personal study, research, teaching, charities, public research bodies, government) is free under the PolyForm Noncommercial License 1.0.0. Any commercial use, including internal use by a for-profit business, needs a commercial licence from Gamakon Ltd. Contact jesung@gamakon.ai or andrew@gamakon.ai. Full terms: LICENSES/LICENSE.md in this repository and inside the wheel.

Install

Python 3.12 only. Pick the wheel for your platform and install it by path; numpy comes with it:

python3.12 -m venv .venv && source .venv/bin/activate
pip install ./UltraDim-0.4.0-cp312-cp312-macosx_11_0_arm64.whl        # macOS, Apple silicon
pip install ./UltraDim-0.4.0-cp312-cp312-manylinux_2_28_x86_64.whl     # Linux x86_64, glibc 2.28+
pip install ./UltraDim-0.4.0-cp312-cp312-manylinux_2_28_aarch64.whl    # Linux arm64, glibc 2.28+

A GPU is used when one is reachable (Metal on macOS, Vulkan on Linux). Without one the database still runs, slower on clustering and index builds.

Verify the download

File sha256
UltraDim-0.4.0-cp312-cp312-macosx_11_0_arm64.whl 5cd3e37b62119b132f5e911331cd396299de93ff630d7ee5efb610f5d67575e5
UltraDim-0.4.0-cp312-cp312-manylinux_2_28_aarch64.whl 579be5bbd599b074c029d8cd74d559c6632f0c6d90493849ffc3cd9aeee59e55
UltraDim-0.4.0-cp312-cp312-manylinux_2_28_x86_64.whl ea961bc9d068aceee255222f2b99ac52f776276a72d8858f766d26e2e1e84a3f

Each wheel has a .sha256 file beside it; shasum -a 256 -c <file>.sha256 (macOS) or sha256sum -c (Linux) prints OK on a match.