# КОДЕКС — чёткие контуры, переход на бит Версия 2, 27 октября 2026. https://rorschach-physics-codex.pages.dev/ Исправлена причина серого размазывания: вместо переноса толщины по растровой сетке используется движущаяся сетка самого материала. Каждый треугольник несёт постоянную массу. Граница — геометрическая; нет blur, sharpen, отсечения тонких остатков или кроссфейда масок. [Короткая запись с музыкой](motion.html) · [Контакт-лист, включая увеличения контура](contact-sheet.jpg). ## Два разных состояния A — исходная симметричная геометрия карты Codex 01 с раскрытыми лопастями. A немного держится. Реальный сильный бит на 3,373 с лаборатории (29,373 с трека) запускает направляющий перенос. Верхние лопасти вытягиваются и сближаются, нижние расходятся; существующие перемычки и отверстия движутся вместе с краской. B — другая вертикальная чашеобразная симметричная конфигурация с сохранёнными просветами. После 23 с нажим отпущен, форма остаётся до конца, без возврата и петли. B получена из A теми же материальными ячейками. Это достижимая пара с сохранением топологии, без обещания точной реплики другой исходной карточки. Движение не сводится к масштабу, вращению или переносу всей картинки: шесть расстояний между четырьмя фиксированными материальными ориентирами меняются неодинаково. | Материал | Минимальное / максимальное растяжение шести пар ориентиров | |---|---:| | Плотная гуашь | 0.594× / 1.917× | | Вязкая нефть | 0.579× / 2.441× | | Тяжёлая паста | 0.631× / 1.501× | У глобального поворота/смещения все эти коэффициенты были бы 1, у общего масштаба — одинаковыми. Здесь они различаются в 2,38–4,21 раза. Координаты ориентиров и исходные данные сохранены локально в results/numerical.json. ## Резкость измерена в движении В видимом Chrome измерено 114 кадров трёх непрерывных 36-секундных прогонов, включая середину. Дополнительно проверены точные состояния 0 / 3,375 / 7 / 11 / 15 / 19 / 23 / 36 с всех материалов. Внизу контакт-листа — реальные пиксели контура основной пробы, увеличенные ×2 без фильтра. | Материал | Максимальное расстояние серого пикселя от геометрического контура | Серые пиксели дальше 1 px | Макс. относительное расхождение отрисованной и геометрической площади | |---|---:|---:|---:| | Плотная гуашь | 0.3965 px | 0 | 0.01199% | | Вязкая нефть | 0.3961 px | 0 | 0.01482% | | Тяжёлая паста | 0.3964 px | 0 | 0.01573% | Полутоновые пиксели ограничены обычным MSAA на самой границе (4 samples на проверенном Chrome). Широкой серой дымки вокруг материала не обнаружено. Coverage-pass проверяет соответствие отрисованной области настоящей геометрии, а не только численной сумме масс. Цветные блики не используются как маска покрытия. ## Масса и видимость 22715 материальных треугольников и 13398 узлов на половине кадра. 1/120 с, 4320 последовательных шага на опыт. Индивидуальные массы неизменны, толщина h=m/A считается по текущей площади. Контроль массы пересчитывает сумму текущих площадей × толщин **каждый шаг**. Начальный интеграл массы полного кадра: 1.023877367750. | Материал | Направляющий нажим | Максимальный дрейф массы | Минимальная h за весь прогон | Площадь A → B | |---|---|---:|---:|---:| | Плотная гуашь | нет | 2.17e-14% | 0.8851 | 25.595% → 25.699% | | Плотная гуашь | да | 2.17e-14% | 0.8457 | 25.595% → 25.130% | | Вязкая нефть | нет | 2.17e-14% | 0.8685 | 25.595% → 25.707% | | Вязкая нефть | да | 2.17e-14% | 0.7359 | 25.595% → 24.943% | | Тяжёлая паста | нет | 2.17e-14% | 0.9021 | 25.595% → 25.686% | | Тяжёлая паста | да | 2.17e-14% | 0.8751 | 25.595% → 25.308% | Во всех шести полных численных опытах: 0 NaN, 0 перевёрнутых ячеек, положительная толщина, узлы внутри закрытой области. Ни одна ячейка не удаляется и не создаётся. Масса не нормализуется. На сгибе нет входа вещества; он только зеркалит уже существующий материал. Оптическая плотность непрерывна: α=1−exp(−14h). Самая низкая толщина среди всех основных опытов ≈0,736, поэтому даже консервативная нижняя граница непрозрачности любого участка **выше 99,996%**. Материал остаётся плотным по физическому представлению, а не скрывается порогом. Массо-взвешенный оптический недобор во время перехода меньше 0,0001%; консервативный максимум для любого отдельного участка ниже 0,0034%. Площадь и масса — разные величины; небольшое изменение площади учитывается в h. ## Браузер, музыка и телефонная ширина Браузер `Chrome/156.0.8078.48`. Все три материала реально проиграны от 0 до 36 с по аудиочасам одного фрагмента Stray Bullet 26–62 с. После каждого окончания проверена остановка без автоматического сброса. Реальными кнопками проверены play/pause/resume/reset и смена материала. | Материал | Средняя частота кадров | Работа на кадр: средняя / p95 | |---|---:|---:| | Плотная гуашь | 59.76 fps | 2.39 / 3.50 мс | | Вязкая нефть | 60.00 fps | 1.79 / 3.40 мс | | Тяжёлая паста | 60.00 fps | 2.58 / 4.60 мс | Проверена середина перехода на ширине 390 px, DPR2: горизонтального переполнения нет, квадратный кадр и элементы управления доступны. Это эмуляция телефонной ширины, не тест GPU физического телефона. Снимок сохранён локально в results/mobile-midpoint.png. Ошибок страницы в проверке: 0. Короткая запись длится 26.07 с. Это живой canvas; видеопоток копируется без перерисовки и фильтров. Добавлен тот же музыкальный фрагмент с измеренным стартовым смещением аудиочасов 0.0213 с. Запись не зациклена. Основная страница воспроизводит физику в реальном времени, а не видео. ## Ограничения Модель — лагранжев перенос плотной вязкой массы в полностью затухающем режиме под художественно заданной внешней касательной тягой и слабым уклоном. Скорость линейно зависит от сопротивления; бит только положительно масштабирует текущую скорость. Это не полный 3D Navier–Stokes solver, не свободное вычисление контактного давления лопатки и не откалиброванная реология реальной гуаши. Топология сохраняется: сетка не рвётся и не сливается. Пара выбрана достижимой при этом ограничении. Нажим имеет проверенную конечную длительность; бесконечно тянуть эту сетку нельзя. Точного попадания во все исходные карточки нет. Рельеф — освещение текущего материала. Художественная выразительность формы B требует оценки пользователем; численная сохранность сама по себе не объявляется достаточным успехом. ## Воспроизведение и изоляция В checkout: npm run verify; node browser-check.mjs; node short-check.mjs; node contact-sheet.mjs. Для браузерных проверок нужен локальный сервер, другой адрес задаётся LAB_URL. Сырые данные — results/numerical.json, browser.json, contact-frames.json, short-motion.json. Они доступны в checkout; публичный allowlist содержит только страницу, нужные модули/активы, запись, контакт и этот отчёт. Ветка rocketmandrey/rorschach-physics-lab, каталог scratch/rorschach_physics_lab. Старый клип и чужие checkout не изменяются. Публикация — только отдельный rorschach-physics-codex.pages.dev. SHA-256 опубликованных входов: - initial.json: af4aacf0c9a6a891b703f2692a1ba5d5463bd1af1fe0ae6b951b256554804442 - cues.json: 30123f6378a6318e6cddf1767450cf359e1680de4fc31e0ffece6c28e1770250 - probe.m4a: 75b9e9cb20a421d941f1deafaba4916b3e9345eeaebb9b6a7ca1995d306b2962