diff --git a/fsck2025/__init__.py b/fsck2025/__init__.py
index 7acdbd1..9fa165b 100644
--- a/fsck2025/__init__.py
+++ b/fsck2025/__init__.py
@@ -15,34 +15,83 @@ def introFrames(args):
("title", "style", "opacity", 0),
("persons", "style", "opacity", 0),
("glogo", "style", "opacity", 0),
+ ("sparkle", "style", "opacity", 0),
+ )
+
+ # fade in logo
+ # frames = 1 * fps
+ # for i in range(0, frames):
+ # # source: matrix(0.66093871,0,0,0.66093871,325.49887,111.96043)
+ # # target: matrix(1, 0, 0, 1, 0, 0)
+ # size = 0.66 + easeInOutSine(i, 0.0, 1.0 - 0.66, frames)
+ # posx = easeInOutSine(frames - i, 0.0, 325.49887, frames)
+ # posy = easeInOutSine(frames - i, 0.0, 111.96043, frames)
+ # yield (
+ # (
+ # "glogo",
+ # "attr",
+ # "transform",
+ # # the easing function can’t handle easing from larger to smaller, so use this hacky workaround
+ # f"translate(0,{easeInQuad(frames - i, 0.0, 200.0, frames)})",
+ # ),
+ # ("glogo", "style", "opacity", easeOutSine(i, 0, 1, frames)),
+ # # scale in the fsck text banner behind the foreground elements
+ # # target size is 5.414656 in both x and y
+ # (
+ # "fsck-banner",
+ # "attr",
+ # "transform",
+ # f"matrix({size:.4f},0,0,{size:.4f},{posx:.4f},{posy:.4f})",
+ # ),
+ # ("title", "style", "opacity", 0),
+ # ("persons", "style", "opacity", 0),
+ # ("sparkle", "style", "opacity", 0),
+ # )
+
+ frames = 1 * fps
+ for i in range(0, frames):
+ yield (
+ ("glogo", "style", "opacity", 1),
+ ("title", "style", "opacity", 0),
+ ("persons", "style", "opacity", 0),
+ ("sparkle", "style", "opacity", 0),
)
# fade in title and persons
- frames = 1 * fps
- for i in range(0, frames):
- # source: matrix(3.4166273,0,0,3.4166273,-1716.8745,-2685.1066)
- # target: matrix(5.414656,0,0,5.414656,-3282.299,-4448.4489)
- size = 3 + easeOutSine(i, 0, 5.414656-3, frames)
- posx = easeOutSine(i, -1716.8745, -3282.299, frames)
- posy = easeOutSine(i, -2685.1066, -4448.4489, frames)
+ frames = 2 * fps
+ intermediate = (frames * 1) // 3
+ for i in range(0, intermediate):
yield (
("title", "style", "opacity", easeOutSine(i, 0, 1, frames)),
- ("persons", "style", "opacity", easeOutSine(i, 0, 1, frames)),
+ ("persons", "style", "opacity", 0),
+ ("glogo", "style", "opacity", 1),
(
- "glogo",
- "attr",
- "transform",
- # the easing function can’t handle easing from larger to smaller, so use this hacky workaround
- f"translate(0,{easeInQuad(frames - i, 0.0, 200.0, frames)})",
+ "sparkle",
+ "style",
+ "opacity",
+ easeOutSine(min(i * 2, intermediate), 0, 1, intermediate),
),
- ("glogo", "style", "opacity", easeOutSine(i, 0, 1, frames)),
- # scale in the fsck text banner behind the foreground elements
- # target size is 5.414656 in both x and y
+ )
+ for i in range(intermediate, frames):
+ yield (
+ ("title", "style", "opacity", easeOutSine(i, 0, 1, frames)),
(
- "fsck-banner",
- "attr",
- "transform",
- f"matrix({size},0,0,{size},{posx},{posy})",
+ "persons",
+ "style",
+ "opacity",
+ easeOutSine(i - intermediate, 0, 1, frames - intermediate),
+ ),
+ ("glogo", "style", "opacity", 1),
+ (
+ "sparkle",
+ "style",
+ "opacity",
+ easeInSine(
+ i-intermediate,
+ 1,
+ -1,
+ frames - intermediate,
+ ),
),
)
@@ -53,6 +102,7 @@ def introFrames(args):
("title", "style", "opacity", 1),
("persons", "style", "opacity", 1),
("glogo", "style", "opacity", 1),
+ ("sparkle", "style", "opacity", 0),
)
# fade out image and text
@@ -62,6 +112,7 @@ def introFrames(args):
("title", "style", "opacity", easeOutQuad(i, 1, -1, frames)),
("persons", "style", "opacity", easeOutQuad(i, 1, -1, frames)),
("glogo", "style", "opacity", easeOutQuad(i, 1, -1, frames)),
+ ("sparkle", "style", "opacity", 0),
)
diff --git a/fsck2025/artwork/intro.svg b/fsck2025/artwork/intro.svg
index 7e0c489..0fb6d40 100644
--- a/fsck2025/artwork/intro.svg
+++ b/fsck2025/artwork/intro.svg
@@ -19,7 +19,32 @@
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
+ id="fsck-banner">
-
$personnames
+ id="tspan5">$personnames
diff --git a/fsck2025/artwork/pip_template_fsck2024_final.svg b/fsck2025/artwork/pip_template_fsck2024_final.svg
index e9250cd..bd1b0a1 100644
--- a/fsck2025/artwork/pip_template_fsck2024_final.svg
+++ b/fsck2025/artwork/pip_template_fsck2024_final.svg
@@ -8,7 +8,7 @@
version="1.1"
id="svg1"
xml:space="preserve"
- inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
+ inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
sodipodi:docname="pip_template_fsck2024_final.svg"
inkscape:export-filename="../../pip_template_fsck2024_black.png"
inkscape:export-xdpi="96"
@@ -27,14 +27,14 @@
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
- inkscape:zoom="0.44128075"
- inkscape:cx="895.12176"
- inkscape:cy="507.61335"
- inkscape:window-width="1920"
- inkscape:window-height="1050"
+ inkscape:zoom="1.2564954"
+ inkscape:cx="913.25441"
+ inkscape:cy="482.29383"
+ inkscape:window-width="3840"
+ inkscape:window-height="2052"
inkscape:window-x="0"
inkscape:window-y="0"
- inkscape:window-maximized="0"
+ inkscape:window-maximized="1"
inkscape:current-layer="layer1"
showgrid="false" />
+ style="fill:url(#linearGradient10);stroke:#fefefe;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill" />