Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
0667fc9
chore(deps): bump threejs to r156 and rollback git webpack plugin to …
timekadel Sep 21, 2023
fba93a7
refactor(vue.config.js): temporarily remove calls to gitRevisionPlugin
timekadel Sep 21, 2023
4ccc4d4
refactor(three): updated xBufferGeometry calls to be new xGeometry as…
timekadel Sep 21, 2023
7a9176f
chore(deps): updated yarn lockfile due to be removed following next m…
timekadel Sep 21, 2023
32b5127
refactor(visualizer): readjust global brightness attenuation factor f…
timekadel Sep 21, 2023
ef6953b
refactor(ModelInstancer): refactor model parsing method
timekadel Sep 21, 2023
2fab72e
refactor(MovingHead): implement ModelInstancer changes and uncomment …
timekadel Sep 21, 2023
4336aa0
feat(three): bump to r156
timekadel Sep 26, 2023
3130033
feat(ci): create release workflow
timekadel Oct 6, 2023
0ad44b0
chore(deps): added semantic-release to list of dev-dependencies
timekadel Oct 6, 2023
f2f8a70
chore(deps): syncing changes in yarn.lock (due to be removed)
timekadel Oct 6, 2023
3179f31
feat(ci): created deployment workflow
timekadel Oct 6, 2023
9bccf46
style(ci/deploy): add newline at end of file
timekadel Oct 6, 2023
1853789
Merge pull request #44 from ASLS-org/feat/setup-automation-workflows
timekadel Oct 7, 2023
5db6e32
refactor: migration to vue3
timekadel Oct 27, 2023
af48287
feat(vue3-migration): configure webpack to use vue3 compat build
timekadel Dec 26, 2023
1a9e864
feat(vue3-migration): leverage new vue3 reactive feature for global p…
timekadel Dec 26, 2023
337cb2a
feat(vue3-migration): update uikit component to use vue3 syntax (emit…
timekadel Dec 26, 2023
b09c73e
feat(vue3-migration): setup non change-broken components to run in fu…
timekadel Dec 26, 2023
e19a915
feat(vue3-migration): update change-broken components to use vue3 syn…
timekadel Dec 26, 2023
f3bce7c
feat(vue3-migration): patch group-pool fragment to work in vue3 env
timekadel Dec 26, 2023
cc2187b
feat(vue3-migration): patch colorpicker component to work in vue3 env
timekadel Dec 26, 2023
8b675ae
feat(vue3-migration): patch toolbar component to work in vue3 env
timekadel Dec 26, 2023
1eb4314
feat(vue3-migration): patch group modifiers to work in vue3 env and p…
timekadel Dec 26, 2023
e03e236
feat(vue3-migration): patch toolbar chase timeline to work in vue3 env
timekadel Dec 26, 2023
f549fa5
style(router): remove debugging
timekadel Dec 26, 2023
61c4712
feat(vue3-migration): keep package-lock up to date with the many ongo…
timekadel Dec 26, 2023
bedc050
feat(vite-migration): migrate from vue-cli to vite
timekadel Jan 9, 2024
88e2943
feat(linter): add and configure eslint to lint js and vue files
timekadel Jan 9, 2024
dbf7fd4
chore(eslintrc): resolve .js and .vue files
timekadel May 28, 2024
fc2e6a7
chore(gitignore): add vitepress cache to list of ignored paths
timekadel May 28, 2024
6f2991d
docs: migrate to ES6, update manual and storybook content
timekadel May 28, 2024
337beaf
ci: split deploy script into singular app and docs separate workflows
timekadel May 28, 2024
71623e0
chore(deps): bump vitepress and update build script
timekadel May 28, 2024
af39ead
feat(vite.config): migrate to mjs and seed env variables on the fly
timekadel May 28, 2024
ff3dc9e
refactor(jsconfig): add a root alias for resources higher in the proj…
timekadel May 28, 2024
8cf2e69
improvement: update logos and color scheme
timekadel May 28, 2024
cfeaf3b
feat(views): migrate lint, reformat and refactor everything
timekadel May 28, 2024
9d4efac
feat(plugins/visualizer/shaders): put shaders in separate glsl files
timekadel May 28, 2024
9731bc5
feat(core): lint, reformat and refactor everything
timekadel May 28, 2024
5fd2fcd
style(views/activities/app): remove unused imports
timekadel May 28, 2024
96938fb
chore(deps): add stats.js to dependencies
timekadel Aug 28, 2024
4978f04
refactor: remove unused favicon asset
timekadel Aug 28, 2024
799d2cf
refactor(library/fixtures): reformat fixture list
timekadel Aug 28, 2024
a6087f2
refactor(plugins/visualizer): cleanup
timekadel Aug 28, 2024
295c822
fix(plugins/visualizer/moving_head): patch boundingbox display issues
timekadel Aug 28, 2024
aacf8b3
fix(models/DMX): patch blocking quantization cue issue
timekadel Aug 28, 2024
61c6c57
fix(models/DMX/effect): six fixture phasing in symetrical direction mode
timekadel Aug 28, 2024
3f2d14f
docs(models/DMX/fixture): identified slow-down issue
timekadel Aug 28, 2024
f927de3
feqt(components/uikit/lists): implement accordion mode
timekadel Aug 28, 2024
5213ad5
fix(components/uikit/cue-container): set solo button correct color
timekadel Aug 28, 2024
8866eff
feat(views/activities/app/fragments/patch-bay): enable accordion mode…
timekadel Aug 28, 2024
9fc9863
fix(views/activities/app/fragments/modifiers/_widgets/fixture-channel…
timekadel Aug 28, 2024
e358afd
refactor(views/activities/app/fragmants/modifiers/universe): select d…
timekadel Aug 28, 2024
2ffc866
fix(views/activities/frgagments/modifiers/widgets/fisture-pool): hand…
timekadel Aug 28, 2024
294fb63
docs(views/activities/app/fragments/modifiers/group/scene): reformat …
timekadel Aug 28, 2024
ba2df6b
Merge pull request #48 from ASLS-org/feat/migrate-to-vue3
timekadel Aug 28, 2024
fbac4e7
fix(component/uikit/lists/lit-item): remove forcing on deletable prop
timekadel Aug 28, 2024
7df545b
ci(deploy/app): set correct deployment env variables
timekadel Aug 28, 2024
14554cf
Merge pull request #49 from ASLS-org/develop
timekadel Aug 28, 2024
4eb3fd4
Merge pull request #50 from ASLS-org/staging
timekadel Aug 28, 2024
48ea85e
docs(README): update installation instructions
timekadel Aug 31, 2024
2ce28c9
docs(README): add link to documentation
timekadel Aug 31, 2024
81b25b6
docs(README): patch version
timekadel Aug 31, 2024
c6413b9
fix(widgets/fixture-channels): re-instore v-model on num input
timekadel Sep 5, 2024
307f6dd
fix(uikit/inputs/textbox/num): remove intitial toFixed
timekadel Sep 5, 2024
8e96683
refactor(models/DMX/cue): export cue constants
timekadel Sep 5, 2024
21f0b81
feat(models/DMX/effect): implement syumetrical effect direction
timekadel Sep 5, 2024
6d1a6cb
refactor(popups/visualizer): improve layout
timekadel Sep 5, 2024
dce7504
refactor(popup/cuepool): cleanup
timekadel Sep 5, 2024
8ff592b
docs(manual/introduction/installation): update installation process
timekadel Sep 5, 2024
b8017ba
refactor(uikit/cues/container): cleanup
timekadel Sep 5, 2024
503e4c0
style(misc): cleanup unused content
timekadel Sep 6, 2024
b08d3ee
docs(README): set correct documentation link
timekadel Sep 8, 2024
b955380
fix: remove conflicting calls
timekadel Sep 24, 2024
50fdfe1
chore(deps): add webrtc-adapter to dependencies
timekadel Sep 24, 2024
60faffe
feat: improve creation of new/blank shows
timekadel Sep 24, 2024
83c2837
feat(components/uikit/lists): improve listing component
timekadel Sep 24, 2024
a912b97
refactor(componentrs/uikit/inputs/range): refactor range components t…
timekadel Sep 24, 2024
11e0f00
refactor(components/uikit/inputs/checkbox): set modelValu to either b…
timekadel Sep 24, 2024
607cb8e
refactor(components/uikit/cues): force cue container width to 120px
timekadel Sep 24, 2024
9aac9ea
refactor(components/uikit/button): set toggle state to be controlled
timekadel Sep 24, 2024
d5b5e59
feat(visualizer): implement autofocus, autorotation and recording
timekadel Sep 24, 2024
42900b1
feat(outputs): fully refactor output control and implement WSC
timekadel Sep 24, 2024
60dba2e
feat(resize): implement app fragments resizing
timekadel Sep 24, 2024
3d320d5
fix: stop using preventUnfocus props
timekadel Sep 24, 2024
b52739a
feat(plugins/visualizer/controls): set autofocus as optional
timekadel Sep 24, 2024
a3c9e33
refactor(popups/error): change error popup styling to better fit UI
timekadel Sep 24, 2024
1b84e2b
refactor(worker): set worker timer to run at 60Hz
timekadel Sep 24, 2024
a8ea685
refactor(misc): tiny UI improvements
timekadel Sep 24, 2024
c7fcf08
style: cleanup logs
timekadel Sep 24, 2024
bfe05bb
Merge branch 'develop' of https://github.com/ASLS-org/studio into dev…
timekadel Sep 24, 2024
1f99f0d
fix(widgets/curve): set width and height on mount
timekadel Sep 30, 2024
59cfa66
fix(models/DMX): patch relatively update cue's state
timekadel Oct 4, 2024
2a3668e
fix(widgets/curve): store canvas dimensions
timekadel Oct 4, 2024
b4007f5
fix(widgets/timeline): force rerender on chase change
timekadel Oct 4, 2024
9489611
fix(group-pool): redirect on group deletion to avoid access to delete…
timekadel Oct 4, 2024
d4943da
refactor: remove unused assets
timekadel Oct 18, 2024
2cc12a0
feat(electron): setup electron
timekadel Oct 18, 2024
fbad7c7
style(vite/config): reformat and cleanup
timekadel Oct 24, 2024
747beed
refactor(env): provide correct local env variables
timekadel Oct 24, 2024
dd60dc5
refactor(static): provide correct static assets path
timekadel Oct 24, 2024
ca6b821
fix(router): use memory router
timekadel Oct 24, 2024
293a8ff
fix(app/fragments/visualizer): set capture stream to 24 fps and order…
timekadel Oct 31, 2024
ef2891c
fix(app/splash): set correct releases links
timekadel Dec 17, 2024
58f3457
feat(electron): setup electron app to use WSC protocol
timekadel May 6, 2026
9cbc6b1
feat(visualizer): minor visualizer improvements
timekadel May 6, 2026
36606fb
fix(models/DMX): force-use WW timers
timekadel May 6, 2026
95e2101
fix(modesl/DMX/group-pool): optionaly chain clearall methods
timekadel May 6, 2026
6e66fb6
fix(models/DMX/effects): minor effect engine improvements
timekadel May 6, 2026
0b2003b
fix(views/activities/application/modifier/chase/widgets/timeline): pa…
timekadel May 6, 2026
ddd8a26
Merge pull request #52 from ASLS-org/feat/electron
timekadel May 6, 2026
f05ed36
Merge pull request #55 from ASLS-org/develop
timekadel May 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .env
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
VUE_APP_DMX2WS_SERVER_URL=127.0.0.1:5214
VITE_APP_DMX2WS_SERVER_URL="127.0.0.1:5214"
VITE_DEV_SERVER_URL="http://localhost:5173"
VITE_STATIC_URL=""
WSC_VERSION="2.2.0-rc.6"
38 changes: 38 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
module.exports = {
extends: [
'airbnb-base',
'eslint:recommended',
'plugin:vue/vue3-recommended',
],
env: {
browser: true,
node: true,
es2021: true,
},
parserOptions: {
ecmaVersion: 'latest',
},
rules: {
'vue/no-mutating-props': ['error', {
shallowOnly: true,
}],
'no-plusplus': 'off',
'no-underscore-dangle': 'off',
'max-classes-per-file': 'off',
'no-constructor-return': 'off',
'no-param-reassign': 'off',
'no-await-in-loop': 'off',
camelcase: 'off',
},
settings: {
'import/resolver': {
alias: {
map: [
['@', './src'],
['@root', './'],
],
extensions: ['.js', '.vue'],
},
},
},
};
36 changes: 36 additions & 0 deletions .github/workflows/deploy.app.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Deploy

on:
push:
branches: [staging]

permissions:
contents: read # for checkout

jobs:
build:
runs-on: ubuntu-latest

# This is due to change for different envs but
# as of today we only have one deployment endpoint (demo)
if: github.ref == 'refs/heads/staging'
steps:
- uses: actions/checkout@v3
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: '16.x'
- name: Install npm dependencies
run: npm install
- name: Run build task
run: npm run build --if-present
- name: Deploy to Server
uses: easingthemes/ssh-deploy@main
with:
SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_PRIVATE_KEY }}
ARGS: '-rlgoDzvc -i --delete'
SOURCE: 'dist/'
REMOTE_HOST: ${{ secrets.SERVER_REMOTE_HOST }}
REMOTE_USER: ${{ secrets.SERVER_REMOTE_USER }}
TARGET: ${{ secrets.STUDIO_APP_SERVER_REMOTE_TARGET }}
EXCLUDE: '/dist/, /node_modules/'
36 changes: 36 additions & 0 deletions .github/workflows/deploy.docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Deploy

