Built and tested ok with SWIG 4.2.1 and SWIG 4.4.1 on amd64 and i386.
diff -Nurp /usr/ports/graphics/py-pivy/Makefile ./Makefile
--- /usr/ports/graphics/py-pivy/Makefile Thu May 1 08:35:03 2025
+++ ./Makefile Sat Jan 24 10:12:23 2026
@@ -2,7 +2,7 @@ COMMENT = Python bindings for coin
MODPY_DISTV = 0.6.10
PKGNAME = py-${DISTNAME}
-REVISION = 0
+REVISION = 1
DIST_TUPLE += github coin3d pivy ${MODPY_DISTV} .
diff -Nurp /usr/ports/graphics/py-pivy/patches/patch-interfaces_coin_i
./patches/patch-interfaces_coin_i
--- /usr/ports/graphics/py-pivy/patches/patch-interfaces_coin_i Wed Dec 31
19:00:00 1969
+++ ./patches/patch-interfaces_coin_i Sat Jan 24 10:12:42 2026
@@ -0,0 +1,19 @@
+Function signature changed in SWIG 4.4:
+https://github.com/coin3d/pivy/pull/139
+
+
+Index: interfaces/coin.i
+--- interfaces/coin.i.orig
++++ interfaces/coin.i
+@@ -80,7 +80,11 @@ static int init_file_emulator(void)
+ %init %{
+ #if PY_MAJOR_VERSION >= 3
+ if (init_file_emulator() < 0) {
++ #if (SWIG_VERSION < 0x040400)
+ return NULL;
++ #else
++ return 0;
++ #endif
+ }
+ #endif
+ %}