mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-09 20:29:58 +02:00
Replace the Typst/ImageMagick studio with a SwiftPM executable that composes each marketing screen as a SwiftUI view and renders it headlessly via ImageRenderer to exact 1284x2778 PNGs. - Devices are a real iPhone 17 Pro Max .usdz textured + posed in SceneKit (graphite body, studio IBL); screen curvature/bezel are the model's geometry. - Per-screen layouts (pose, globe, route arc, encryption flow) in ScreenSpec. - send-anywhere: globe + Paris->LA route arc; uses the app's share screen. - stay-private: converging beams -> glowing padlock -> binary protection stream, with localized CHIFFREMENT/PROTECTION banners and an auto-sizing header panel. - Captions auto-shrink per locale (ViewThatFits) so long translations never clip. - Screenshots are transient (generated/shots, git-ignored), captured per locale; generate.sh does capture + composite in one shot. - Commit the .usdz model (CC BY 4.0, see assets/ATTRIBUTION.md) and globe asset. - Remove the superseded Typst pipeline (screens.typ, build.sh, frame.sh, warp.sh).
17 lines
699 B
Bash
Executable File
17 lines
699 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# One-shot: capture fresh per-locale screenshots from the app, then composite every
|
|
# marketing screen. Screenshots are transient (generated/shots, git-ignored) and are
|
|
# regenerated each run — never committed.
|
|
#
|
|
# ./generate.sh # capture + composite -> generated/<Language>/
|
|
# ./generate.sh --publish # capture + composite -> ../<Language>/ (ships)
|
|
# LOCALES="en fr" ./generate.sh # subset of locales
|
|
#
|
|
# During layout iteration you don't need to re-capture every time: run `./capture.sh`
|
|
# once, then `swift run studio` on its own (it reads the existing generated/shots).
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")"
|
|
|
|
./capture.sh
|
|
swift run studio "$@"
|