New separate project (the Electron Mac app stays untouched). Reuses the visual engine (WebGL shaders, effect catalog, Web Audio) verbatim and replaces Electron IPC with a Node HTTP+WebSocket server: - server.js: serves the kiosk output page + mobile control PWA, relays the same ctl/rpt JSON protocol over WebSocket, plus REST for media library/upload, JSON state (pads), waveform peaks and MP4 recording (ffmpeg). - public/js/net.js: window.djv shim over WebSocket+HTTP so output.js runs intact. - public/index.html + control.js: touch-first mobile remote (effects, media/queue, ticker, pads, audio/EQ, fullscreen + recording). - PWA (manifest + service worker + generated icons). - scripts/: Chromium kiosk launcher + install-pi.sh (systemd units for Pi 5). Verified: REST endpoints, WebSocket relay both directions, control PWA loads the 2958-effect catalog and renders. (Headless WebGL output not testable without GPU.) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
202 lines
5.1 KiB
XML
202 lines
5.1 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
<svg
|
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
xmlns:cc="http://web.resource.org/cc/"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
xmlns:svg="http://www.w3.org/2000/svg"
|
|
xmlns:ns1="http://sozi.baierouge.fr"
|
|
id="svg7246"
|
|
sodipodi:docname="bolt1.svg"
|
|
inkscape:export-filename="C:\Program Files\Open Clip Art Library\clipart\science\bolt\bolt1.png"
|
|
viewBox="0 0 114.11 418.54"
|
|
sodipodi:version="0.32"
|
|
inkscape:export-xdpi="54.428574"
|
|
version="1.0"
|
|
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
|
inkscape:export-ydpi="54.428574"
|
|
inkscape:version="0.45.1"
|
|
sodipodi:docbase="C:\Program Files\Open Clip Art Library\clipart\science\bolt"
|
|
>
|
|
<defs
|
|
id="defs7248"
|
|
>
|
|
<filter
|
|
id="filter13021"
|
|
inkscape:collect="always"
|
|
>
|
|
<feGaussianBlur
|
|
id="feGaussianBlur13023"
|
|
stdDeviation="2.5107142"
|
|
inkscape:collect="always"
|
|
/>
|
|
</filter
|
|
>
|
|
<radialGradient
|
|
id="radialGradient3189"
|
|
gradientUnits="userSpaceOnUse"
|
|
cy="306.65"
|
|
cx="160.36"
|
|
gradientTransform="matrix(1 0 0 4.1314 232.14 -944.5)"
|
|
r="48.929"
|
|
inkscape:collect="always"
|
|
>
|
|
<stop
|
|
id="stop8287"
|
|
style="stop-color:#bef7ff"
|
|
offset="0"
|
|
/>
|
|
<stop
|
|
id="stop8289"
|
|
style="stop-color:#0000d4"
|
|
offset="1"
|
|
/>
|
|
</radialGradient
|
|
>
|
|
</defs
|
|
>
|
|
<sodipodi:namedview
|
|
id="base"
|
|
bordercolor="#666666"
|
|
inkscape:pageshadow="2"
|
|
guidetolerance="10"
|
|
pagecolor="#ffffff"
|
|
gridtolerance="10000"
|
|
inkscape:window-height="844"
|
|
width="114.11px"
|
|
inkscape:zoom="0.7"
|
|
objecttolerance="10"
|
|
height="418.54px"
|
|
borderopacity="1.0"
|
|
inkscape:current-layer="layer1"
|
|
inkscape:cx="397.00347"
|
|
inkscape:cy="305.84332"
|
|
inkscape:window-y="22"
|
|
inkscape:window-x="0"
|
|
inkscape:window-width="1440"
|
|
inkscape:pageopacity="0.0"
|
|
inkscape:document-units="px"
|
|
/>
|
|
<g
|
|
id="layer1"
|
|
inkscape:label="Layer 1"
|
|
inkscape:groupmode="layer"
|
|
transform="translate(-332.56 -114.99)"
|
|
>
|
|
<g
|
|
id="g3192"
|
|
>
|
|
<path
|
|
id="path12048"
|
|
style="filter:url(#filter13021);fill-rule:evenodd;fill:#000000;fill-opacity:.39216"
|
|
d="m435.42 124.24l-73.57 223.57h25l-49.29 180.72 85-199.29h-28.57l41.43-205z"
|
|
/>
|
|
<path
|
|
id="path11839"
|
|
style="stroke-opacity:.62069;fill-rule:evenodd;stroke:#000000;stroke-width:.5;fill:url(#radialGradient3189)"
|
|
d="m441.42 120.24l-73.57 223.57h25l-49.29 180.72 85-199.29h-28.57l41.43-205z"
|
|
/>
|
|
</g
|
|
>
|
|
</g
|
|
>
|
|
<metadata
|
|
>
|
|
<rdf:RDF
|
|
>
|
|
<cc:Work
|
|
>
|
|
<dc:format
|
|
>image/svg+xml</dc:format
|
|
>
|
|
<dc:type
|
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage"
|
|
/>
|
|
<cc:license
|
|
rdf:resource="http://creativecommons.org/licenses/publicdomain/"
|
|
/>
|
|
<dc:publisher
|
|
>
|
|
<cc:Agent
|
|
rdf:about="http://openclipart.org/"
|
|
>
|
|
<dc:title
|
|
>Openclipart</dc:title
|
|
>
|
|
</cc:Agent
|
|
>
|
|
</dc:publisher
|
|
>
|
|
<dc:title
|
|
>bolt1</dc:title
|
|
>
|
|
<dc:date
|
|
>2008-01-07T22:51:24</dc:date
|
|
>
|
|
<dc:description
|
|
>Lightning bolt - I use it to represent a VPN in network diagrams</dc:description
|
|
>
|
|
<dc:source
|
|
>https://openclipart.org/detail/10820/bolt1-by-cfry</dc:source
|
|
>
|
|
<dc:creator
|
|
>
|
|
<cc:Agent
|
|
>
|
|
<dc:title
|
|
>cfry</dc:title
|
|
>
|
|
</cc:Agent
|
|
>
|
|
</dc:creator
|
|
>
|
|
<dc:subject
|
|
>
|
|
<rdf:Bag
|
|
>
|
|
<rdf:li
|
|
>bolt</rdf:li
|
|
>
|
|
<rdf:li
|
|
>lightning</rdf:li
|
|
>
|
|
<rdf:li
|
|
>lightning bolt</rdf:li
|
|
>
|
|
<rdf:li
|
|
>virtual private network</rdf:li
|
|
>
|
|
<rdf:li
|
|
>vpn</rdf:li
|
|
>
|
|
</rdf:Bag
|
|
>
|
|
</dc:subject
|
|
>
|
|
</cc:Work
|
|
>
|
|
<cc:License
|
|
rdf:about="http://creativecommons.org/licenses/publicdomain/"
|
|
>
|
|
<cc:permits
|
|
rdf:resource="http://creativecommons.org/ns#Reproduction"
|
|
/>
|
|
<cc:permits
|
|
rdf:resource="http://creativecommons.org/ns#Distribution"
|
|
/>
|
|
<cc:permits
|
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
|
|
/>
|
|
</cc:License
|
|
>
|
|
</rdf:RDF
|
|
>
|
|
</metadata
|
|
>
|
|
</svg
|
|
>
|