on:
push:
branches: [master, staging]

permissions:
contents: read # for checkout

jobs:
build:
runs-on: ubuntu-latest

# This is due to change for different envs but
# as of today we only have one deployment endpoint (demo)
if: github.ref == 'refs/heads/staging'
steps:
- uses: actions/checkout@v3
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: '16.x'
- name: Install npm dependencies
run: npm run docs:manual:build
- name: Run build task
run: npm run build --if-present
- name: Deploy to Server
uses: easingthemes/ssh-deploy@main
with:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
ARGS: '-rlgoDzvc -i --delete'
SOURCE: './docs/manual/.vitepress/dist/'
REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }}
TARGET: ${{ secrets.REMOTE_TARGET }}
EXCLUDE: '/dist/, /node_modules/'
29 changes: 29 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Release

on:
push:
branches: [ master, staging ]

permissions:
contents: read # for checkout

jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write # to be able to publish a GitHub release
id-token: write # to enable use of OIDC for npm provenance
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "lts/*"
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,13 @@ yarn-error.log*
*.sln
*.sw?

# Electron output
/out

#Electron-builder output
/dist_electron
/dist_electron

# Vitepress
**/.vitepress/cache

**/bin/
116 changes: 59 additions & 57 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,86 +1,88 @@
[![MadeWithVueJs.com shield](https://madewithvuejs.com/storage/repo-shields/4381-shield.svg)](https://madewithvuejs.com/p/asls-studio/shield-link)
# What is ASLS Studio
<p align="center">
<a href="https://studio.asls.io/" target="blank"><img src="./src/assets/images/studio_logo_textual.svg" height="100" alt="ASLS Studio logo" /></a>
<p align="center">Open source, web-based, show control software and visualizer </p>
</p>

[ASLS Studio](https://studio.asls.timekadel.com) is an open-source, web-based, DMX lighting control software and visualizer.
<p align="center">
<a href="https://madewithvuejs.com/p/asls-studio/shield-link" target="_blank">
<img src="https://madewithvuejs.com/storage/repo-shields/4381-shield.svg" alt="MadeWithVueJs.com shield" />
</a>
<a href="https://github.com/ASLS-org/studio/?tab=GPL-3.0-1-ov-file" target="_blank">
<img src="https://img.shields.io/github/license/asls-org/studio" alt="License" />
</a>
</a>
<a href="https://github.com/ASLS-org/studio/releases" target="_blank">
<img src="https://img.shields.io/github/v/tag/asls-org/studio?include_prereleases&sort=semver&style=flat&label=version" alt="Version" />
</a>
</p>

> **Warning:**
The current distribution of ASLS Studio is in alpha status. Listed features are provided as-is, without any guarantee. Please report any issue over the project's repository.
## Overview

ASLS Studio is currently in beta version and available for download through its GitHub repository. This guide will help you set up ASLS Studio on your machine.

## Motivation
> **Warning**: ASLS Studio is in early beta phase. Features are provided as-is, without guarantees. Please report any issues on the project's repository.

Part of ASLS (Autonomous Stage Lighting Systems) development, it was originally created to offer ways to program ASLS DMX nodes on the fly through a simple web-browser. Following the end of the project, it was decided to release the project as an open-source, free to use platform for anyone to enjoy.
Full software documentation is available at [studio.asls.io](https://studio.asls.timekadel.com).

## Features
## System Requirements

ASLS Studio comes with standard DMX lighting control software features such as Universe patching, Fixture grouping, Scene generation, Effect engines, Show Emulation and much more. The following manual aims to guide you through each individual feature.


# Installation

The alpha version of ASLS Studio is presently available to download through it's [repository](https://github.com/ASLS-org/studio.git). An executable version of the software should be released during beta state.
This section will help you download and setup ASLS Studio on your machine.
### Hardware
- RAM: 4GB minimum (8GB or more recommended)
- Graphics: Integrated graphics with WebGL 1.0 / WebGL 2.0 support (Dedicated GPU recommended)

> **Warning:**
The current distribution of ASLS Studio is in alpha status. Listed features are provided as-is, without any guarantee. Please report any issue over the project's repository.
### Software
- Operating System: Any OS supporting the required software
- Node.js: v16.15.1 or higher
- Browser: Latest version of Chrome, Firefox, or Opera

## Requirements
## Installation Process

> **Info:**
As of today, there is no **"user-friendly"** installation script available to download. It is recommended to users that might not be familiar with [Git](https://git-scm.com/)/[GitHub](https://github.com/) and [Node.js](https://nodejs.org/en/) to read a bit about these tools before proceeding with the next steps.
1. **Clone the Repository**

In order for ASLS Studio to run on your machine, please make sure that you meet the following minimum system specifications:
Open a terminal and navigate to your desired installation directory. Then run:

### Hardware
```
git clone https://github.com/ASLS-org/studio
```

- 4GB of RAM (8GB or more recommended)
- Integrated graphics with WebGL 1.0 / WebGL 2.0 support (A dedicated GPU is recommended)
2. **Navigate to Project Directory**

### Software
- [Node.js](https://nodejs.org/en/) v16.15.1 or upper
- Latest version of one of the following browsers: [Chrome](https://www.google.com/chrome/), [Firefox](https://www.mozilla.org/en-US/firefox/new/), [Opera](https://www.opera.com/download)

```
cd studio
```

## Download and install
3. **Install Dependencies**

Browse to the path of your choice and run the following command from a terminal:
```
npm install
```

```
$ git clone https://github.com/ASLS-org/studio.git
```
## Running ASLS Studio

Get to the project's root.
```
$ cd studio
```
### Local Development Server

Install package dependencies.
```
$ npm install
```
To start ASLS Studio on a local development server:

## Start Environment locally
1. Run the following command:

Serve ASLS Studio in the local server.
```
$ npm run serve
```
```
npm start
```

ASLS Studio will start a server at http://localhost:4515. Simply browse to the following URL using your favorite browser to be prompted with ASLS Studio's user interface.
2. Open your browser and navigate to [http://localhost:5173](http://localhost:5173)

## Build For Production
### Production Build

Build ASLS Studio from source.
To create a production build:

```
$ npm run build
```
1. Run the build command:

Built files will be located over the local `./dist` folder located at project root.
```
npm run build
```

# Getting Started
2. Locate the built files in the `./dist` folder at the project root.

Please refer to [ASLS Studio's manual](https://studio.asls.timekadel.com) for an in-depth guide on how to use this tool.
## Troubleshooting

> **Warning:**
Please note that this is an early alpha version. Documentation is still in progress. It will be updated following the next releases.
If you encounter any issues during installation or usage, please report them on the [ASLS Studio GitHub repository](https://github.com/ASLS-org/studio/issues).
5 changes: 0 additions & 5 deletions babel.config.js

This file was deleted.

2 changes: 1 addition & 1 deletion docs/developer/ui/.storybook/main.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const path = require('path');
import * as path from 'path'

module.exports = {
"addons": [
Expand Down
2 changes: 1 addition & 1 deletion docs/developer/ui/.storybook/preview.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import uikit from '@/views/components/uikit/'
import {storiesOf} from '@storybook/vue';
import { action } from '@storybook/addon-actions'
import theme from './theme.asls.js'
const { parse } = require('comment-parser/lib')
import { parse } from 'comment-parser/lib'


/**
Expand Down
17 changes: 9 additions & 8 deletions docs/manual/.vitepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@ export default {
title: "ASLS Studio",
description: "Open-source, web-based DMX lighting control software.",
head:[
['link', { rel: "icon", type: "image/png", sizes: "32x32", href: "/asls-logo.png"}],
['link', { rel: "icon", type: "image/png", sizes: "32x32", href: "/studio_standalone_logo.png"}],
],
themeConfig: {
siteTitle: "ASLS Studio",
algolia: {
apiKey: '535c62495650c876ca7413debb4491ff',
indexName: 'ASLS',
appId: '1L7RJIJ77A'
search:{
provider: 'local',
},
logo: '/asls-logo.png',
socialLinks: [
{ icon: 'github', link: 'https://github.com/asls-org/studio' },
],
logo: '/studio_standalone_logo.png',
nav: [{
text: 'User Manual',
link: '/introduction/'
Expand Down Expand Up @@ -101,11 +102,11 @@ export default {
},
footer: {
message: "ASLS Studio - Released under the GPLv3 License",
copyright: "Copyright (C) 2021-present Timé Kadel."
copyright: `Copyright (©) 2021-${new Date().getFullYear()} Timé Kadel.`
},
markdown: {
// theme: 'material-palenight'
toc: "every"
}
}
}
}
Loading
Loading