From 2067e6efb1c55be4dae42c615018d0fdedd0f76f Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Sat, 13 Jun 2026 11:02:07 +0300 Subject: [PATCH] =?UTF-8?q?feat(labs):=20=D0=A4=D0=B0=D0=B7=D0=B02=20?= =?UTF-8?q?=E2=80=94=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BA=D0=B0=D0=B4=D1=80=20=D1=81=D0=B8=D0=BC=D1=83?= =?UTF-8?q?=D0=BB=D1=8F=D1=86=D0=B8=D0=B8=20=D0=B2=20=C2=AB=D0=9C=D0=BE?= =?UTF-8?q?=D0=B8=20=D0=BC=D0=B0=D1=82=D0=B5=D1=80=D0=B8=D0=B0=D0=BB=D1=8B?= =?UTF-8?q?=C2=BB=20+=20=D1=81=D0=BA=D0=B0=D1=87=D0=B0=D1=82=D1=8C=20PNG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Кнопки в топбаре лаборатории: снимок активного canvas → MaterialSave.image (аплоад + kind:image в /api/materials) и «Скачать PNG». Захват — крупнейший видимый canvas сцены. material-save.js подключён в lab.html. (3D/WebGL-кадр может быть пустым без preserveDrawingBuffer — доработать позже.) Co-Authored-By: Claude Opus 4.8 --- frontend/lab.html | 59 +++++++++++++++++++++++++ plans/simulations-improvement/README.md | 2 +- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/frontend/lab.html b/frontend/lab.html index b740a1e..fdc44c7 100644 --- a/frontend/lab.html +++ b/frontend/lab.html @@ -347,6 +347,16 @@ + + + + + +