Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ OpenDPD is a PyTorch framework for power amplifier (PA) modeling and digital pre
## What's new

<!-- --8<-- [start:studio-features] -->
**OpenDPD 2.2.10** improves Studio security and reliability: bounded uploads, faster built-in dataset browsing, safer worker startup, and hardened publishing and hosted services. Signal Analyzer supports real or complex CSV signals and connects directly to Signal Generator and Virtual PA.
**OpenDPD 2.2.11** makes signal generation easier: 1,186 compact matrix presets, multi-preset datasets, optional ideal input filtering, automatic Virtual PA dataset creation, and CSV/ZIP downloads with a standalone PA replay script. Signal Analyzer accepts real or complex CSV signals.

**Signal Generator → PA Library → PA training → DPD training/testing.** Generate a PA input, simulate its output with one of nine Virtual PAs, or use existing input/output data. Standard presets remain uncoded engineering stimuli; Wi-Fi 8 is experimental.
**Signal Generator → PA Library → PA training → DPD training/testing.** Generate a PA input, simulate its output with one of nine Virtual PAs, or use existing input/output data. Standard presets are uncoded engineering stimuli; each capture keeps its own sample rate and length.

[2.2.10 release notes](https://lab-emi.github.io/OpenDPD/releases/release-notes-2.2.10/) · [Signal Generator](https://lab-emi.github.io/OpenDPD/guides/signal-generator/) · [Signal Analyzer](https://lab-emi.github.io/OpenDPD/guides/signal-analyzer/). During the hosted trial, **2 hours of inactivity clears that IP’s temporary workspaces**; the top bar shows the expiry time.
[2.2.11 release notes](https://lab-emi.github.io/OpenDPD/releases/release-notes-2.2.11/) · [Signal Generator](https://lab-emi.github.io/OpenDPD/guides/signal-generator/) · [Signal Analyzer](https://lab-emi.github.io/OpenDPD/guides/signal-analyzer/). During the hosted trial, **2 hours of inactivity clears that IP’s temporary workspaces**; the top bar shows the expiry time.
<!-- --8<-- [end:studio-features] -->

[Feature history](docs/whats-new.md) · [Verified platform status](docs/releases/support-matrix.md)
Expand Down Expand Up @@ -70,7 +70,7 @@ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | ie
mkdir opendpd-lab
cd opendpd-lab
uv venv --python 3.12
uv pip install --python .venv "opendpd==2.2.10" --torch-backend=auto
uv pip install --python .venv "opendpd==2.2.11" --torch-backend=auto
uv run --no-project --python .venv opendpd gui
```

Expand Down Expand Up @@ -108,7 +108,7 @@ uv run --no-project --python .venv opendpd gui

[PA Library guide](docs/guides/virtual-pa-library.md) · [Reading signal-chain PSD plots](docs/guides/signal-chain-spectra.md)

![Studio 2.2.10: Signal Analyzer with independent spectrum and spectrogram](pics/studio-signal-analyzer.png)
![Studio 2.2.11: compact waveform presets grouped by bandwidth, QAM and OFDMA channels](pics/studio-signal-generator.png)

## Choose your next step

Expand Down
9 changes: 9 additions & 0 deletions docs/architecture/public-studio.md
Original file line number Diff line number Diff line change
Expand Up @@ -403,3 +403,12 @@ The GPU service retains rootful Podman on this installation, with an explicit ca
The guest installer moves an existing `OPENDPD_GPU_TOKEN` value into `/etc/opendpd-web-gpu.token`, readable only by root and the worker group, and stores only `OPENDPD_GPU_TOKEN_FILE` in the environment file. New installations should use the file setting directly. Keep public dataset publication disabled unless a separately reviewed submission identity and approval process are configured.

The VM administrator has passwordless sudo solely inside the isolated disposable VM; the host administrator's SSH key is root-readable only. Provision the baseline from a reviewed clean image with no user captures, credentials or histories. The production installer refuses to replace an existing VM disk.


## Multi-preset generation in 2.2.11

`POST /signal-generator/batches` accepts up to 16 distinct presets and four million total samples. `POST /pa-library/datasets` validates all sources before registering any datasets, simulates each at its own sample rate, and saves a collection. Captures use ordinary versioned dataset storage so existing training/evaluation operates on one selected capture with truthful frequency metadata. The first capture is the parent; other captures refer to its ID. The parent manifest records membership, sample counts and independent sample rates. Failed registration removes only datasets created by that operation.

The two new mutations have explicit public allowlist entries, schema validation, per-IP rates, shared numeric admission and aggregate disk estimates. Custom-dataset capability gating also covers the one-step endpoint. Authenticated `GET /datasets/{id}/download` returns a CSV or collection ZIP and shares heavy-read admission. `collection=false` selects a single capture/version. Export reads verify file membership and hashes; generated replay source is frozen and hash checked, never evaluated by the server. Response completion removes temporary export files. No user-supplied executable code is accepted.

Deploy the same reviewed 2.2.11 commit to the API, GPU agent/container and static site after draining pending jobs. Retain source/image rollback copies; a server restart expires temporary sessions. Validate multi-preset generation, dataset navigation, authenticated ZIP download and a CUDA training/testing job after deployment.
Loading
Loading