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

🔧 WIP — use gradle application plugin #293

Open
wants to merge 1,632 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1632 commits
Select commit Hold shift + click to select a range
895d9d6
Merge pull request #352 from baaahs/transitions
xian Mar 18, 2021
076ab1e
Mockup of more buttons in Transition control.
xian Mar 18, 2021
a41d279
Merge pull request #356 from baaahs/transitions
xian Mar 18, 2021
4d3cada
Add filesystem delete support.
xian Mar 18, 2021
b1aab9a
First pass at shader libraries.
xian Mar 18, 2021
6797813
Merge pull request #355 from baaahs/shader-libraries
merge-when-green[bot] Mar 18, 2021
8a02633
Misc fixes.
xian Mar 18, 2021
773478c
Don't full-screen the shader library dialog.
xian Mar 18, 2021
95fa054
Extract GadgetManager from StageManager.
xian Mar 19, 2021
a678d69
Port slider from JSX to Kotlin.
xian Mar 24, 2021
91b47e1
Fix layout editor display bug.
xian Mar 24, 2021
206d8e8
Slider cleanup and styling.
xian Mar 24, 2021
e5fc2cd
Initial alternate/context state display for sliders.
xian Mar 25, 2021
f7f4cea
Minor Transition styling cleanup.
xian Mar 25, 2021
d333520
Rearrange/repackage controls.
xian Mar 25, 2021
fc5950d
Extract core datasources to top-level classes.
xian Mar 26, 2021
28b89e0
Rename Slider.value to position.
xian Apr 1, 2021
80fab21
Rename baaahs.ui.Renderer to View.
xian Apr 1, 2021
b9a4091
Slim down ShowPlayer interface a little.
xian Apr 4, 2021
362e9dc
Add stack trace to server notices.
xian Apr 16, 2021
983a23c
Merge pull request #359 from baaahs/transitions-prep
xian Apr 16, 2021
ebc83a2
Something's wrong with when Gadget#withoutTriggering is called from t…
xian Apr 16, 2021
7fc31f2
Add --no-daemon to gradle invocation on CI, seems to fix build bustage.
xian Apr 16, 2021
6c6b91e
Reimplement simulator's fake client device in Kotlin.
xian Apr 19, 2021
f2fc872
Merge pull request #362 from baaahs/fake-client-device-kotlin
merge-when-green[bot] Apr 19, 2021
b34ec95
Reimplement sliders as first-class controls, not GadgetControls.
xian Apr 18, 2021
a904873
Panel size is now fixed (but possibly scrolling) regardless of content.
xian Apr 20, 2021
f596507
Merge pull request #364 from baaahs/gadget-controls
xian Apr 21, 2021
049a6eb
Extract BaseShaderDialect from HintedShaderDialect.
xian Apr 14, 2021
8d090fe
Fixes for GLSL parser.
xian Apr 16, 2021
5a74dde
Add support for bool uniforms/switches.
xian Apr 22, 2021
bda7bc2
Fix array index out of bounds error when panel bucket depth exceeds s…
xian Apr 22, 2021
e9b76b8
Show shader error annotations in editor as soon as it opens.
xian Apr 22, 2021
503b17e
Add support for ISF shaders.
xian Apr 22, 2021
150c83b
Guess a decent step value for slider if not specified.
xian Apr 22, 2021
2ba7eac
Add DateDataSource.
xian Apr 22, 2021
c002638
Improvements to shader port link editor.
xian Apr 24, 2021
b4d3caa
Extract shader instance editor properties panel to separate component.
xian Apr 22, 2021
87eec6d
Improvements to shader preview.
xian Apr 23, 2021
13cf65c
Merge pull request #360 from baaahs/isf-dialect
xian Apr 24, 2021
83a7c6d
Comments in GLSL macro defines should be ignored.
xian Apr 24, 2021
8a7ec2c
Merge pull request #365 from baaahs/fix-macro-comments
merge-when-green[bot] Apr 24, 2021
d5672a6
Add "New Shader…" menu item to start with a blank shader.
xian Apr 29, 2021
ec97780
Well-known uniforms used in the assignment expression of a global var…
xian May 1, 2021
612903d
Fix bug #366 etc — ISF dialect issues.
xian Apr 30, 2021
dae08bd
Merge pull request #370 from baaahs/fix-366-isf-preview-fail
merge-when-green[bot] May 1, 2021
c944976
Refactor PubSub and specs.
xian Apr 20, 2021
c879648
Replace old TestCoroutineContext with TestCoroutineDispatcher from ko…
xian Apr 20, 2021
3556e2f
Refactor PubSub toward support for bidirectional commands.
xian Apr 20, 2021
02511d6
PubSub commands can now be bidirectional.
xian Apr 21, 2021
f55b0bb
PubSub: responses/errors from commands are always run on the coroutin…
xian Apr 21, 2021
6f1da7b
Move test client/server pubsub setup to TestRig.
xian Apr 25, 2021
b212b87
Move TestCoroutineDispatcher to its own package in ext.
xian Apr 25, 2021
fbda451
Attempt to clean up coroutines in specs. Mostly fail.
xian Apr 25, 2021
599d19a
Layout editor permits a column or row to be added to a tab.
xian May 15, 2021
f268763
Implement "Duplicate" and "Delete" layout editor column/row menu acti…
xian May 15, 2021
a8d72a8
Implement Vacuity control.
xian May 18, 2021
a14506c
Show current show's file name as a tooltip on the show title.
xian May 18, 2021
1bda50c
Bump some dependency versions.
xian May 18, 2021
da0754a
Merge pull request #373 from baaahs/materialui-0.5.6
merge-when-green[bot] May 18, 2021
1745cdf
Merge branch 'main' into vacuity
xian May 18, 2021
1952186
Merge pull request #372 from baaahs/vacuity
merge-when-green[bot] May 18, 2021
fd25bd1
Refactor XBuilder.handler to be a property getter.
xian May 7, 2021
cda0b0d
Simulator can now launch with other apps open (e.g. append ?app=Mappe…
xian May 11, 2021
b963fd3
RealFs.saveFile() should truncate when overwriting existing files.
xian May 12, 2021
a276fde
Wrap all web apps in WebClientWindow so we have an error boundary.
xian May 12, 2021
3cad749
New show.
xian May 12, 2021
ac11b0c
Updated mapping for Panel 3.
xian May 26, 2021
85917e0
Fix UDP broadcast when Pinky resides on multiple network interfaces.
xian May 26, 2021
52ab554
Mapping improvements, May 2021.
xian May 27, 2021
42b0942
Merge pull request #374 from baaahs/mapper-react
merge-when-green[bot] May 27, 2021
f5ad82c
Fix positioning of moving heads in visualizer.
xian May 27, 2021
3190e30
Left and right eyes were mistakenly swapped.
xian May 28, 2021
15c7f5c
Only sliders with max values under 2 are shown as percentages.
xian May 28, 2021
d0ecb4a
Pass moving head position/orientation as matrix into shaders.
xian May 28, 2021
1e1b894
Merge pull request #369 from baaahs/moving-head-aiming
merge-when-green[bot] May 28, 2021
738e3aa
Updated mappings for Hat Creek campout.
xian May 28, 2021
e3acc95
UI panels should scroll overflow.
xian May 31, 2021
1a20846
Bump to BeatLink 0.6.3.
xian May 31, 2021
7a08d59
Mapper panel identification/mask robustness.
xian May 31, 2021
1af2c82
Nudge Decom panels together to touching. Remove panel 4.
xian May 31, 2021
dabe57c
Reformat show.sparkle.
xian May 31, 2021
3e71d24
Show changes for Hat Creek 2021.
xian May 31, 2021
7d3489c
Merge pull request #382 from baaahs/hat-creek-2021
merge-when-green[bot] Jun 3, 2021
c598389
Merge branch 'main' into pubsub-update
xian Jun 4, 2021
c008993
Merge pull request #383 from baaahs/pubsub-update
merge-when-green[bot] Jun 4, 2021
4b407cc
Switch back from jcenter to maven central.
xian Jun 4, 2021
9ec51c5
Merge pull request #384 from baaahs/maven-central
merge-when-green[bot] Jun 4, 2021
e4d1ae6
Use Koin to inject Pinky dependencies.
xian Jun 4, 2021
954046d
Kill unused JSX mapper page.
xian Jun 7, 2021
9033e35
Partially revert "Revert "Merge pull request #198 from baaahs/varikt/…
xian Jun 7, 2021
7a49b87
Merge pull request #386 from baaahs/mdns-plumbing
merge-when-green[bot] Jun 8, 2021
d0cd28d
Refactor injection a bunch.
xian Jun 5, 2021
2742f8a
Merge pull request #385 from baaahs/koin
merge-when-green[bot] Jun 15, 2021
6f289fd
Fix bug in visualizer when Pinky isn't sending enough pixels for a Br…
xian Jun 15, 2021
fc9129d
Fix noisy HTML warning.
xian Jun 15, 2021
094d955
Fix Fs injection in simulator. Better error logging.
xian Jun 15, 2021
716ade2
Defer SheepSimulator.cleanupBrowserStorage() until dependency injecti…
xian Jun 15, 2021
336e526
Defer DOM and GL rendering where possible so the UI has less jank at …
xian Jun 15, 2021
8e5112c
Merge pull request #387 from baaahs/post-koin-fixes
merge-when-green[bot] Jun 15, 2021
6e8a8b5
Visualizer on iOS doesn't kill entire client.
xian Jun 5, 2021
f31a123
Refactor ByteArrayReader/Writer.
xian Jun 11, 2021
6d37dc5
Refactor FragmentingUdpLink delegation.
xian Jun 12, 2021
97dffc6
Add basic HTTP serving to Network (implemented on JVM only).
xian Jun 12, 2021
cb17533
Better GPU render parallelization.
xian Jun 16, 2021
6eabed5
Refactor ByteArrayReader for (maybe) less allocations for fragmented …
xian Jun 16, 2021
af4ebe9
Refactor malingering FragmentingUdpLink to ephemeral FragmentingUdpSo…
xian Jun 17, 2021
a9af7a4
Refactor BrainManager so BrainTransport creates a fixture internally.
xian Jun 17, 2021
6a209da
Add minimal HTTP client to Network.
xian Jun 18, 2021
b874b41
Add support for WLED devices.
xian Jun 18, 2021
1e8f765
Refactor simulator to extract/inject FixturesSimulator.
xian Jun 19, 2021
f65d0b7
Mapping results can apply to any sort of model entity and controller …
xian Jun 19, 2021
a0faf59
Refactor remote visualizer code.
xian Jul 1, 2021
88efee3
Add simulation of WLED devices and visualization of light bars.
xian Jul 1, 2021
0fadf8b
Remote visualizer improvements.
xian Jul 1, 2021
085e0f5
Remote visualizer cleanup.
xian Jul 2, 2021
3395dd5
Merge pull request #388 from baaahs/sacn-fixtures
merge-when-green[bot] Jul 2, 2021
b7c3493
Fix baaahs.github.io/sparklemotion, maybe.
xian Jul 7, 2021
0413a88
Fix fix.
xian Jul 7, 2021
f133c2f
Prevent WebClientWindow from being dead code eliminated in prod build.
xian Jul 8, 2021
d472008
Fix regular expressions to work in JS 'u' (unicode) mode to support K…
xian Jul 8, 2021
24ba9bd
Rename "Admin" page/app to "Monitor".
xian Jul 7, 2021
3caf3f6
Move Mapper to baaahs.mapper.
xian Jul 8, 2021
fe031ff
Merge pull request #389 from baaahs/rename-apps
merge-when-green[bot] Jul 8, 2021
3c0235d
Show live visualizations on button controls.
xian Jul 5, 2021
28e5f42
Pinky and client preview framerate management changes.
xian Jul 10, 2021
22c9c2f
Refactor SharedGlContext to perform fewer getBoundingClientRect() calls.
xian Jul 11, 2021
e189824
Fix DeviceType ResultBuffer class names and misc other malapropisms.
xian Jul 12, 2021
9769582
Persist UiSettings to client local storage.
xian Jul 16, 2021
f0a876d
Create WebGL2ResultDeliveryStrategy for asynchronous GPU->CPU data tr…
xian Jul 10, 2021
75f75b9
Fix dependencies for material-ui/lab.
xian Jul 17, 2021
d249d24
Fix regular expressions that fail to compile in Kotlin 1.5/JS.
xian Jul 17, 2021
b333e22
Attempt to relieve simulated brain frame backups by dropping old fram…
xian Jul 17, 2021
841df42
Fix update of UiSettings.
xian Jul 17, 2021
6b6abb5
Fix shader preview sizing in editor.
xian Jul 18, 2021
11ee75d
Fix SharedGlContext's calculation of raster offset.
xian Jul 18, 2021
67ee10b
Fix MovingHeadParams.contentType being null due to static initializat…
xian Jul 19, 2021
982d284
Import less of lodash.
xian Jul 19, 2021
2375cef
Import materialui icons individually to (dramatically) reduce import …
xian Jul 19, 2021
7d69464
Chunk Kotlin/JS imports with vendor stuff.
xian Jul 19, 2021
381152c
The length argument to getBufferSubData() is in data type units, not …
xian Jul 19, 2021
6d40178
Upgrade to Kotlin 1.5.21.
xian Jul 20, 2021
81fe097
Bump some more versions, simplify test deps, ignore warnings in packa…
xian Jul 20, 2021
01cb1af
Uh, CI build seems to fail in parallel, try --no-parallel.
xian Jul 20, 2021
8bf6e53
Update to latest dokka.
xian Jul 20, 2021
aacbf6f
Turn on gradle --info.
xian Jul 20, 2021
41b72c6
Ok, try turning off dokka for now.
xian Jul 20, 2021
7dc39d2
Merge pull request #391 from baaahs/button-viz
xian Jul 20, 2021
1f72592
Fix XBuilder.onMount() bug causing infinite render.
xian Jul 21, 2021
0cb16a2
Fix Pinky/ktor file serving.
xian Jul 21, 2021
05763ef
Fix control layouts in edit mode to not overlap.
xian Jul 28, 2021
efc4590
Fix bug in TextEditor.
xian Jul 28, 2021
52e1427
Refactor so more dependencies are injected into Pinky via koin DI.
xian Jul 21, 2021
b99829a
Rename MappingResults.Info to FixtureMapping.
xian Jul 22, 2021
c841913
Refactor MovingHead to extract Adapter class for various flavors/DMX …
xian Jul 22, 2021
e4e27d4
Refactor fixture discovery/mapping to happen via ControllersManager.
xian Jul 27, 2021
180a8d2
Add Logger.enabled().
xian Aug 2, 2021
5745eaf
Model's bounds should be based on all entities comprising the model.
xian Aug 4, 2021
9ced092
Fix green pixels issue!
xian Aug 5, 2021
0de0181
Fix HTML warnings.
xian Aug 6, 2021
f1c592e
Refactor to support multiple fixtures per controller.
xian Aug 6, 2021
daafa5a
Rearrange/split some dumping ground files into better packages/files.
xian Aug 6, 2021
92e4ab6
Merge pull request #392 from baaahs/scene-editor
xian Aug 6, 2021
be83f34
Fix broken previews caused by green pixel fix.
xian Aug 10, 2021
71900a3
Optimize FloatsParamBuffer GPU memory usage.
xian Aug 7, 2021
e576da0
Multiple fixture mappings may point at the same controller.
xian Aug 7, 2021
76b4208
Create Pixel Index and Pixel Count datasources.
xian Aug 7, 2021
08a8cb5
Fix serialization of FixtureConfigs.
xian Aug 7, 2021
1da0a60
No need to clear framebuffer twice.
xian Aug 7, 2021
e810e91
Terser, more helpful logging.
xian Aug 7, 2021
cdb6f56
When loading mapping data, softer fail if model entity is unknown but…
xian Aug 7, 2021
b622f51
Pixel location fixes.
xian Aug 7, 2021
66d3509
Add pixel crawl shader.
xian Aug 7, 2021
d13d8c9
Move all command handling in PubSub to handler scope so updates/subs/…
xian Aug 7, 2021
fa4c492
Validate that SACN fixtures fit into the controller's universes early.
xian Aug 8, 2021
8e7617d
Models may generate their own mapping results.
xian Aug 8, 2021
03a95db
Update Honcho model to reflect Justin's specs. Add Honcho show.
xian Aug 8, 2021
5bcc117
Refactor remote visualizer stuff to support non-RGB pixel formats.
xian Aug 8, 2021
d6ef9c2
As of iOS 14.7, webgl2 is supported in Safari, but only half floats m…
xian Aug 9, 2021
97248e2
Desktop GPUs can write 32 bit floats, iOS devices can write 16 bit fl…
xian Aug 10, 2021
20dcd76
Show bootstrap message before app loads.
xian Aug 10, 2021
0aad7d3
Merge pull request #395 from baaahs/honcho
merge-when-green[bot] Aug 10, 2021
232bf05
Fix gh-pages deploy error cuz no javadoc.
xian Aug 10, 2021
8a7215b
Remove javadoc lines harder.
xian Aug 10, 2021
0b120d4
Show bootstrap message before app loads.
xian Aug 10, 2021
b0511e6
Boost pixel sizes and make light ring wireframes transparent for bett…
xian Aug 10, 2021
3ff1bdf
Add BeatInfo struct for more beat-related data.
xian Aug 10, 2021
6e6517a
Clean up BeatLink data source suggesting/validity checking.
xian Aug 10, 2021
9137bf4
Refactor for more common code use for DataSourceBuilder.looksValid().
xian Aug 10, 2021
8206cbd
Fix model bounds and center calculation for non-surfaces.
xian Aug 10, 2021
5928c1c
Add fancy show as New Show… template.
xian Aug 10, 2021
8e7773b
When button previews are on, selected buttons have orange outline.
xian Aug 10, 2021
5538411
Make edit-mode edit and drag affordances display=none when out of edi…
xian Aug 10, 2021
ef8069b
Merge pull request #396 from baaahs/honcho
merge-when-green[bot] Aug 10, 2021
779dd01
Add shader editor help listing data sources.
xian Aug 10, 2021
70900f0
Update Honcho.sparkle from simulator.
xian Aug 10, 2021
ef08b7d
Merge pull request #397 from baaahs/honcho
merge-when-green[bot] Aug 10, 2021
83e8ae9
Optimize VizPixels updating in monitor visualizer; gc of transient Co…
xian Aug 11, 2021
f2a0eb6
Show download needs to include version (by using ShowMigrator seriali…
xian Aug 11, 2021
0f4376c
Move Time Warp to show root. Fix Fire preview.
xian Aug 11, 2021
dde84ed
Remove ancient GLSL show file resources.
xian Aug 11, 2021
a3be0dd
Move Pulse to Backdrops. Kill some dead stuff.
xian Aug 11, 2021
56634fa
Remove useless Transition panel.
xian Aug 11, 2021
a4bfe21
Cull dead Transition objects and add Swirlies backdrop.
xian Aug 11, 2021
dddf5bc
Prep for first build to ship to PA.
xian Aug 11, 2021
029c830
Beat Brightness should default to 0, oops.
xian Aug 11, 2021
8f1fe55
Honcho's LEDs are GRB.
xian Aug 12, 2021
bab5def
Don't flip horizontally in Honcho.
xian Aug 12, 2021
7ad735d
Refactor to support not splitting pixel color components across pixel…
xian Aug 12, 2021
a4585f2
Bump react-draggable from 3.3 to 4.4.3.
xian Aug 12, 2021
9a867e5
Implemented XY pad control.
xian Aug 12, 2021
983fe6c
Fix behavior of XY pad when pointer is released while outside the pad.
xian Aug 12, 2021
6716452
Modulate Beat Brightness effect by beat confidence.
xian Aug 12, 2021
1b748cc
Fix XY pad to only show up when in use.
xian Aug 12, 2021
163555b
Fix visualizer colors for WLED simulation after universe/pixel bound …
xian Aug 12, 2021
0e929bd
Control cleanup.
xian Aug 12, 2021
3f8a5ca
Don't blow up on GLSL function args marked `const`.
xian Aug 12, 2021
8800d91
Add PrimeWaves backdrop.
xian Aug 12, 2021
8a9c726
Merge pull request #398 from baaahs/honcho
xian Aug 12, 2021
80b35ac
Oops, DMX universes with e.g. 170px should only send 510 bytes, not p…
xian Aug 13, 2021
7447f27
Fix for DMX channel fix. Don't transmit unused universes.
xian Aug 13, 2021
d5e5de5
Pulse ignores beat if confidence is low and uses time instead.
xian Aug 13, 2021
18103c2
Fix direct DMX and pixel array preview transport bugs from DMX fix.
xian Aug 13, 2021
d713a7a
Revert "Bump react-draggable from 3.3 to 4.4.3."
xian Aug 13, 2021
cb535e1
Light rings' first pixel spot an be moved, and pixels can be run cloc…
xian Aug 13, 2021
b2afcc6
Add HSB shader to shader library.
xian Aug 15, 2021
03f2c66
Replace Brightness and Saturation with HSB.
xian Aug 26, 2021
55047a0
Fix capitalization of shader help text variable names with internal c…
xian Aug 26, 2021
8dd1b31
Merge pull request #404 from baaahs/honcho
xian Aug 27, 2021
6e1dd49
Bump to kotlin 1.5.30 to work around https://youtrack.jetbrains.com/i…
xian Aug 31, 2021
f6408bd
Fix build warning about task dependency.
xian Sep 8, 2021
9905fc4
Fix deprecation in build.gradle.kts.
xian Sep 8, 2021
d86956f
Remove dead JSX files.
xian Sep 16, 2021
68db33f
Reimplement simulator app view in kotlin.
xian Sep 16, 2021
6cea916
Fix spurious exception at startup.
xian Sep 16, 2021
9b42183
Set max width on server notice alerts.
xian Sep 17, 2021
71689f0
Port ColorPicker from jsx to kotlin.
xian Sep 17, 2021
bd7dbe2
Remove last of JSX from project.
xian Sep 19, 2021
c018d08
Remove babel support for JSX, and other deps, from build.
xian Sep 19, 2021
be63716
ColorWheel supports clicking/dragging anywhere.
xian Sep 19, 2021
74a9b63
Remove unused Store.
xian Sep 20, 2021
e56bd93
Merge pull request #405 from baaahs/kill-jsx
merge-when-green[bot] Sep 20, 2021
5c0170f
Update to kotlin wrappers pre.246.
xian Sep 20, 2021
78cc50e
Fix busted react child passing.
xian Sep 20, 2021
ef91d71
Use material UI attr accessors where possible.
xian Sep 20, 2021
02bc904
Merge pull request #406 from baaahs/wrappers-243
xian Sep 21, 2021
ffd13b9
When opening a show that uses unknown plugins, show warnings instead …
xian Sep 22, 2021
b061c10
Add file info to GLSL '#line' directives.
xian Sep 23, 2021
730287a
Merge pull request #407 from baaahs/missing-plugin-warning
xian Sep 23, 2021
5852e38
WIP — use application plugin.
xian Sep 18, 2020
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
  •  
  •  
  •  
73 changes: 73 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
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: circleci/openjdk:11-jdk-node-browsers

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

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

- run:
name: Build
command: |
./gradlew build -x jsBrowserTest --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"

- store_test_results:
path: build/reports/tests

- 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

date > build/gh-pages/BUILT.txt

git config --global user.email "ci-build@baaahs.org"
git config --global user.name "CI Builder"

mkdir -p deploy/node_modules
npm install --prefix deploy --silent gh-pages@3.0
`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: info@baaahs.org

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 info@baaahs.org 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

info@baaahs.org

## 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.
144 changes: 141 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,144 @@
# 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.

| | |
| --- | --- |
| <img src="/demo.gif" alt="Simulator image" width="400"> <br/> The Sparkle Motion [Simulator](https://baaahs.github.io/sparklemotion) | <img src="/brc-2019.gif" alt="BAAAHS at BRC 2019" width="400"> <br/> 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 currently control LED strips using a 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:info@baaahs.org)!) 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
10 changes: 10 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
DO NOT MERGE:

- Verify:
- Simulator (including continuous build/reload)
- Dev mode run (including continuous bild/reload)
- Artifact run
- baaahs.github.io/sparklemotion run
- Currently broken:
- Routes in JVM
- Refer to vici for config
Loading