---
type: asset-provenance
status: active
created: 2026-09-11
updated: 2026-09-11
audience: both
llm_priority: high
confidentiality: shared-internal
owner: Sylwester
canon_version: "4.2-brand-and-communication"
canon_updated: 2026-09-11
tags: [quantummed, safemed-ai, film, website, synthetic-data, attribution]
---

# SafeMed AI — filmowy obieg badania

Autorski film pokazuje projektowany obieg: oryginał w placówce, kopia przygotowywana przez SafeMed, przekazanie do wybranego AI oraz wynik powiązany z badaniem. Kompozycja jest otwarta, z miękką mgłą, delikatną aperturą i zakrzywionymi torami ruchu. Oryginał pozostaje widoczny przez cały cykl; wynik osiada obok niego. To programowo wykonany motion design, bez generatora wideo AI i bez nagrania działania produktu.

[Podgląd PL](http://localhost:8795/cinema?lang=pl) · [EN](http://localhost:8795/cinema?lang=en) · [Szczegółowy brief produkcyjny po angielsku](../../../../13-SafeMed-Journey-Film-Brief-EN.md).

| Plik | Parametry i zastosowanie |
|---|---|
| [journey-landscape.mp4](journey-landscape.mp4) | 1920 × 1080, 20 s, 30 klatek/s, 3 523 491 bajtów; szeroki układ PACS / SafeMed / AI |
| [journey-portrait.mp4](journey-portrait.mp4) | 1080 × 1350, 20 s, 30 klatek/s, 2 666 018 bajtów; osobna kompozycja pionowa, bez wycinania poziomego kadru |
| [Poster poziomy](journey-landscape-poster.jpg) · [pionowy](journey-portrait-poster.jpg) | Nieruchome kadry odpowiadające obu układom |
| [Storyboard poziomy](journey-landscape-storyboard.jpg) · [pionowy](journey-portrait-storyboard.jpg) | Sześć momentów: 0,3 / 3,6 / 6,5 / 10,8 / 15,1 / 18,7 s |

Oba MP4: H.264, yuv420p, BT.709, 600 klatek, bez strumienia audio, faststart. Czasy animacji opisują rytm ilustracji, nie zmierzoną wydajność systemu.

## Przebieg i integracja

W 0–4,2 s od oryginału oddziela się kopia. W 4,2–9 s kopia przechodzi przez aperturę SafeMed, a jej fikcyjny identyfikator `014` zmienia się na `R027`. W 9–13,45 s przygotowana kopia trafia do odbiorcy. W 13,45–18,1 s neutralny symbol wyniku wraca przez SafeMed do placówki. Na końcu lokalne `R027 → 014` pokazuje powiązanie z oryginałem; obiekty wtórne łagodnie zanikają przed ponowieniem. Film nie jest odtwarzany wspak.

Film nie zawiera haseł marketingowych ani logo. Krótkie identyfikatory i neutralny znak `AI` należą do ilustracji. Nazwy uczestników, opis czterech etapów, informacja o symulacji i sterowanie są zapisane w HTML, po polsku i angielsku. Wszystkie opisy pozostają widoczne; `timeupdate` zaznacza etap zgodny z odtwarzanym fragmentem. Można zatrzymać film, wrócić na początek lub przejść do etapu.

Strona wybiera kompozycję pionową przy szerokości do 700 px. Przy zmianie układu zachowuje czas odtwarzania. Odtwarzanie respektuje ustawienie ograniczenia ruchu, pauzę użytkownika, widoczność sekcji i stan karty przeglądarki. Gdy film jest niedostępny, pozostają poster oraz objaśnienia HTML. Otwarcie `/cinema` wykorzystuje istniejący film z atramentem z `/inspect`.

Integracja: [JourneyFilm](../../../components/journey-film.tsx), [strona `/cinema`](../../../app/cinema/page.tsx), [arkusz kompozycji](../../../app/cinema/journey-film.css).

## Źródło obrazu i licencje

MRI: [brain-simulation.webp](../scan-demo/brain-simulation.webp), opisany w [rejestrze źródła](../scan-demo/SOURCE.md). H. Lajous i wsp., *A Fetal Brain magnetic resonance Acquisition Numerical phantom (FaBiAN)*, Scientific Reports 12, 8682 (2022), [Figure 2](https://www.nature.com/articles/s41598-022-10335-4/figures/2), [DOI](https://doi.org/10.1038/s41598-022-10335-4), [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). Wykorzystano wyłącznie panel „Axial, 32 weeks / Simulations (little motion)”, bez sąsiedniego obrazu klinicznego. Źródło i licencję sprawdzono w sesji 11.09.2026 podczas przygotowania assetu.

Modyfikacje: wycinek, interpolacja, chłodny ton, przyciemnienie tła, kompozycja z mgłą, fikcyjne identyfikatory i animowany ruch kopii. Nie domalowywano anatomii. Panel źródłowy ma 158 × 156 px; rozdzielczość eksportu nie oznacza szczegółowości źródłowego obrazowania. Uznanie autorstwa, publikację, licencję i opis modyfikacji zapisano w metadanych MP4, na stronie oraz w tej nocie.

Napisy: lokalny Libre Franklin, [SIL Open Font License](../../assets/librefranklin-OFL.txt). Renderer i efekty przygotowano dla QuantumMed. Otwarcie z atramentem ma [osobną proweniencję](../immersive-entry/SOURCE.md).

## Zakres ilustracji

Film nie czyta DICOM, nie wykonuje OCR lub inferencji AI i nie dokumentuje rzeczywistego transferu. Zamiana identyfikatora obrazuje lokalne powiązanie, a nie dowód anonimowości. Znak na dokumencie wyniku nie oznacza poprawnej diagnozy ani potwierdzonej trafności modelu. Obraz jest symulacją MRI, nie badaniem TK ani badaniem pacjenta przetworzonym przez SafeMed.

## Warianty nazw PL/EN dla `/safemed`

Cztery dodatkowe eksporty zachowują granatową kompozycję, animację i rytm 20 s. Dotychczasowe filmy oraz postery bez przyrostka języka pozostają osobną parą dla `/cinema`.

| Język i układ | Film | Poster |
|---|---|---|
| PL, 1920 × 1080 | [journey-landscape-pl.mp4](journey-landscape-pl.mp4) | [journey-landscape-pl-poster.jpg](journey-landscape-pl-poster.jpg) |
| EN, 1920 × 1080 | [journey-landscape-en.mp4](journey-landscape-en.mp4) | [journey-landscape-en-poster.jpg](journey-landscape-en-poster.jpg) |
| PL, 1080 × 1350 | [journey-portrait-pl.mp4](journey-portrait-pl.mp4) | [journey-portrait-pl-poster.jpg](journey-portrait-pl-poster.jpg) |
| EN, 1080 × 1350 | [journey-portrait-en.mp4](journey-portrait-en.mp4) | [journey-portrait-en-poster.jpg](journey-portrait-en-poster.jpg) |

W polskim filmie fikcyjne `Jan Kowalski` zmienia się na `Imię Nazwisko`, w angielskim `John Smith` na `Name Surname`. Oryginał zachowuje pierwotną nazwę. Kopia otrzymuje nazwę ogólną po 6,5 s. Podpis wyniku wracającego do SafeMed zawiera nazwę ogólną do 15,8 s, następnie pierwotną. Od 18,3 s końcowa strzałka pokazuje odpowiednio `Imię Nazwisko → Jan Kowalski` lub `Name Surname → John Smith`. To opis zaprogramowanych napisów, nie demonstracja rozpoznawania osoby ani wykonania operacji na badaniu pacjenta.

Dłuższe podpisy mają większy rozmiar i odstęp od obrazu; strzałka końcowego powiązania korzysta z rzeczywiście zmierzonej szerokości tekstu. Podpis odrywającej się kopii pojawia się w 1,9–2,5 s, po jej oddzieleniu od oryginału. Ruch obiektów i czasy czterech etapów pozostają takie same. Polskie `ę` pochodzi z lokalnego rozszerzonego zestawu znaków Libre Franklin. Postery nowych wariantów pokazują 7,6 s, czyli kopię z nazwą ogólną przy widocznym oryginale.

W nowych eksportach nie występują dawne identyfikatory numeryczne. Dane są fikcyjne, a materiał nadal korzysta z tego samego panelu syntetycznego MRI i licencji CC BY 4.0 opisanych powyżej.

## Odtworzenie

Kod: [render-journey-film.py](../../../scripts/render-journey-film.py), korzystający z lokalnych funkcji `render-privacy-mist.py` i `render-privacy-film.py`. Z katalogu `safemed-experience`:

```powershell
python -m pip install Pillow numpy "fonttools[woff]"
python scripts/render-journey-film.py --width 1920
python scripts/render-journey-film.py --portrait --width 1080
python scripts/render-journey-film.py --width 1920 --language pl
python scripts/render-journey-film.py --width 1920 --language en
python scripts/render-journey-film.py --portrait --width 1080 --language pl
python scripts/render-journey-film.py --portrait --width 1080 --language en
```

FFmpeg z libx264 musi znajdować się w PATH. `--output <katalog>` wybiera miejsce eksportu; `--stills-only --width 640` zapisuje wyłącznie kadry. Gotowa strona odtwarza pliki MP4 i nie wymaga instalacji narzędzi renderowania.

Parametr `--language pl|en` wybiera pełne nazwy i dopisuje język do nazwy MP4 oraz postera; w tym trybie nie nadpisuje dawnych storyboardów ani plików `/cinema`. Pominięcie parametru zachowuje wcześniejszy wariant identyfikatorów.

## Weryfikacja 11.09.2026

- Pełne dekodowanie obu plików przez FFmpeg z `-xerror`: bez błędu. Parametry potwierdzone przez ffprobe.
- Przejrzano oba storyboardy po końcowych zmianach: wynik nie zakrywa MRI, strzałka powiązania jest wektorowa i czytelna, brak pionowych szyn skanera.
- Klatki renderera dla 0 i 20 s są identyczne w obu kompozycjach. Średnia bezwzględna różnica zdekodowanych klatek 0 i 599 po skalowaniu do 320 × 180 wynosi 0,20565/255 dla poziomu i 0,22483/255 dla pionu. To kontrola styku pętli, nie pomiar płynności urządzenia.
- `moov` poprzedza `mdat`; oba pliki zawierają wymagane metadane źródła. Kopie eksportów w repo mają sumy SHA-256 zgodne z oryginalnymi eksportami.
- Strony PL/EN i oba MP4 odpowiadają HTTP 200. Podgląd `/cinema?lang=pl` otwarto w Chrome. Zakres kontroli kodu i aplikacji opisano w [README projektu](../../../README.md).

### Kontrola czterech wariantów nazw PL/EN

| Film | Bajty | SHA-256 |
|---|---:|---|
| `journey-landscape-pl.mp4` | 3 640 781 | `17fc786ab19dbc893b08db679bf08ac1f8710e45e7640c54045ba0dae99a84e1` |
| `journey-landscape-en.mp4` | 3 638 320 | `300002eafb815fc56c7202c564c7a4824ab1ff833ad2f820f14f45dda6739d76` |
| `journey-portrait-pl.mp4` | 2 809 729 | `f63aeee769e7e16433773a323964a32f707d730e2f4621ebcef4a0fea27fa0d9` |
| `journey-portrait-en.mp4` | 2 777 756 | `e58c3b7c45e638c9ce9362b5add59fbbc3bea8458157a93f3d21e91f8d369140` |

- Cztery MP4 przeszły pełne dekodowanie FFmpeg `-xerror`. ffprobe potwierdził H.264, yuv420p, macierz BT.709, dokładnie 20 s, 30 klatek/s, 600 klatek oraz jeden strumień wideo bez audio. Poziomy mają 1920 × 1080, piony 1080 × 1350; we wszystkich `moov` poprzedza `mdat`.
- Dla każdego wariantu zarejestrowano tekst i granice podpisów w rendererze we wszystkich 600 momentach klatek. W aktywnych napisach nie występują stare identyfikatory; kontrola wykazała 0 kolizji tekst–tekst i 0 wyjść poza kadr. Uwzględnia pojawianie się podpisu kopii i odstęp od podpisu wracającego wyniku.
- Przejrzano zdekodowane klatki 0,9 / 1,5 / 3,6 / 6,4 / 7,6 / 10,8 / 15,1 / 16,8 / 18,7 s dla obu języków i układów. W pełnej rozdzielczości sprawdzono zmianę nazwy oraz powrót wyniku; polskie `ę` jest czytelne, a końcowa strzałka rozdziela pełne nazwy.
- Dawne dwa MP4 i dwa postery `/cinema` zachowały SHA-256 zgodne ze stanem przed przygotowaniem tych wariantów. Nie nadpisano ich ani dawnych storyboardów.

Nie wykonano testów interakcji w przeglądarce ani pomiarów na fizycznym telefonie. Materiał nie stanowi walidacji medycznej, oceny anonimowości ani odbioru produkcyjnego.
