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

Auto Mode #459

Open
wants to merge 2,048 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2048 commits
Select commit Hold shift + click to select a range
eb860b6
Rename DeviceType to FixtureType throughout.
xian Mar 4, 2022
7ed0245
Clean up controller config UI.
xian Mar 5, 2022
f92ebe5
Fix handling of empty numberTextFields.
xian Mar 5, 2022
da417d6
Fix updating in pixel array config editor.
xian Mar 5, 2022
72cca53
Add default fixture and transport configs for controllers.
xian Mar 6, 2022
3f95765
Updated SparkleMotion simulator gif
xian Mar 9, 2022
6505e49
Update README.md
xian Mar 9, 2022
f9abd84
Update README.md
xian Mar 9, 2022
8309f86
Controllers can be configured with default fixture and transport conf…
xian Mar 9, 2022
b84644e
Fix simulator's "Patience" loading bumper.
xian Mar 9, 2022
31cd7d6
Use controller defaults to DRY up Honcho.scene.
xian Mar 9, 2022
b6d4f5c
Fixture mappings must include a fixture config so we know what their …
xian Mar 11, 2022
0b69c39
DMX addresses can be auto-allocated.
xian Mar 12, 2022
d6e2d44
Fix bug saving stuff to browser sandbox fs.
xian Mar 12, 2022
d735896
Show computed DMX channels when auto-allocated.
xian Mar 12, 2022
f3aab67
Merge pull request #427 from baaahs/controllers-editor
merge-when-green[bot] Mar 12, 2022
6cb4f5a
Rename FixtureInfo.matrix to .transformation (and deprecate matrix).
xian Mar 12, 2022
b2e09ce
Update SimulatorAppView.kt
xian Mar 13, 2022
6a82aff
Apply model entities' transformations to pixels.
xian Mar 13, 2022
e61e9b1
Remove deprecated FixtureInfo.origin/heading/matrix.
xian Mar 14, 2022
c5d344f
Merge pull request #429 from baaahs/apply-model-transformation
merge-when-green[bot] Mar 14, 2022
5ef74f1
Fix light ring pixel visualization.
xian Mar 14, 2022
4c10a56
Move specs that don't rely on JVM to commonTest.
xian Mar 21, 2022
4f2d3bd
Apply transformations from parent model entities.
xian Mar 22, 2022
eae78fc
Merge pull request #430 from baaahs/apply-parent-transforms
merge-when-green[bot] Mar 22, 2022
f1956e3
Persist client app mode.
xian Mar 22, 2022
c2900f5
Merge pull request #431 from baaahs/persist-app-mode
merge-when-green[bot] Mar 22, 2022
ac4f16a
use node 16 for M1
Mar 24, 2022
9354d4c
Fix loading of session mapping data.
xian Mar 28, 2022
dd387be
Fix Pinky's --simulateBrains mode.
xian Mar 28, 2022
8f612e4
Fix RemoteConfig polymorphic serialization.
xian Mar 28, 2022
f6c2c48
Merge pull request #433 from baaahs/fix-prod
merge-when-green[bot] Mar 28, 2022
81c12f4
Fix bugs causing model entity transformations to be ignored.
xian Mar 29, 2022
91b9301
Rename Slider to SliderView.
xian Aug 14, 2021
a805e57
Beat can be attached to any data source slider.
xian Aug 15, 2021
f8f8ce6
Oops, check for result buffer floats and half-floats was swapped.
xian Mar 29, 2022
e3ac861
Less buggy projection shader preview. Still buggy.
xian Mar 29, 2022
8f8c6e5
Baby steps toward working JS tests.
xian Mar 29, 2022
7ec6d86
Merge pull request #403 from baaahs/beat-sliders
xian Mar 29, 2022
58629c6
Layout panels should grow to fill parent.
xian Mar 29, 2022
e4076e4
Huh? Update yarn.lock.
xian Mar 31, 2022
c0e42ed
Less console noise from ClientPreview.
xian Mar 30, 2022
f16e56e
Extract lots of MutableShow-related classes to their own files.
xian Mar 31, 2022
5e273b1
Fix test breakage caused by BeatLink-linked sliders.
xian Mar 31, 2022
89251ac
AutoWirer can operate on single shader instances (soon to be "patches").
xian Mar 31, 2022
8696236
Merge Patch with ShaderInstance.
xian Apr 1, 2022
dfb8068
Remove vestiges of ShaderInstance.
xian Apr 1, 2022
8447b0b
Fix incorrect title in show editor dialog.
xian Apr 1, 2022
7c08a74
Hinted input ports in shaders shouldn't match default input ports.
xian Apr 2, 2022
a5eca28
XyPad default values for min/max/default are now -1, 1, 0.
xian Apr 2, 2022
53f656c
Clean up gadget auto-adjust in shader editor.
xian Apr 2, 2022
2de52fb
Implement "Copy" (to clipboard) button on text snippets in shader help.
xian Apr 2, 2022
153785b
Rename "Properties" tab to "Patch" in patch editor.
xian Apr 2, 2022
df44ec4
Patch holders with a single patch can have a simplified editor.
xian Apr 1, 2022
822fdfe
Merge pull request #434 from baaahs/simplify-patch-editor
merge-when-green[bot] Apr 3, 2022
1b8aad6
Add Heart to shader library.
xian Apr 3, 2022
6580c69
Improve behavior of FullRangeGadgetAdjuster.
xian Apr 3, 2022
93bdc76
Projection shader previews work again!
xian Apr 3, 2022
d5954c8
Merge branch 'simplify-patch-editor' into main
xian Apr 3, 2022
f5490a4
Bump Gradle to 7.4.2.
xian Apr 4, 2022
0b81b3a
Bump Dokka to 1.6.0.
xian Apr 4, 2022
398931a
Quieter console error logs.
xian Apr 8, 2022
2e34457
Bump from kotlin 1.6 to 1.6.10.
xian Jan 3, 2022
6e3ac0a
Switch from subroh0508's kotlinmaterialui to kotlin-mui.
xian Feb 13, 2022
2fcd154
Yet more things.
xian Apr 4, 2022
598e21d
Add emotion
xian Apr 5, 2022
5d4c6a8
Mostly working with MUI?
xian Apr 8, 2022
30d4d05
Bump to kotlin-wrappers pre-329.
xian Apr 9, 2022
83b0b6f
Clean up controller editor background colors.
xian Apr 9, 2022
221e1b5
Reimplement controller filtering not using material-ui-search-bar, si…
xian Apr 9, 2022
40d0d76
Clean up layout editor form input sizes.
xian Apr 9, 2022
707e7c8
Fix broken edit button on button group control.
xian Apr 9, 2022
e75eded
More visible copy button in shader help.
xian Apr 9, 2022
c78f926
Add workaround for https://youtrack.jetbrains.com/issue/KT-51921 / ht…
xian Apr 9, 2022
0bfe507
Merge pull request #432 from baaahs/kotlin-1.6.10
merge-when-green[bot] Apr 9, 2022
01aa9e9
jvmProcessResources depends on webpackTask
xian Apr 11, 2022
54c19ed
Merge remote-tracking branch 'origin' into alejo
Apr 25, 2022
5242a92
fix out of bounds exception when loading monitor
Apr 25, 2022
4847979
Add spec for RemoteVisualizerClient.
xian Apr 26, 2022
939f478
Add spec for RemoteVisualizerClient receiving frame data.
xian Apr 26, 2022
ec79177
Disinvolve FixtureSimulation in RemoteVisualizerClient updates.
xian Apr 26, 2022
50f8fc4
Exploratory first pass at reimplementing the UI using a grid layout.
xian Apr 15, 2022
0ce7234
Edit mode is now an observable saved on DocumentManager.
xian Apr 15, 2022
a563ed6
Visual cleanup of grid editing.
xian Apr 15, 2022
bc2e3d4
Fix PromptDialog bug.
xian Apr 15, 2022
61ca42c
Visit all active PatchHolders when building active patch set.
xian Apr 15, 2022
08580a9
Layout editor views regularized.
xian Apr 16, 2022
a0fac2e
Support Undo, Redo, and Layout Editor using keypresses.
xian Apr 16, 2022
cf03b13
Fix button group view bugs.
xian Apr 16, 2022
97f8aa5
Keypress fixup
xian Apr 16, 2022
fbe6a14
More grid layout UI work.
xian Apr 16, 2022
4f8e154
Start implementing new grid layout using react-grid-layout.
xian Apr 22, 2022
1baf0a2
Working?!
xian Apr 22, 2022
565aac6
Yep, fairly working!
xian Apr 22, 2022
2031cf4
Refactor to isolate react-beautiful-dnd within legacy layout.
xian Apr 22, 2022
f6f42a7
Grid refactor
xian Apr 25, 2022
285def8
Dragging over other containers semi-works.
xian Apr 27, 2022
b8f9051
DragNDrop has generic position so it can be used for grid.
xian Apr 27, 2022
83c7e72
Keep current tab state in OpenLayout.
xian Apr 27, 2022
77fdbbf
Refactor toward idiomatic Kotlin.
xian Apr 27, 2022
a27ea64
More idiomatic Kotlin.
xian Apr 28, 2022
677849a
Layouts is a concrete class.
xian Apr 28, 2022
ab438e0
Move Layout to commonMain.
xian Apr 28, 2022
e386553
Cleanup.
xian Apr 28, 2022
308a574
Better suggested ids for controls.
xian Apr 29, 2022
fe86689
Refactor to make grid layout work for button groups similarly to tabs.
xian Apr 29, 2022
984ff2f
Move ShowManager to common.
xian Apr 29, 2022
59edd98
Add ShowMonitor (like SceneMonitor).
xian Apr 29, 2022
95ce9fb
Buggy/semi-working drag and drop between grid layouts.
xian May 2, 2022
4445ff3
Fix resizing.
xian May 3, 2022
004dacf
Show/hide app menu with <esc> key.
xian May 3, 2022
c702285
Clicking on control edit button works in grid layout.
xian May 3, 2022
d2fb977
Fix disappearing grid items.
xian May 3, 2022
71ab28f
Bump version of turansky's plugin fixing https://youtrack.jetbrains.c…
xian May 3, 2022
145eb16
Vacuity and control palette work, ish, for grid.
xian May 3, 2022
83b48b5
Fix SACN controller universe count editor.
xian May 4, 2022
374683e
May 3 design meeting — grid layout.
xian May 4, 2022
edd8c82
Clean up new document template menu.
xian Apr 9, 2022
d0c17a4
Nicer sound analysis and beatlink control views.
xian May 4, 2022
c29af3d
Silence a React warning.
xian May 4, 2022
ba1cbdd
Styling/theming fixes.
xian May 4, 2022
5d6c7a1
More styling/theming fixes.
xian May 4, 2022
cbb0cab
Grid layout button group now deselects any other buttons in the grid …
xian May 4, 2022
031bd21
Stable sort order for ControlDisplay-related specs.
xian May 4, 2022
e6cf069
Fix ActivePatchSet building for legacy shows.
xian May 5, 2022
249c1d2
Create a new show with grid layout by default.
xian May 5, 2022
30bc704
Merge pull request #436 from baaahs/grid-layout
merge-when-green[bot] May 5, 2022
b04238b
New empty and sample shows use grid layout.
xian May 5, 2022
ba5b51f
Fix bug in UDP forwarding proxy — connect to the proper port.
xian May 5, 2022
ca05339
Myriad mapping modifications.
xian May 5, 2022
c619de6
Merge pull request #435 from baaahs/monitorFix
alejot127 May 5, 2022
f72f8bb
Entities from an imported OBJ can be independently transformed.
xian May 6, 2022
a61c139
Fix broken keypress handling.
xian May 6, 2022
7e522b7
Turn on dark mode and button previews by default.
xian May 6, 2022
bb4b684
Reduced set of panels for party.
xian May 6, 2022
824261c
Button groups may be configured to show their title.
xian May 6, 2022
3324768
Color wheel adapts to grid size.
xian May 6, 2022
df25fee
Make sure controls have a minimum size on non-grid layouts.
xian May 6, 2022
81ff500
Don't show hamburger menu while document manager is syncing.
xian May 6, 2022
5349e85
Suppress spurious resize refreshes.
xian May 6, 2022
f7d3fd7
Show pixel locations in model from mapping sessions.
xian May 6, 2022
0139c54
Include firmware version in controller status display.
xian May 7, 2022
8027203
Fix specs.
xian May 9, 2022
b669062
Merge pull request #437 from baaahs/pasturebedtime
merge-when-green[bot] May 9, 2022
a0655f6
Add keyboard shortcut to switch between Show and Scene modes (s) and …
xian May 9, 2022
18dca6a
When a show or scene doesn't have an associated file, "Save" is handl…
xian May 9, 2022
07beaf1
UI cleanup
xian May 9, 2022
1d0d4cb
Merge pull request #438 from baaahs/pasturebedtime
merge-when-green[bot] May 9, 2022
ec30a24
Fix layering bug causing dimmed-out buttons in button groups.
xian May 10, 2022
41db96e
Merge pull request #439 from baaahs/pasturebedtime
merge-when-green[bot] May 10, 2022
8d504c6
Change toolbar color when in design mode.
xian May 10, 2022
189ef3e
Pull SacnController out of SacnManager.
xian May 11, 2022
dde1ea5
Bump kotlin-coroutines to 1.6.1 and kotlin-serialization to 1.3.2.
xian May 11, 2022
280174a
Bump to kotlin 1.6.21.
xian May 11, 2022
9ac4445
SacnManager should notify of errors and notify listeners in Pinky con…
xian May 12, 2022
d583f3f
Fix broken SACN end channel calculation.
xian May 12, 2022
10a40ff
Grid cells should be layered above shared GL canvas except for button…
xian May 12, 2022
43a64c4
Zoom visualizers to fit model.
xian May 12, 2022
d06d4cf
Fix bug WledsSimulator visualizer.
xian May 12, 2022
6a6b21d
Fix bug affecting simulations of SACN controllers needing more than o…
xian May 12, 2022
8a53539
Clean up slider properties editor.
xian May 12, 2022
c28bf2a
Clean up control view naming.
xian May 12, 2022
c8e5469
Scale button text width to fit.
xian May 12, 2022
909d1dc
Support GLSL functions taking array params.
xian May 12, 2022
f2fe71c
BeatLink-linked slider handles are easier to drag.
xian May 12, 2022
5c31547
Edit mode adds candy striping to app bar and app backgrounds.
xian May 12, 2022
8bbc056
Refresh of app toolbar action buttons.
xian May 12, 2022
0800414
Merge pull request #440 from baaahs/pasturebedtime
merge-when-green[bot] May 12, 2022
3048931
Merge pull request #441 from baaahs/pasturebedtime
merge-when-green[bot] May 12, 2022
3fb38ec
Pasture Bedtime show.
xian May 7, 2022
d29ce05
Arttitude scene and PastureBedtime show.
xian May 13, 2022
ddebc63
Fix bug causing BeatLink data to go to client but not server data feeds.
xian May 13, 2022
6f9c64c
Fix bug in moving head fixture config editor.
xian May 13, 2022
6520c17
Fix DirectDmxController channel range calculation.
xian May 13, 2022
41ce92e
Merge pull request #442 from baaahs/pasturebedtime-macmini
merge-when-green[bot] May 13, 2022
d4abbbd
Fix warnings in Pasture Bedtime show.
xian May 13, 2022
8792c0e
Cleanup.
xian May 13, 2022
352d26f
Add Hi-Res scene template.
xian May 13, 2022
e067c94
Don't let app toolbar action buttons wrap.
xian May 13, 2022
d09aa95
Add Sparklez and BeatShift shaders to shader library. Improve Heart.
xian May 20, 2022
cdcd63a
Denser grid for shader library.
xian May 20, 2022
6b537e8
Show modal shader detail view on button long-press.
xian May 20, 2022
9fd672d
Merge pull request #443 from baaahs/patch-modal
merge-when-green[bot] May 20, 2022
9abd7a7
Regularize VisualizerControlView naming.
xian May 20, 2022
d71bf33
Generated GLSL may be viewed from visualizer control.
xian May 20, 2022
fb31d9d
Not-anything-like-a-DAG visualizer for linked programs.
xian May 21, 2022
75aa36e
Semi-working DAG visualization!
xian May 21, 2022
d8d7eed
Extract reusable PaletteView for floating palette frames.
xian May 22, 2022
b5ac0ad
Pretty DAG visualization transitions!
xian May 22, 2022
6aed474
Remove leftover control from dev.
xian May 22, 2022
9785305
DAG auto-scaling and cleanup.
xian May 23, 2022
7070f94
Merge pull request #445 from baaahs/diagnostics
merge-when-green[bot] May 23, 2022
90cbae9
Include output device in DAG.
xian May 24, 2022
42b7c22
Merge pull request #446 from baaahs/diagnostics
merge-when-green[bot] May 24, 2022
b001555
Click on toolbar tab to switch between Show and Scene modes.
xian May 24, 2022
f13bede
Disable long-press popup on momentary buttons.
xian May 24, 2022
d7b84c7
Merge pull request #447 from baaahs/app-mode-tabs
merge-when-green[bot] May 24, 2022
52ddfa7
Add Pasture Bedtime sample show.
xian May 25, 2022
e290354
KglTracer logging via SparkleMotion const.
xian May 30, 2022
82dd2d6
Get RenderEngineTest working again.
xian Jun 6, 2022
26651a5
Fix moving head synesthesia.
xian Jun 8, 2022
84aa095
Bump lwgjl from 3.2.3 to 3.3.1.
xian Jun 8, 2022
ebdbda2
Shift from "pixel" to "component" in variable names in most places.
xian Jun 8, 2022
de1a819
RenderManager need not have a different GlContext for each fixture type.
xian Jun 8, 2022
3645e23
Merge pull request #450 from baaahs/fix-synesthesia
merge-when-green[bot] Jun 8, 2022
783779a
JsMapper (previously JsMapperUi) extends Mapper, replacing their form…
xian May 25, 2022
46c53ed
Llama notices.
xian May 25, 2022
da0e7b7
Keyboard shortcut changes:
xian May 25, 2022
a93c630
Mapper applies model transforms.
xian May 25, 2022
cc8c531
In the Mapper, camera positions may be saved using ctrl-shift-# and r…
xian May 25, 2022
cb5ae93
Support vi-style marks (mx, 'x) for camera position in mapper too.
xian May 25, 2022
91769bb
More renaming from MapperUi to Mapper.
xian May 25, 2022
2ee7bd5
Remove last traces of MapperUi.
xian May 25, 2022
902c5fd
Mapper — load image captures from mapping sessions.
xian May 27, 2022
1233bc8
Provide DMX universe dumps in UI for debugging moving heads.
xian May 29, 2022
cb38ab9
Fix projection shader preview for non-Surface PixelArray fixtures.
xian May 30, 2022
ba8ffba
Pasture Bedtime show update.
xian Jun 2, 2022
d4ab3e8
Base mapping for refurbished panel 2D, with weird off-by-four-pixels …
xian May 30, 2022
5db16a6
Merge pull request #451 from baaahs/campout-2022
merge-when-green[bot] Jun 8, 2022
2352411
Opening a palette window from within the Simulator app fails.
xian Jun 15, 2022
467cc32
Merge pull request #455 from baaahs/fix-452
merge-when-green[bot] Jun 15, 2022
fb8a1c9
Incorporate Pasture Bedtime changes from campout.
xian Jun 19, 2022
51d1a6f
Refactor/DRY ButtonControlView.
xian Jun 19, 2022
d598638
BeatLink should attempt to use a player id above 4, so we work witih …
aphexcx May 28, 2022
1a85c46
Properly render moving head adapter name in controller setup.
xian May 28, 2022
ebc2f5b
Include last error message and time in controller info display.
xian Jun 19, 2022
8da32b9
Fix ambiguous field reference.
xian Jun 19, 2022
000a958
Don't throw in shader preview if a moving head param is NaN.
xian Jun 20, 2022
51a0ab3
Support for uploading shows and scenes.
xian Jun 23, 2022
6acbd94
Dropzone/file upload cleanup.
xian Jun 25, 2022
df25780
Upload data is a string.
xian Jun 25, 2022
4746d07
Add shadow behind control edit and delete buttons for legibility.
xian Jun 25, 2022
c4d5ca5
Slider ticks include fraction when tick scale is 1x.
xian Jun 25, 2022
5f07358
Show preview slider in slider props editor.
xian Jun 25, 2022
46a9ec8
Merge pull request #457 from baaahs/file-upload
xian Jun 27, 2022
cf5d02a
Fix bug in GLSL hint resolution that was causing attempts to resolve …
xian Jun 20, 2022
229b3ab
Per ShaderToy, iMouse is a vec4.
xian Jun 20, 2022
506fbbf
Self-referencing macros cause 'splosions.
xian Jun 20, 2022
828c266
GLSL function params may start with underscores.
xian Jun 20, 2022
3a30dc7
We need to wrap the shader library previews in a shared GL context or…
xian Jun 20, 2022
a4a4b6f
Nicer error message when shader library index refers to a non-existen…
xian Jun 20, 2022
2c45c5c
Merge pull request #458 from baaahs/misc-fixes
merge-when-green[bot] Jun 28, 2022
ea86dd5
Merge branch 'main' into alejo
Jun 28, 2022
a2bcebf
auto mode first go
Jun 28, 2022
a5cda6e
refactor
Jun 30, 2022
4ff2f5a
only controls on current tab layout
Jul 1, 2022
0c445c3
automode clicks update UI
Jul 13, 2022
5ddecc4
remove UI switch + replace with last user action timer
Jul 27, 2022
42cae4d
more clean up
Jul 27, 2022
c623c06
fixed illegalstate bug but removed pub/sub on automode topic
Jul 28, 2022
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 -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"

- 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

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