Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1505 commits
Select commit Hold shift + click to select a range
0fb716f
GenericPaintShader allows input ports to be specified as params on th…
xian Nov 24, 2020
4dd2d75
Refactoring toward more generalized handling of shader types.
xian Nov 27, 2020
8241677
Fix issues.
xian Dec 2, 2020
b8cb166
DistortionShaders may declare input ports from entry point params.
xian Nov 27, 2020
923694b
DataSource serializers are specified by DataSourceBuilders, not direc…
xian Nov 27, 2020
fecff17
Field rename to fix js compile problem.
xian Nov 27, 2020
d31b62d
Fix build.
xian Dec 2, 2020
4ef9258
If a show has problems, display an icon in the toolbar which displays…
xian Dec 3, 2020
9172f7e
Refactor how shaders are analyzed and stored, and how programs are ge…
xian Dec 7, 2020
1feb349
Show error indicators on patch holders in design mode.
xian Dec 8, 2020
fcebfa8
Disentangle raster xy -> pixel xyz lookup from projection shader.
xian Dec 12, 2020
cf8c9a2
It's valid for ShaderBuilder to have a Success state with no program.
xian Dec 12, 2020
56adf11
Fix RenderEngineTest.
xian Dec 13, 2020
2ae8743
Remove 'stream' content type variants; no longer needed or helpful.
xian Dec 13, 2020
d0cc61d
Decrease our reliance on ShaderType's defaultUpstreams by always incl…
xian Dec 14, 2020
61739a1
Split AutoWirer spec up by port.
xian Dec 14, 2020
a6cd248
GLSL globals variables and function params and return values fo struc…
xian Dec 16, 2020
b07384d
Turns out we don't seem to need explicit links to other shaders, whoops!
xian Dec 17, 2020
78bfc0b
Eliminate some mutable/live analysis cycles in ShaderInstanceOptions …
xian Dec 17, 2020
028fe84
Determine which content types default to the Main channel for auto-wi…
xian Dec 19, 2020
3376790
Split out an "Analyzing" state in a ShaderBuilder, distinct from "Lin…
xian Dec 22, 2020
5c0ed54
Imagine there're no shader types.
xian Dec 23, 2020
20d94bc
Merge pull request #332 from baaahs/generic-shaders
xian Dec 25, 2020
bdf829b
Rename ShaderPrototype to ShaderDialect.
xian Dec 25, 2020
6909719
Somewhat better line number calculation.
xian Dec 26, 2020
af15f69
Display error status more prominently in UI, and not just in design m…
xian Dec 27, 2020
d67fe1f
Rename GlslAnalyzer.validate() to analyze().
xian Dec 27, 2020
4906fe1
Improvements to error reporting.
xian Dec 27, 2020
931deac
Fix tests.
xian Dec 27, 2020
3e8bf22
Merge pull request #333 from baaahs/shader-refactor-cleanup
xian Dec 27, 2020
4094ab5
Repackage some shader stuff.
xian Dec 28, 2020
98cf867
Fix PaintShader title/icon.
xian Dec 29, 2020
bcc019d
For ports that explicitly specify a plugin data source, adopt its con…
xian Dec 30, 2020
ec6c894
Merge pull request #335 from baaahs/shader-refactor-cleanup
merge-when-green[bot] Dec 30, 2020
c3af5ef
Fix some issues in sample show.
xian Dec 31, 2020
20ffae8
Merge pull request #336 from baaahs/shader-refactor-cleanup
merge-when-green[bot] Dec 31, 2020
b6ea918
Pull VizMovingHead out of Visualizer.
xian Dec 31, 2020
cfa8e51
Refactor VizMovingHead to have a separate object representing the lig…
xian Dec 31, 2020
3d9a47a
Refactor where various MovingHead/Buffer data bits live.
xian Dec 31, 2020
5a45e85
Move three extensions to three_ext.
xian Dec 31, 2020
6d836ef
Import three declarations from https://github.com/liorgonnen/kotlin-t…
xian Dec 31, 2020
e3199be
Upgrade to three.js 1.120.
xian Jan 1, 2021
655acc2
Simulate moving head color wheel.
xian Jan 2, 2021
070a465
Move VizMovingHead to its own package.
xian Jan 2, 2021
d37ce93
Pull Beam and Cone out of VizMovingHead.
xian Jan 2, 2021
83a291a
Add beginnings of motor speed modeling for moving heads.
xian Jan 2, 2021
19ac908
Move some mover visualization into common for easier testing.
xian Jan 2, 2021
d2671fe
Add a test for VizMovingHead movement.
xian Jan 2, 2021
4a68d3a
Moving head visualizer now models movement speed.
xian Jan 2, 2021
7e2f8dc
Merge pull request #337 from baaahs/moving-heads-viz
merge-when-green[bot] Jan 2, 2021
96e6dd9
Better support for shader-local structs.
xian Jan 3, 2021
7c579e6
Pull ShaderComponent and DataSourceComponent out to files.
xian Jan 3, 2021
672a687
Rename/generalize MovingHeadInfo to FixtureInfo.
xian Jan 3, 2021
d533c72
Rename PanAndTilt to MovingHeadParams.
xian Jan 3, 2021
b827fbd
Moving head params are now managed in GLSL as a struct.
xian Jan 4, 2021
4a78a5c
Merge pull request #338 from baaahs/better-struct-support
merge-when-green[bot] Jan 4, 2021
3658ae4
Add shutter to moving head DMX params (but not visible to shaders yet).
xian Jan 4, 2021
3f60a65
Show with moving head shaders.
xian Jan 4, 2021
d21a722
Hide AutoWirer and GlslAnalyzer behind new Toolchain.
xian Jan 5, 2021
0631879
Slim down the Toolchain interface a bit.
xian Jan 5, 2021
fce60b4
Toolchain refactoring.
xian Jan 5, 2021
08e4012
Create CachingToolchain and misc cleanup.
xian Jan 5, 2021
7b2d835
Kill old PatchHolderEditor.kt.
xian Jan 5, 2021
4e7d47c
Pass EditableManager to EditorPanel instances at construction, not ge…
xian Jan 5, 2021
598948d
Display shader analysis data/problems in patch editor.
xian Jan 5, 2021
0c9d400
JS Logger now checks for level level in baaahs.util.LogLevels before …
xian Jan 5, 2021
7bd3cc8
Merge pull request #339 from baaahs/open-shader-cache
merge-when-green[bot] Jan 5, 2021
4da9526
Handle block comments in GLSL.
xian Jan 6, 2021
9f3c500
Fix compilation of mover shaders in shader editor. Minor logging fixes.
xian Jan 6, 2021
bf558ec
Fix warning in shader editor from shader channel select while shader …
xian Jan 7, 2021
0d3821f
Merge pull request #340 from baaahs/fix-editor-bugs
merge-when-green[bot] Jan 7, 2021
944befc
Shader editor now shows a refactoring affordance with popup menu for …
xian Jan 7, 2021
03102b9
Fix bug causing refactoring menu to appear only in first shader editor.
xian Jan 8, 2021
bd2f525
Merge pull request #341 from baaahs/editor-improvements
merge-when-green[bot] Jan 8, 2021
5a31fba
Fix dom attr warning in shader editor.
xian Jan 8, 2021
4291b22
Fix bug switching shader preview types when component is reused.
xian Jan 8, 2021
f645609
Clean up creation and wiring of ShaderPreview instance from ShaderType.
xian Jan 8, 2021
424d633
Move ShaderPreview classes to baaahs.gl.preview.
xian Jan 8, 2021
d7cb0f1
Simple preview for moving head params.
xian Jan 9, 2021
3b22d55
Merge pull request #342 from baaahs/editor-improvements
merge-when-green[bot] Jan 9, 2021
eebc9f1
Patch overview sorts shaders by type, and shows type icon.
xian Jan 15, 2021
688b648
Merge pull request #344 from baaahs/misc-cleanup
merge-when-green[bot] Jan 15, 2021
cdf6529
Rename RenderTarget to FixtureRenderTarget and extract superclass.
xian Jan 28, 2021
3d9d5b5
Refactor PatchResolver to take datasources map later.
xian Jan 28, 2021
b211a5a
Rename ClientShowPlayer to ClientStageManager (to match server side).
xian Jan 29, 2021
c35265c
Vague stab at encapsulating concerns inside VizSurface.
xian Feb 11, 2021
7e32bbd
Refactor patch resolution a bit.
xian Feb 12, 2021
130c76b
Hook up client-side preview rendering.
xian Feb 12, 2021
64cc217
Hook up moving heads to client preview visualizer.
xian Feb 12, 2021
6820048
Merge pull request #346 from baaahs/visualizer-control
merge-when-green[bot] Feb 12, 2021
c6894d2
Kill accidental white oval around toolbar buttons.
xian Feb 15, 2021
d2cbc09
Pull Layouts et al. out of Show.kt.
xian Feb 16, 2021
bf259a2
Move LayoutEditorDialog to baaahs.app.ui.editor.layout.
xian Feb 16, 2021
e2c62e8
Refactor ShowMigrator. Extract migrations to their own files.
xian Feb 17, 2021
60d3630
First pass on new layout system.
xian Feb 16, 2021
bf702b5
Create migration from old layouts format to new.
xian Feb 17, 2021
6fa03a2
Layouts' list of panels is now a map, so there's space to configure s…
xian Feb 17, 2021
9d7ece8
More work on new layout editor.
xian Feb 19, 2021
9f8d33b
Merge pull request #347 from baaahs/layout-uses-css-grid
xian Feb 19, 2021
bf78423
Oops duh fix migration bug.
xian Feb 19, 2021
7e20b22
Merge branch 'layout-uses-css-grid' into main
xian Feb 19, 2021
640c470
Fix the migration harder.
xian Feb 19, 2021
17f7525
Force-hide the app drawer when layout editor is open.
xian Feb 19, 2021
0049735
Merge pull request #348 from baaahs/layout-editor-cleanup
xian Feb 19, 2021
6c52e03
Misc minor styling/cleanup on layout editor.
xian Feb 19, 2021
fbdaa2c
Merge pull request #349 from baaahs/layout-editor-cleanup
xian Feb 20, 2021
851a008
Fixed another V3 migration bug which was causing controls to disappear.
xian Feb 20, 2021
08912d4
Merge pull request #350 from baaahs/layout-editor-cleanup
merge-when-green[bot] Feb 20, 2021
326fd50
For some reason the artifact for net.subroh0508.kotlinmaterialui:core…
xian Mar 12, 2021
c47921e
Merge pull request #354 from baaahs/fix-missing-materialui-lab-0.4.3
merge-when-green[bot] Mar 13, 2021
a9ece7a
Shrink controls a bit in edit mode.
xian Feb 20, 2021
37f3123
When user selects from Add Control menu, close the popup menu.
xian Feb 20, 2021
97ad56a
Use subroh0508.kotlinmaterialui's toggleButton et al. Thank you @subr…
xian Feb 20, 2021
3bd5365
Use four-space tabs for generated GLSL main() methods.
xian Mar 2, 2021
8648594
Refactor OpenShader to return an Invoker object to encapsulate handle…
xian Mar 2, 2021
02f69f5
Better OpenShaderSpec.
xian Mar 2, 2021
bd3e3d9
Refactor emission of struct output var in GLSL generation.
xian Mar 2, 2021
8db575d
Refactor OpenShader.toGlsl() a bit.
xian Mar 3, 2021
8a472b8
Refactor GLSL generation to perform symbol replacement with GlslExprs…
xian Mar 10, 2021
ec2579b
Add support for declaring input ports as abstract GLSL functions.
xian Mar 12, 2021
34ab8b5
Generate GLSL linking abstract function input ports.
xian Mar 12, 2021
f7ffd24
Clean up InjectedDataLink.
xian Mar 12, 2021
228da1e
Add stub Transition control.
xian Feb 20, 2021
bc8a562
Cleanup refactor on ShaderComponent.
xian Mar 13, 2021
b5292e3
Kill unused file.
xian Mar 13, 2021
6bb72b0
Use Dispatchers.IO coroutine context for bocking file operations in R…
xian Mar 13, 2021
fac81be
Reimplement PubSub's command channels to use suspend functions instea…
xian Mar 16, 2021
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
e315923
WIP: UI buttons show visualization.
xian Jul 5, 2021
7ae3168
WIP
xian Jul 7, 2021
7844696
Pinky and client preview framerate management changes.
xian Jul 10, 2021
c27e2e8
Refactor SharedGlContext to perform fewer getBoundingClientRect() calls.
xian Jul 11, 2021
708dde8
Fix DeviceType ResultBuffer class names and misc other malapropisms.
xian Jul 12, 2021
7f04a1a
WIP: share a GL context between ModelRenderEngine and Visualizer, wit…
xian Jul 16, 2021
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
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"presets": [
"@babel/preset-env",
"@babel/preset-react"
],
"plugins": [
"react-hot-loader/babel",
"@babel/plugin-proposal-object-rest-spread",
"@babel/plugin-proposal-class-properties"
]
}
76 changes: 76 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
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 dokka -x jsBrowserTest --stacktrace --no-daemon

- 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

mkdir -p build/gh-pages/doc
cp -r build/javadoc/* build/gh-pages/doc/.

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

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
17 changes: 17 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"arrowParens": "always",
"bracketSpacing": true,
"htmlWhitespaceSensitivity": "css",
"insertPragma": false,
"jsxBracketSameLine": false,
"jsxSingleQuote": false,
"parser": "babel",
"printWidth": 80,
"proseWrap": "preserve",
"requirePragma": false,
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5",
"useTabs": false,
}
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.
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:[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