Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2026 Daniel Trujillo
Copyright (c) 2026 Daniel Joaquin Trujillo and GANTASMO

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
53 changes: 46 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,35 @@
![SwayCommand](docs/media/banner.webp)

![license MIT](https://img.shields.io/badge/license-MIT-2de1fc?style=flat-square&labelColor=0b0f17)
![Electron 43](https://img.shields.io/badge/electron-43-2de1fc?style=flat-square&labelColor=0b0f17)
![three.js r185](https://img.shields.io/badge/three.js-r185-2de1fc?style=flat-square&labelColor=0b0f17)
![GLSL3](https://img.shields.io/badge/shaders-GLSL3-ff2d95?style=flat-square&labelColor=0b0f17)
![platform windows macos linux](https://img.shields.io/badge/platform-windows%20macos%20linux-2de1fc?style=flat-square&labelColor=0b0f17)
**by [GANTASMO](https://gantasmo.com)**

[![Electron 43](https://img.shields.io/badge/Electron-43-2de1fc?style=flat-square&labelColor=0b0f17&logo=electron&logoColor=white)](https://www.electronjs.org)
[![three.js r185](https://img.shields.io/badge/three.js-r185-2de1fc?style=flat-square&labelColor=0b0f17&logo=threedotjs&logoColor=white)](https://threejs.org)
[![GLSL3 on WebGL2](https://img.shields.io/badge/shaders-GLSL3%20on%20WebGL2-2de1fc?style=flat-square&labelColor=0b0f17&logo=webgl&logoColor=white)](docs/SCENE_CONTRACT.md)
![Web Audio and AudioWorklet](https://img.shields.io/badge/audio-Web%20Audio%20%2B%20AudioWorklet-2de1fc?style=flat-square&labelColor=0b0f17)
[![16 procedural scenes](https://img.shields.io/badge/scenes-16%20procedural-ff2d95?style=flat-square&labelColor=0b0f17)](#scenes)

[![hardware Audima Sway](https://img.shields.io/badge/hardware-Audima%20Sway-ff2d95?style=flat-square&labelColor=0b0f17)](https://audima.com.au)
![platform Windows macOS Linux](https://img.shields.io/badge/platform-Windows%20%2F%20macOS%20%2F%20Linux-2de1fc?style=flat-square&labelColor=0b0f17&logo=windows&logoColor=white)
[![companion theDAW](https://img.shields.io/badge/companion-theDAW-7C3AED?style=flat-square&labelColor=0b0f17&logo=github&logoColor=white)](https://github.com/gantasmo/theDAW)
[![license MIT](https://img.shields.io/badge/license-MIT-2de1fc?style=flat-square&labelColor=0b0f17)](LICENSE)
![status active development](https://img.shields.io/badge/status-active%20development-F4A261?style=flat-square&labelColor=0b0f17)

[![Listen on Spotify](https://img.shields.io/badge/Listen-Spotify-1DB954?style=flat-square&labelColor=0b0f17&logo=spotify&logoColor=white)](https://open.spotify.com/artist/4q5n0QgK6mvyuw8FRzhuNA)
[![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?style=flat-square&labelColor=0b0f17&logo=youtube&logoColor=white)](https://www.youtube.com/@GANTASMO)
[![Follow @gantasmo on Instagram](https://img.shields.io/badge/Follow-%40gantasmo-E4405F?style=flat-square&labelColor=0b0f17&logo=instagram&logoColor=white)](https://www.instagram.com/gantasmo)
[![Follow @gantasmo on X](https://img.shields.io/badge/Follow-%40gantasmo-000000?style=flat-square&labelColor=0b0f17&logo=x&logoColor=white)](https://x.com/gantasmo)
[![Learn more at gantasmo.com](https://img.shields.io/badge/Learn%20More-gantasmo.com-7C3AED?style=flat-square&labelColor=0b0f17&logo=googlechrome&logoColor=white)](https://gantasmo.com)

> **GANTASMO** is an amorphous entity by [Daniel Joaquin Trujillo](https://github.com/danieljtrujillo)
> and [Josh Valenzuela](https://github.com/StarskreamEXE) that defies conventional
> classification. We make thought provoking, highly technical, yet listenable music
> inspired by the underappreciated pioneers of modern music. Beyond musical composition
> and performance, GANTASMO is a powerhouse of research and development in the fields
> Artificial Intelligence, Augmented Reality, Virtual Reality, the democratization of
> musical tools and education, and the preservation and evolution of musical history
> and traditions predating modern recording infrastructure.

---

SwayCommand is a desktop VJ instrument built around the Audima Labs Sway, a
gesture MIDI controller whose sixteen infrared sensors read hand positions in
Expand Down Expand Up @@ -316,10 +341,24 @@ header.

## Legal

SwayCommand is released under the [MIT license](LICENSE). "Sway" and "Audima
Labs" are the property of Audima Labs Pty Ltd. In accordance with Audima's terms
SwayCommand is released under the [MIT license](LICENSE), copyright 2026 Daniel
Joaquin Trujillo and GANTASMO. Derived files stay under their own licenses and
carry the upstream notice in their headers. "Sway" and "Audima Labs" are the
property of Audima Labs Pty Ltd. In accordance with Audima's terms
and conditions the application bundles no Audima software: the Doctor downloads
the official driver package and companion application directly from
`cdn.audima.com.au` onto the local machine, and verifies the companion
application against Audima's published minisign signature before opening the
installer.

---

[![Listen on Spotify](https://img.shields.io/badge/Listen-Spotify-1DB954?style=flat-square&labelColor=0b0f17&logo=spotify&logoColor=white)](https://open.spotify.com/artist/4q5n0QgK6mvyuw8FRzhuNA)
[![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?style=flat-square&labelColor=0b0f17&logo=youtube&logoColor=white)](https://www.youtube.com/@GANTASMO)
[![Follow @gantasmo on Instagram](https://img.shields.io/badge/Follow-%40gantasmo-E4405F?style=flat-square&labelColor=0b0f17&logo=instagram&logoColor=white)](https://www.instagram.com/gantasmo)
[![Follow @gantasmo on X](https://img.shields.io/badge/Follow-%40gantasmo-000000?style=flat-square&labelColor=0b0f17&logo=x&logoColor=white)](https://x.com/gantasmo)
[![Learn more at gantasmo.com](https://img.shields.io/badge/Learn%20More-gantasmo.com-7C3AED?style=flat-square&labelColor=0b0f17&logo=googlechrome&logoColor=white)](https://gantasmo.com)

Made by [Daniel Joaquin Trujillo](https://github.com/danieljtrujillo) and
[Josh Valenzuela](https://github.com/StarskreamEXE) as
[GANTASMO](https://gantasmo.com).
7 changes: 7 additions & 0 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,13 @@ Navigation and window creation are locked down for every web contents the applic
| `synesthesia.live` |
| `elektronauts.com` |
| `indiegogo.com` |
| `gantasmo.com` |
| `spotify.com` |
| `youtube.com` |
| `instagram.com` |
| `x.com` |
Comment on lines +156 to +160
| `electronjs.org` |
| `threejs.org` |

The list covers the application's own endpoints plus every host cited by the bundled documentation, so a link followed in the documentation viewer resolves without widening the policy to arbitrary URLs. `cdn.audima.com.au` has no entry of its own: the subdomain rule admits it under `audima.com.au`. The same predicate guards the `shell:openExternal` IPC channel, which is the only path the viewer has to the system browser.

Expand Down
2 changes: 1 addition & 1 deletion docs/OVERVIEW.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ The application fetches from Audima's hosts only:

All requests to Audima hosts carry the User-Agent `SwayCommand/0.1 (Sway companion; +https://github.com/swaycommand)`; the CDN rejects generic tool User-Agents. Requests to any other host are refused by the download layer, and renderer navigation is disabled entirely. The application collects no telemetry and writes no data outside its own settings directory, the Downloads folder (user-initiated), the user's chosen project locations, and a driver cache under the settings directory.

Handing a link to the system browser is the second, user-initiated path outward. `shell.openExternal` accepts an `https` URL only when its hostname matches an entry in `EXTERNAL_ALLOW` in `src/main/main.js`, or is a subdomain of one: `audima.com.au`, `github.com`, `githubusercontent.com`, `nodejs.org`, `community.polyexpression.com`, `discord.com`, `vidvox.net`, `huggingface.co`, `unity.com`, `resolume.com`, `st3nd.com`, `serato.com`, `synesthesia.live`, `elektronauts.com`, `indiegogo.com`. The list covers the hosts cited by the bundled documentation, so links in the documentation modal resolve without widening the policy to arbitrary URLs. A link outside the list is refused; the modal then shows an inline notice naming the URL so the reader can open it manually.
Handing a link to the system browser is the second, user-initiated path outward. `shell.openExternal` accepts an `https` URL only when its hostname matches an entry in `EXTERNAL_ALLOW` in `src/main/main.js`, or is a subdomain of one: `audima.com.au`, `github.com`, `githubusercontent.com`, `nodejs.org`, `community.polyexpression.com`, `discord.com`, `vidvox.net`, `huggingface.co`, `unity.com`, `resolume.com`, `st3nd.com`, `serato.com`, `synesthesia.live`, `elektronauts.com`, `indiegogo.com`, `gantasmo.com`, `spotify.com`, `youtube.com`, `instagram.com`, `x.com`, `electronjs.org`, `threejs.org`. The list covers the hosts cited by the bundled documentation, so links in the documentation modal resolve without widening the policy to arbitrary URLs. A link outside the list is refused; the modal then shows an inline notice naming the URL so the reader can open it manually.

## Data locations

Expand Down
10 changes: 6 additions & 4 deletions docs/media/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,12 @@ The PNGs are then scaled and re-encoded to WebP at quality 0.80 (0.86 for the
hero) through a canvas in the same Electron runtime. There is no native image
dependency in this tree.

Cold-cache warning: on a GPU shader cache that has never seen these scenes,
`miraclemile` and `naturestomb` block the calling thread for one to two minutes
on their first draw. That is the open compile regression recorded in
[HANDOFF.md](../../HANDOFF.md), not a harness fault. A second run is fast.
The plan's `electronArgs` mirror the two switches `src/main/main.js` sets,
`--use-angle=gl` and `--gpu-program-cache-size-kb=524288`, so the stills render
on the backend the application actually uses. Both matter here: without them the
harness falls back to ANGLE's D3D11 path, where fxc unrolls the constant-trip
loops in the largest shaders and the first draw of `naturestomb` costs 135 s
against 5.2 s on GL, and `miraclemile` 103 s against 3.7 s.

## Replacing a still with a recording

Expand Down
Binary file modified docs/media/banner.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading