Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update ftd2 libs with arm64 arch; but segfaults :( #549

Draft
wants to merge 2,386 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2386 commits
Select commit Hold shift + click to select a range
73a050f
add fromCenter option to the colorpulse shader
bencbartlett Aug 16, 2022
e4e535d
new geometric color pulse shader!
bencbartlett Aug 16, 2022
de71f76
add pulsedTime utility
bencbartlett Aug 16, 2022
62db633
add baaahs-optimized SQUAREZZZ shader
bencbartlett Aug 16, 2022
9de74bf
add LAZORS shader (WIP, doesn't work in sparklemotion yet...)
bencbartlett Aug 18, 2022
5ec3c5f
Add plasma shader to the library
nzoschke Aug 22, 2022
d45980e
Merge pull request #487 from baaahs/plasma-shader
nzoschke Aug 22, 2022
cd315ac
Merge branch 'baaahs:main' into main
bencbartlett Aug 22, 2022
224f096
Change firmware update log message from debug to warn.
xian Aug 23, 2022
60e2c33
Hide unused switch controls from vacuity.
xian Aug 23, 2022
dd0dd30
Merge pull request #488 from baaahs/hide-unused-switch
merge-when-green[bot] Aug 23, 2022
aec9e65
WIP - patch mods
xian Jul 14, 2022
d062d93
WIP
xian Aug 4, 2022
f48a22f
WIP more patch diagnostics
xian Aug 17, 2022
0fe16a9
WIP: kinda working/buggy!
xian Aug 23, 2022
e4b65b6
WIP: kinda working/buggy! still
xian Aug 23, 2022
7706a1c
More WIP
xian Aug 23, 2022
280af74
WIP
xian Aug 27, 2022
32d7c53
Add Ben's show as a template.
xian Aug 27, 2022
426e04e
Merge branch 'playa2022' into patchmod-scale
xian Aug 27, 2022
5f8cfde
Button groups may allow for multiple selection.
xian Aug 27, 2022
124cf51
Add reset button for sliders and xypads.
xian Aug 27, 2022
4ce074f
Fix long-press-event.min.js in prod.
xian Aug 27, 2022
f519a09
Fix clickability of non-button items in button groups.
xian Aug 31, 2022
9528a85
Try to fix color clipping in Safari visualizer.
xian Aug 31, 2022
e34c604
Fix longpress in prod mode.
xian Sep 3, 2022
45150ab
Merge remote-tracking branch 'xian-laptop/patchmod-scale' into patchm…
xian Sep 3, 2022
3621ba4
Playa 2022 show.
xian Sep 3, 2022
7d60b9f
Playa 2022 show, reformat.
xian Sep 3, 2022
48f4d1f
Merge branch 'baaahs:main' into main
bencbartlett Sep 8, 2022
fdc3bcc
on-playa shader updates and bugfixes
bencbartlett Sep 8, 2022
fec1c3a
(on-playa) added blackout, scanner, sound brightness, and zigzag effects
bencbartlett Sep 8, 2022
64f4aad
Update to state at Burning Man 2022; ben lightshow updates
bencbartlett Sep 8, 2022
4dcc3d3
Fix long-press-event.min.js in prod.
xian Aug 27, 2022
14ca723
Fix Patch Diagnostics for simulator, sort of.
xian Sep 12, 2022
05272f0
Merge pull request #492 from baaahs/fix-sim-diagnostics
merge-when-green[bot] Sep 12, 2022
a55311a
Introduce patch mods: pluggable adjustments that can be applied to fe…
xian Jul 14, 2022
04b9f5f
More patchmods.
xian Aug 4, 2022
3439707
Add Feeds patch diagnostic.
xian Aug 17, 2022
ba3dee2
Patch mods: kinda working/still buggy!
xian Aug 23, 2022
5dae3aa
Clean up position/scale patch mod.
xian Aug 23, 2022
4a5f776
Hide unused switch controls from vacuity.
xian Aug 23, 2022
a2142a8
Add Ben's show as a template.
xian Aug 27, 2022
68c2d27
Button groups may allow for multiple selection.
xian Aug 27, 2022
851baa3
Add reset button for sliders and xypads.
xian Aug 27, 2022
530563e
Fix long-press-event.min.js in prod.
xian Aug 27, 2022
869f890
Fix clickability of non-button items in button groups.
xian Aug 31, 2022
e3d7392
Try to fix color clipping in Safari visualizer.
xian Aug 31, 2022
57622ec
Pinky can be paused in simulator.
xian Sep 12, 2022
1429759
Disable uniform spying for now, and remove some spurious logging.
xian Sep 13, 2022
2666638
Merge branch 'main' into patchmods
xian Sep 13, 2022
8a49be9
Pretty up DAG presentation of patchmods.
xian Sep 13, 2022
1ebb8aa
Fix specs for patchmods.
xian Sep 15, 2022
bf630d2
Fix spec related to multiple selection button groups.
xian Sep 15, 2022
3c5c3c9
Patch detail popup includes controls relevant to the patch.
xian Sep 15, 2022
a3626f4
Extract patchmods to individual files.
xian Sep 15, 2022
886c262
Merge pull request #493 from baaahs/patchmods
merge-when-green[bot] Sep 15, 2022
ab79cc9
Merge pull request #475 from bencbartlett/main
xian Sep 17, 2022
696849e
Errors in datasource declaration comments don't crash UI.
xian Sep 17, 2022
2124469
Use pointer events rather than mouse events for XY pad.
xian Sep 17, 2022
f0849b5
Merge pull request #495 from baaahs/fix-491
merge-when-green[bot] Sep 17, 2022
f329d35
Further fix for xypad manipulation on iPad: prevent viewport scrolling.,
xian Sep 17, 2022
7e077e5
Merge pull request #494 from baaahs/fix-482
xian Sep 17, 2022
df5b586
Merge pull request #496 from baaahs/fix-491
merge-when-green[bot] Sep 17, 2022
79f225f
Bump to Kotlin 1.7.10.
xian Aug 2, 2022
2221c09
Fix build for Kotlin 1.7.
xian Sep 21, 2022
5f1d80f
Use a BOM for kotlin wrappers.
xian Sep 21, 2022
cd1a89e
Bump kotlin wrappers to 390.
xian Sep 21, 2022
64f8568
Merge pull request #469 from baaahs/kotlin-1.7.0
merge-when-green[bot] Sep 22, 2022
2003b82
Allow direct loading of patch editor in dev environment at /patch-edi…
xian Sep 22, 2022
76a72dd
Rearrange patch editor layout to give more vertical space to text edi…
xian Sep 22, 2022
478ac87
Merge pull request #497 from baaahs/patch-editor-cleanup
merge-when-green[bot] Sep 22, 2022
35a1ba8
Don't auto-adjust gadgets by default in the patch editor.
xian Sep 23, 2022
c0a613a
Patch editor tidying.
xian Sep 23, 2022
7dcb8fb
Fix ShaderToyShaderDialect title.
xian Sep 23, 2022
202e0d5
Merge pull request #498 from baaahs/patch-editor-cleanup
merge-when-green[bot] Sep 23, 2022
2d56b39
Optimize show reopens with better shader analysis caching.
xian Sep 23, 2022
8b77f3c
Pinky doesn't need to notify observers on every frame.
xian Sep 23, 2022
efe0db0
When dragging grid items, only commit a show change when finished dra…
xian Sep 23, 2022
4e16ff0
GridLayout: Refactor Layout to know its max column and row count.
xian Sep 23, 2022
69074cf
GridLayout: Move Layout.collides to LayoutItem.collidesWith.
xian Sep 24, 2022
c7fb39a
Quiet a spurious UI error message.
xian Sep 24, 2022
65c60fc
GridLayout: Fix some bugs in port from react-grid-layout.
xian Sep 25, 2022
265be05
Make DAG edges curvy.
xian Sep 25, 2022
0a4ccf4
Switch off extra debug logging.
xian Sep 25, 2022
deb0b5a
Merge pull request #499 from baaahs/grid-fixes
merge-when-green[bot] Sep 25, 2022
b36046a
Kill a spurious React warning.
xian Sep 26, 2022
d82f32d
Rename "Wobble" shader to "Ripple".
xian Sep 26, 2022
d1bc114
Cleanups.
xian Sep 26, 2022
82f99d8
Merge pull request #500 from baaahs/shader-cleanup
merge-when-green[bot] Sep 26, 2022
0922b94
Fixed a bunch of bugs in moving items in a grid layout; added some sp…
xian Sep 30, 2022
8365b06
Merge pull request #503 from baaahs/grid-fixes
merge-when-green[bot] Sep 30, 2022
64dd627
Grid layout cleanup.
xian Oct 1, 2022
30f547e
Optimize MovingHeadPreview and ProjectionPreview to select async resu…
xian Oct 1, 2022
4fb1190
Toolchain optimization.
xian Oct 1, 2022
6cff0b5
Add "Developer Mode" UI setting and client toolchain stats display.
xian Oct 1, 2022
f0fb771
Merge pull request #504 from baaahs/grid-fixes
merge-when-green[bot] Oct 1, 2022
605da53
Fix a few bugs.
xian Oct 2, 2022
13a290d
Merge branch 'grid-fixes'
xian Oct 2, 2022
8980047
Merge remote-tracking branch 'mini/playa2022'
xian Oct 6, 2022
3c306e6
Changes to show from BRC 2022.
xian Oct 6, 2022
c619de3
Update Ben's Show template with final BRC 2022 show changes.
xian Oct 6, 2022
4c11acf
Merge remote-tracking branch 'mini/playa2022' into playa-2022
xian Oct 6, 2022
576fd6f
Merge remote-tracking branch 'mini/patchmod-scale' into playa-2022
xian Oct 6, 2022
2efd23e
Merge branch 'playa-2022'
xian Oct 6, 2022
6944340
Pull OpenShowVisitor out of OpenShow.kt.
xian Oct 6, 2022
8056ff1
Fix OpenShowVisitor to visit patches within grid layouts.
xian Oct 6, 2022
b214da2
Merge pull request #505 from baaahs/fix-app-problems
merge-when-green[bot] Oct 6, 2022
a267ce0
Bump from Kotlin 1.7.10 to 1.7.20.
xian Oct 7, 2022
db95ef7
Migrate code for ktor 2.x.
xian Oct 7, 2022
fcafe1e
Merge pull request #506 from baaahs/kotlin-1.7.20
merge-when-green[bot] Oct 7, 2022
306475a
Visualizers take model unit scale into account.
xian Oct 11, 2022
2b8de01
Visualizers take model unit scale into account.
xian Oct 11, 2022
bb65166
Merge pull request #507 from baaahs/visualizers-honor-model-scale
merge-when-green[bot] Oct 12, 2022
29f2d9a
Hack to make visualizer pixels look right for BAAAHS and grids.
xian Oct 12, 2022
b844297
Merge pull request #509 from baaahs/fix-pixel-pitch
merge-when-green[bot] Nov 5, 2022
8608dc8
Direct URL for mapper is no longer used.
xian Oct 18, 2022
f5235de
Refactor PinkyMain for clarity/DRY.
xian Oct 18, 2022
b93921c
Update link in comment.
xian Oct 18, 2022
f39ecea
Imported shaders could take their title from the containing file's name.
xian Oct 22, 2022
cf6a118
Refactoring ShaderDialect to return intermediate Analyzer object.
xian Oct 23, 2022
606f6a6
Refactored ShaderDialect to return intermediate ShaderAnalyzer object…
xian Oct 24, 2022
5669ddd
More refactoring after ShaderDialect/ShaderAnalysis split.
xian Oct 24, 2022
617fae8
ShaderDialect can hold wellKnownShaderPorts, for UI/help system expos…
xian Oct 24, 2022
14ddf10
Case-insensitive shader library matching.
xian Oct 25, 2022
53380cc
Add Earth-like planet preview shader, unusued.
xian Oct 27, 2022
1b95a61
Use KeyboardEvent.code instead of KeyboardEvent.key to distinguish sh…
xian Oct 27, 2022
e871b04
Changes to Shader Library.
xian Oct 27, 2022
dea7212
Pull out Tokenizer from GlslParser.Context.
xian Oct 29, 2022
3bdc8f5
Simplify GlslParser tokenization logic.
xian Oct 29, 2022
8d97a4c
Refactor GLSL function body rewriting to use improved token parser.
xian Oct 29, 2022
0487a90
Merge pull request #510 from baaahs/isf-shader-library-prep
merge-when-green[bot] Nov 5, 2022
46325e8
Bump to Kotlin 1.7.21.
xian Nov 9, 2022
077e5c3
Use circleci medium+ resource class for more RAM (6g > 4g).
xian Nov 9, 2022
3c24e8d
Merge pull request #511 from baaahs/kotlin-1.7.21
merge-when-green[bot] Nov 9, 2022
12735bf
Fix circleci test results.
xian Nov 10, 2022
5e936c6
Bump circleci image to JDK 18.
xian Nov 10, 2022
322d71b
Merge pull request #512 from baaahs/circleci-bump-docker-img
merge-when-green[bot] Nov 10, 2022
9d8e8e4
Remove debug output.
xian Nov 14, 2022
72226e6
Initial support for #if/elif directives in glsl.
xian Nov 14, 2022
edd21c0
Support #if/elif condition evaluation in GLSL.
xian Nov 15, 2022
e2e70ee
Merge pull request #513 from baaahs/if-directive
merge-when-green[bot] Nov 15, 2022
d0fbf49
Fix patch-editor.html.
xian Nov 15, 2022
eebed75
Change views in baaahs.app.ui to match *View convention.
xian Nov 10, 2022
1f8f29c
Move DOT/DAG support to common.
xian Nov 10, 2022
a93173a
Fix LinkedProgram.linkNodes mutability.
xian Nov 6, 2022
76885eb
Shader preview isn't built unless/until its view is visible.
xian Nov 14, 2022
678ba42
Support precision modifiers in GLSL function declarations.
xian Nov 13, 2022
384626e
Merge pull request #514 from baaahs/pre-isf
merge-when-green[bot] Nov 15, 2022
1ad1ea1
DRY creating control add menu items.
xian Nov 23, 2022
da89467
Theme and app toolbar styling cleanup.
xian Nov 24, 2022
5053fc6
Fix button group internal grid layout editing.
xian Nov 24, 2022
6079a03
Fix button group internal grid layout's Match Parent behavior.
xian Nov 24, 2022
763d974
Fix Ben's Show internal grids that shouldn't have been matching parent.
xian Nov 24, 2022
6a52ac2
"Edit" button in app toolbar is always visible.
xian Nov 24, 2022
75e4395
Merge pull request #517 from baaahs/fix-button-group-inner-grid
merge-when-green[bot] Nov 24, 2022
8f15289
Less jarring beatlink control.
xian Nov 24, 2022
87b9413
Merge pull request #518 from baaahs/prettier-beatlink-glsl
merge-when-green[bot] Nov 24, 2022
4c7b34c
Optimize initial layout/render of grids.
xian Nov 25, 2022
d1215ee
Optimize initial layout/render of visualizer control.
xian Nov 25, 2022
0abb659
DRY grid background.
xian Nov 25, 2022
1de4c3d
Tweaks to grid button layout at compact scales to fix overflow.
xian Nov 26, 2022
0c3163d
Show circular progress while shader previews are built.
xian Nov 26, 2022
c5e52d3
Merge pull request #519 from baaahs/ui-optimizations
merge-when-green[bot] Nov 26, 2022
d2c6ece
First render optimizations.
xian Nov 26, 2022
e1b8ebc
If a button is less than twice the height of a line of text, reduce l…
xian Nov 26, 2022
bfdde73
Merge pull request #520 from baaahs/ui-optimizations
xian Nov 26, 2022
543baa1
Bump kotlin-wrappers to 1.0.0.pre.451.
xian Nov 27, 2022
ff1108e
Merge pull request #521 from baaahs/kotlin-wrappers-pre-451
merge-when-green[bot] Nov 27, 2022
a67a30e
Remove 1.25mb, Peter Thiel, and blueprintjs from client.
xian Nov 27, 2022
5719409
Condense simulator layout a bit.
xian Nov 29, 2022
bffd8ef
Merge pull request #522 from baaahs/condense-sim-ui
merge-when-green[bot] Nov 30, 2022
92a3624
Rename "Feed" to "FeedContext".
xian Dec 6, 2022
4595931
Rename "EngineFeed" and "ProgramFeed" to "EngineFeedContext" and "Pro…
xian Dec 17, 2022
2a786af
Rename "DataSource" to "Feed", et al.
xian Dec 17, 2022
891044d
Rename more DataSource-related things.
xian Dec 17, 2022
36c866a
Rename even more DataSource-related things.
xian Dec 17, 2022
eabe06c
Rename still more DataSource-related things.
xian Dec 17, 2022
e90f439
Rename baaahs.plugin.core.datasource package to feed.
xian Dec 17, 2022
bb99feb
Rename yet more DataSource-related things.
xian Dec 17, 2022
af6eabb
Migrate show JSON from data sources to feeds.
xian Dec 17, 2022
f28e582
Fix tests.
xian Dec 17, 2022
acdc31a
Merge pull request #523 from baaahs/data-sources-are-feeds
xian Dec 17, 2022
6faaec7
Bump kgl to 1.6.1.
xian Dec 19, 2022
90bb527
Merge pull request #524 from baaahs/kgl-1.6.1
xian Dec 20, 2022
a6f9fa2
Bump to ace-builds 1.14.0. Regenerate stubs.
xian Dec 20, 2022
594b3c8
It's possible that both `shader` and `previewShaderBuilder` will be n…
xian Dec 28, 2022
82d6a54
Switch to JS IR backend. Fix some external lib issues.
xian Dec 28, 2022
0b5f424
Merge pull request #409 from baaahs/js-ir
xian Dec 29, 2022
3b71a77
Simulator styling.
xian Dec 30, 2022
38461ee
Extract `type` property for migrations.
xian Feb 6, 2023
1e13ce5
Draw line connecting segments of light bar models.
xian Feb 6, 2023
6aa5991
Invert sense of Grid's ColumnsThenRows/RowsThenColumns. Grid defaults…
xian Feb 7, 2023
9b80b23
Grids may have a stagger period, which causes rows or columns to be s…
xian Feb 7, 2023
d89de6b
Reimplement numberTextField as a component, allowing error states.
xian Feb 8, 2023
7c82d15
Merge pull request #525 from baaahs/grid-swap-and-stagger
xian Feb 12, 2023
6c47237
Bump to Kotlin 1.8.0.
xian Dec 29, 2022
a15171e
Fixes for Kotlin 1.8.0.
xian Dec 30, 2022
0465f39
Upgrade to Gradle 8.0.2.
xian Mar 11, 2023
f126d03
Upgrade to Kotlin 8.10.
xian Mar 11, 2023
14bfe97
Fix build task deps vs gradle 8.
xian Mar 12, 2023
de1a887
Fix compile error in tests.
xian Mar 12, 2023
e23444d
Back to Gradle 7.5.1 cuz build time was up 133% ouch.
xian Mar 12, 2023
3251bcf
Merge pull request #526 from baaahs/kotlin-1.8
xian Mar 12, 2023
9749c25
Kotlin 1.8 upgrade wasn't fully baked, revert for now.
xian Mar 31, 2023
54829ed
Add 7-channel DMX mapping for Rockpar Tris.
xian Mar 23, 2023
ad07810
Fix light bar visualization when row/column gap is negative.
xian Mar 23, 2023
c08ac1f
Fix JS executable serving.
xian Mar 23, 2023
4564dfd
Include Roboto font locally.
xian Mar 23, 2023
d181489
Add server-side gamma correction.
xian Mar 23, 2023
185c3de
Fix bug in Pasture Bedtime template.
xian Mar 31, 2023
e2d60e6
Change exception when a layout is missing from fatal to error log.
xian Mar 31, 2023
7b3b660
Oops, new grid entities should default to zigZag=true.
xian Mar 31, 2023
c845283
Add Eve Rafters show template. <3
xian Mar 31, 2023
8bc8f38
Merge pull request #527 from baaahs/eve-rafters-fixes
xian Mar 31, 2023
784ece4
ESP-IDF update to version 5.0.1! Yay! It works (probably. I mean it s…
tomseago Apr 4, 2023
aaa8c6b
Fix bug causing scene editor objects to disappear after each edit.
xian Apr 23, 2023
e177689
Don't refit scene editor camera after every edit, just on first render.
xian Apr 23, 2023
186ae1d
Merge pull request #528 from baaahs/fix-scene-editor
xian Apr 24, 2023
ed9993f
Fix control sizing in vacuity.
xian Mar 31, 2023
fd0fa71
Prevent long-press on iOS from selecting things.
xian Mar 31, 2023
d67a31a
Merge branch 'ever-afters'
xian Apr 24, 2023
c46089a
Fix disabling of incorrect file types in Open Show/Open Scene dialogs.
xian Apr 25, 2023
04405a5
Apply gamma correction to shaded pixels.
xian Jun 18, 2023
1adf481
Apply gamma correction to UI LEDs.
xian Jun 18, 2023
6572962
Ugh. Closer?
xian Jun 18, 2023
bcbe163
Minor syntax tweaks to make the build go
tomseago Jun 19, 2023
9b8fa95
MonitorUI should have its own scoped Visualizer which doesn't collide…
xian Jun 22, 2023
f3a87d2
Mark PortRef as polymorphic for serialization.
xian Jun 23, 2023
e2b36f3
Refactor fixtures.
xian Oct 12, 2022
72bdf76
Cleanup.
xian Jun 24, 2023
4cb4606
Fix some weird color warnings.
xian Oct 12, 2022
dcdc92a
Don't impose Fixture fixtureType rule yet.
xian Jun 24, 2023
6367a9d
Merge pull request #516 from baaahs/collapse-fixtures
merge-when-green[bot] Jun 24, 2023
5ecfae0
Merge pull request #533 from baaahs/brain-gamma
xian Jul 17, 2023
d61e2e7
Fix favicon.
xian Jul 25, 2023
9422fe9
Fix favicon. Better.
xian Jul 25, 2023
d1a7405
Merge pull request #536 from baaahs/favicon
xian Jul 25, 2023
4a86a17
Fix editor for DmxTransportConfig.fixtureStartsInFreshUniversel
xian Aug 1, 2023
95256e4
Fix bug causing incorrect (all-zero) light bar pixel locations. Thank…
xian Aug 1, 2023
bf1050e
Light bar and ring pixels are visible on both front and back.
xian Aug 1, 2023
f1f6ba1
Increase size of pixels for Light bar and ring simulations, for bette…
xian Aug 1, 2023
429e5ee
Improve light bar visualization.
xian Aug 1, 2023
85bba9b
Add Club Six scene as a template.
xian Aug 1, 2023
1941ed5
Include JNI libs for lwjgl for all supported platforms.
xian Aug 1, 2023
a2f078f
Add explicit resource for serving sparklemotion.js.
xian Aug 1, 2023
1272130
Merge pull request #539 from baaahs/clubsix
xian Aug 1, 2023
426a4a6
sim::image use html input instead of dropzone
kcking Aug 4, 2023
9d5d3b3
Merge pull request #541 from kcking/imageupload
xian Aug 4, 2023
0f1abb7
update ftd2 libs with arm64 arch; but segfaults :(
kcking Aug 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
82 changes: 82 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
version: 2
jobs:
build:
branches:
ignore: gh-pages

docker:
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
- image: cimg/openjdk:18.0.2-node

resource_class: medium+

working_directory: ~/repo

environment:
NO_GPU: "true"

steps:
- checkout

- restore_cache:
keys:
- v1-dependencies-{{ checksum "build.gradle.kts" }}
- v1-dependencies-

- run:
name: Prefetch Dependencies
command: |
./gradlew model -PisProduction

- save_cache:
paths:
- ~/.gradle
key: v1-dependencies-{{ checksum "build.gradle.kts" }}

- run:
name: Build
command: |
./gradlew build -PisProduction -xjsBrowserTest --stacktrace --no-daemon --no-parallel --info

- add_ssh_keys:
fingerprints:
- "e6:55:46:24:0b:66:40:62:f9:72:10:00:de:41:37:e6"

- run:
name: Save test results
command: |
mkdir -p build/test-results-circleci
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} build/test-results-circleci/ \;
when: always

- store_test_results:
path: build/test-results

- store_artifacts:
path: build/processedResources/js/main

- store_artifacts:
path: build/reports

- run:
name: Deploy to gh-pages
command: |
if [ "${CIRCLE_BRANCH}" == "main" ]; then
mkdir -p build/gh-pages/.circleci
cp .circleci/gh-pages-config.yml build/gh-pages/.circleci/config.yml

cp -r build/distributions/* build/gh-pages

# don't ignore files starting with _
touch build/gh-pages/.nojekyll

echo "Build ${CIRCLE_BUILD_NUM:-unknown} at `date`." > build/gh-pages/BUILT.txt

git config --global user.email "[email protected]"
git config --global user.name "CI Builder"

mkdir -p deploy/node_modules
npm install --prefix deploy --silent [email protected]
`npm bin --prefix deploy`/gh-pages --dotfiles --message "Auto deploy" --dist build/gh-pages
fi
5 changes: 5 additions & 0 deletions .circleci/gh-pages-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
version: 2
jobs:
build:
branches:
ignore: gh-pages # prevent gh-pages from triggering circleci
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
build
.idea
.gradle
node_modules
.DS_Store
306 changes: 306 additions & 0 deletions CMakeLists.txt

Large diffs are not rendered by default.

91 changes: 91 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# BAAAHS Code of Conduct

## 1. Purpose

A primary goal of BAAAHS (Big-Ass Amazingly Awesome Homosexual Sheep) is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of age, gender, sexual orientation, sexual position (top, bottom, versatile), ability, ethnicity, socioeconomic status, technical ability, fashion-sense, and religion (or lack thereof).

This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior.

We invite all those who participate in BAAAHS to help us create safe and positive experiences for everyone.

## 2. Open Culture Citizenship

A supplemental goal of this Code of Conduct is to increase open culture citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community.

Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society.

If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, we want to know.

## 3. Expected Behavior

The following behaviors are expected and requested of all community members:

* Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community.
* Exercise consideration and respect in your speech and actions.
* Attempt collaboration before conflict.
* Refrain from demeaning, discriminatory, or harassing behavior and speech.
* Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential.
* Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations.

## 4. Unacceptable Behavior

The following behaviors are considered harassment and are unacceptable within our community:

* Violence, threats of violence or violent language directed against another person.
* Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language.
* Posting or displaying violent material.
* Posting or threatening to post other people's personally identifying information ("doxing").
* Personal insults, particularly those related to gender, sexual orientation, sexual position, race, religion, or disability.
* Inappropriate photography or recording.
* Inappropriate physical contact. You should have someone's consent before touching them.
* Unwelcome sexual attention. This includes, inappropriate touching, groping, and unwelcomed sexual advances without consent.
* Deliberate intimidation, stalking or following (online or in person).
* Advocating for, or encouraging, any of the above behavior.
* Sustained disruption of community events, including talks, presentations, and parties.

## 5. Weapons Policy

No weapons will be allowed at BAAAHS events, community spaces, or in other spaces covered by the scope of this Code of Conduct. Weapons include but are not limited to guns, explosives, and large knives such as those used for hunting or display, as well as any other item used for the purpose of causing injury or harm to others. Anyone seen in possession of one of these items will be asked to leave immediately, and will only be allowed to return without the weapon. Community members are further expected to comply with all state and local laws on this matter.

## 6. Consequences of Unacceptable Behavior

Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated.

Anyone asked to stop unacceptable behavior is expected to comply immediately.

If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event).

## 7. Reporting Guidelines

If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. Use our email: [email protected]

Additionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress.

## 8. Addressing Grievances

If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify [email protected] with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies.


## 9. Scope

We expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venues--online and in-person--as well as in all one-on-one communications pertaining to community business.

This code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members.

## 10. Contact info

[email protected]

## 11. License and attribution

The BAAAHS Code of Conduct is a fork of the Citizen Code of Conduct. The Citizen Code of Conduct is distributed by [Stumptown Syndicate](http://stumptownsyndicate.org) under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/).

Portions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy).

_Revision 2.3. Posted 6 March 2017._

_Revision 2.2. Posted 4 February 2016._

_Revision 2.1. Posted 23 June 2014._

_Revision 2.0, adopted by the [Stumptown Syndicate](http://stumptownsyndicate.org) board on 10 January 2013. Posted 17 March 2013._
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License

Copyright (c) 2013-2019 BAAAHS

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
146 changes: 143 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,146 @@
# BAAAHS Simulator 2
# Sparkle Motion

[![CircleCI:main](https://circleci.com/gh/baaahs/sparklemotion.svg?style=svg)](https://circleci.com/gh/baaahs/sparklemotion)

Sparkle Motion is the system used to control the lights on [BAAAHS](http://baaahs.org), but it's
designed so it could be applied to pretty much any lighting project. It includes a browser-based
light show designer and performance interface, 3D light mapping, IP-based control protocol, and
custom LED control hardware and firmware. We designed it all pretty much from scratch, because
we're nerds. We hope you'll have some fun with it and maybe find it useful.

| ![SparkleMotionDemo-20220308](https://user-images.githubusercontent.com/40298/157351650-5b3338b7-757a-4e76-bfe2-743a06bb2891.gif) | <img src="/brc-2019.gif" alt="BAAAHS at BRC 2019" width="400"> |
| --- | --- |
| The Sparkle Motion [Simulator](https://baaahs.github.io/sparklemotion) | BAAAHS at Black Rock City, 2019 |


> **tl;dr:**
>
> Shows are built out of small scripts called shaders, which are written in
> [GLSL](https://www.khronos.org/opengl/wiki/Core_Language_(GLSL)). Lots of [awesome](http://glslsandbox.com/)
> [free](https://www.shadertoy.com/) shaders and [dev](https://github.com/radixzz/awesome-glsl)
> [tools](https://shaderfrog.com/) already exist on the internet. In the show designer, you can create or
> import shaders, and attach them to buttons or sliders in a customizable performance UI. Shaders can be
> combined in interesting ways to create new effects. You can make shows reactive to the environment by
> connecting external sensor data—like a beat detector, midi controller, sound spectral analysis, or a
> webcam—to shader variables.
>
> Sparkle Motion can control LED strips using
> [sACN](https://artisticlicenceintegration.com/technology-brief/technology-resource/sacn-and-art-net/)
> or our custom IP protocol, and Sharpy-style moving heads
> over DMX, but it could be extended to control pretty much any kind of device. Lights can be mapped to a
> 3D model using computer vision. Individual lighting fixtures, or groups of fixtures, can be controlled
> separately. All types of lights are controlled using the same language and idioms.
>
> On the hardware side, Sparkle Motion includes specs for an ESP32-based controller which you could build
> (or [buy from us](mailto:[email protected])!) managing WS2812-family LEDs, which is controlled over
> Ethernet or WiFi.

----

## Show Designer

A _show_ is a collection of shaders, attached to UI elements, which can be arbitrarily combined and made reactive to the
environment using sensors,

(more TK)

## Scene Configuration

Sparkle Motion shows may be designed with a specific model and display fixtures in mind, but most shows can be applied to any model and fixtures.

To facilitate this, Sparkle Motion separates configuration of scene elements (the physical model and fixtures) from visuals and the performance interface.

| Term | Definition |
| --- | --- |
| **Driver** | A pluggable software component that can talk to specific types of display controller hardware, e.g. Brains, WLED, or DMX USB dongles. |
| **Controller** | A physical component directly connected to display hardware, e.g. a Sparkle Motion Brain, a WLED controller, or a DMX USB dongle. One or more fixtures may be associated with a controller. |
| **Fixture** | A physical display device, e.g. a moving head, a pixel array surface (a.k.a. panel), an LED bar, etc. |
| **Scene/Stage?** | The collection of fixtures under control of Sparkle Motion, which may be identified as model entities, or anonymous. |
| **Geometry** | The physical shape of a pixel array fixture. |
| **Model** | A 3-dimensional model to which fixtures may be mapped. Models may be composed of OBJ files and explicitly placed entities. |
| **Entity** | An object within the model, e.g. a sheep panel or eye. |

Note that in some cases a single controller may control multiple fixtures. Commonly, a physical DMX USB dongle may have
multiple moving heads attached. It's possible (but less common) for a single brain or WLED controller to be attached to
multiple physical lighting fixtures.

Also, it's possible for a DMX controller to manage multiple DMX universes, e.g. in the case of a WLED controller
managing more than 170 pixels.

ERD:

Driver <->* Controller <->* Fixture <->? Entity *<--> Model

A fixture may be *identified* or *anomnymous*.

Identified fixtures are associated with an entity in the model, and therefore have a known position and geometry.

Anonymous fixtures are mostly for stuff like bikers-by. They are randomly placed within the model. Pixel arrays are assumed to be linear.

## Mapper

Sparkle Morton's mapper lets you detect arbitrarily-placed lights on a 2D or 3D model using just a camera
connected to a laptop.

(more TK)

## Hardware

(more TK)

[More here](brain/sw/README.md).

## Simulator

The entire system can be run within a web browser in simulation mode. Every component is modeled in software
so you can see how it will behave in the real world.


-->

## Old Documentation
* [Show API](show_api.md) (outdated)
* [API docs](https://baaahs.github.io/sparklemotion/doc/sparklemotion/) (outdated)

## Prerequisites

1. Install [Java](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html)
1. Open as a gradle project with [IntelliJ](https://www.jetbrains.com/idea/download/)

## Running from source

* Open as a gradle project with [IntelliJ](https://www.jetbrains.com/idea/download/)
* Open `src/jsMain/resources/index.html` using "Open in Browser -> Chrome" from IntelliJ context menu
### Simulator Mode

In simulator mode, most of Sparkle Motion runs within a web browser.

Run this in a shell window; a browser window will open with the simulator:

./gradlew --continuous jsRun

### Production Mode

In production mode, Sparkle Motion runs in a JVM process and talks to real hardware.

To start it, run:

./gradlew runPinkyJvm

If you don't have a Brain running locally, do this too:

./gradlew runBrainJvm

When running in this mode you should be able to access the UI at http://localhost:8004

### Builds the production (minified) js package

To build the production minified js package run:

```
./gradlew jsBrowserWebpack
```

## CI & Deployment

Continuous build here: https://circleci.com/gh/baaahs/sparklemotion

Passing builds are automatically deployed here: https://baaahs.github.io/sparklemotion
Loading