#[cfg(feature = "rerun")]
pub fn send_blueprint(rec: &rerun::RecordingStream) {
use rerun::blueprint::{
Blueprint, BlueprintActivation, ContainerLike, Horizontal, Spatial3DView, TimeSeriesView,
Vertical,
};
let claim_chart: ContainerLike = TimeSeriesView::new("GKR Claim Descent")
.with_origin("/")
.with_contents([
"gkr/claim",
"gkr/walk/**/claim",
"proof/progress",
])
.into();
let stats_chart: ContainerLike = TimeSeriesView::new("Layer Stats & GPU")
.with_origin("/")
.with_contents([
"inference/stats/**",
"gpu/device_*/**",
"proof/binding_ms",
])
.into();
let right_col: ContainerLike = Vertical::new([claim_chart, stats_chart])
.with_row_shares(vec![1.0_f32, 1.0_f32])
.into();
let walk_3d: ContainerLike = Spatial3DView::new("ZK Proof Walk")
.with_origin("/")
.with_contents([
"circuit/**", "gkr/walk/**", "gpu/cluster", ])
.into();
let root = Horizontal::new([walk_3d, right_col])
.with_column_shares(vec![3.0_f32, 2.0_f32]);
let blueprint = Blueprint::new(root)
.with_auto_layout(false)
.with_auto_views(false);
let _ = blueprint.send(
rec,
BlueprintActivation {
make_active: true,
make_default: false,
},
);
let _ = rec.log_static(
"logs/proof",
&rerun::TextLog::new(
"ZK Proof Stream ready — waiting for proof events.\n\
\n\
Entity layout:\n\
• circuit/** — 3D circuit DAG (color = layer kind)\n\
• gkr/walk/** — GKR layer nodes (green when proved)\n\
• gkr/claim — claim descending output→input\n\
• gkr/walk/**/poly — round polynomial [c0, c1, c2]\n\
• inference/stats/** — per-layer activation mean/std\n\
• gpu/cluster — GPU devices (color = utilisation)\n\
• proof/progress — overall proof progress 0→1",
),
);
}
#[cfg(not(feature = "rerun"))]
pub fn send_blueprint(_rec: &()) {}