Skip to content

Commit 48aa961

Browse files
committed
dev docs
1 parent 34e25fe commit 48aa961

File tree

2 files changed

+44
-46
lines changed

2 files changed

+44
-46
lines changed

docs/develop/layers.md

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,49 @@
22

33
## Mapping model (🚧)
44

5-
<img width="500" src="https://github.com/user-attachments/assets/6f76a2d6-fce1-4c72-9ade-ee5fbd056c88" />
6-
7-
* Multiple Nodes can be created (1)
8-
* Each node can have controls (compare controls in WLED / StarLight) ✅
9-
* Each node can run precompile code or Live scripts (with or without loop) ✅
10-
* Each node has a type:
11-
* Layout: tell where each light is in a 1D/2D/3D physical coordinate space (based on StarLight fixtures) ✅
12-
* Effect:
13-
* run an effect in a virtual coordinate space ✅
14-
* in the physical space if you want to run at highest performance, e.g. a random effect doesn't need to go through mappings ✅
15-
* Modifier: Mirror, rotate, etc, multiple modfiers allowed (projection in StarLight) 🚧
16-
* A modifier can also map lights dimensions to effect dimensions: change the lights to a 1D/2D/3D virtual coordinate space
17-
* e.g. if the light is a globe, you can map that to 2D using mercator projection mapping
18-
* if the light is 200x200 you can map it to 50x50
19-
* if the light is 2D, a 1D effect can be shown as a circle or a bar (as WLED expand1D)
20-
* Driver show: show the result on Leds (using FastLED, hpwit drivers), Art-Net, DDP, ...
21-
* Future situation: Nodes and noodles (2)
22-
* Replace the nodes table (1) by a graphical view (2)
23-
* Virtual Layer (MappingTable) (3)
24-
* Array of arrays. Outer array is virtual lights, inner array is physical lights. ✅
25-
* Implemented efficiently using the StarLight PhysMap struct ✅
26-
* e.g. [[],[0],[1,2],[3,4,5],[6,7,8,9]] ✅
27-
* first virtual light is not mapped to a physical light
28-
* second virtual light is mapped to physical light 0
29-
* third virtual light is mapped to physical lights 1 and 2
30-
* and so on
31-
* Virtual lights can be 1D, 2D or 3D. Physical lights also, in any combination
32-
* Using x + y * sizeX + z * sizeX * sizeY 🚧
33-
* set/getLightColor functions used in effects using the MappingTable ✅
34-
* Nodes manipulate the MappingTable and/or interfere in the effects loop 🚧
35-
* A Virtual Layer mapping gets updated if a layout, mapping or dimensions change 🚧
36-
* An effect uses a virtual layer. One Virtual layer can have multiple effects. ✅
37-
* Physical layer
38-
* Lights.header and Lights.channels. CRGB leds[] is using lights.channels (acting like leds[] in FASTLED) ✅
39-
* A Physical layer has one or more virtual layers and a virtual layer has one or more effects using it. ✅
40-
* Presets/playlist: change (part of) the nodes model
5+
<img width="500" src="https://github.com/user-attachments/assets/6f76a2d6-fce1-4c72-9ade-ee5fbd056c88" />
416

7+
* Multiple Nodes can be created (1)
8+
* Each node can have controls (compare controls in WLED / StarLight) ✅
9+
* Each node can run precompile code or Live scripts (with or without loop) ✅
10+
* Each node has a type:
11+
* Layout: tell where each light is in a 1D/2D/3D physical coordinate space (based on StarLight fixtures) ✅
12+
* Effect:
13+
* run an effect in a virtual coordinate space ✅
14+
* in the physical space if you want to run at highest performance, e.g. a random effect doesn't need to go through mappings ✅
15+
* Modifier: Mirror, rotate, etc, multiple modfiers allowed (projection in StarLight) 🚧
16+
* A modifier can also map lights dimensions to effect dimensions: change the lights to a 1D/2D/3D virtual coordinate space
17+
* e.g. if the light is a globe, you can map that to 2D using mercator projection mapping
18+
* if the light is 200x200 you can map it to 50x50
19+
* if the light is 2D, a 1D effect can be shown as a circle or a bar (as WLED expand1D)
20+
* Driver show: show the result on Leds (using FastLED, hpwit drivers), Art-Net, DDP, ...
21+
* Future situation: Nodes and noodles (2)
22+
* Replace the nodes table (1) by a graphical view (2)
23+
* Virtual Layer (MappingTable) (3)
24+
* Array of arrays. Outer array is virtual lights, inner array is physical lights. ✅
25+
* Implemented efficiently using the StarLight PhysMap struct ✅
26+
* e.g. [[],[0],[1,2],[3,4,5],[6,7,8,9]]
27+
* first virtual light is not mapped to a physical light
28+
* second virtual light is mapped to physical light 0
29+
* third virtual light is mapped to physical lights 1 and 2
30+
* and so on
31+
* Virtual lights can be 1D, 2D or 3D. Physical lights also, in any combination
32+
* Using x + y * sizeX + z * sizeX * sizeY 🚧
33+
* set/getLightColor functions used in effects using the MappingTable ✅
34+
* Nodes manipulate the MappingTable and/or interfere in the effects loop 🚧
35+
* A Virtual Layer mapping gets updated if a layout, mapping or dimensions change 🚧
36+
* An effect uses a virtual layer. One Virtual layer can have multiple effects. ✅
37+
* Physical layer
38+
* Lights.header and Lights.channels. CRGB leds[] is using lights.channels (acting like leds[] in FASTLED) ✅
39+
* A Physical layer has one or more virtual layers and a virtual layer has one or more effects using it. ✅
40+
* Presets/playlist: change (part of) the nodes model
41+
4242
✅: Done
4343

4444
## Example
4545

46-
```json
47-
{
46+
```json
47+
{
4848
"nodes": [
4949
{
5050
"name": "Lissajous 🔥🎨💡",

docs/develop/overview.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11

22
# Develop Overview
33

4-
* [Install Development environment](https://moonmodules.org/MoonLight/develop/installation/)
5-
* [Development](https://moonmodules.org/MoonLight/develop/development/)
6-
* [Nodes](https://moonmodules.org/MoonLight/develop/development/)
7-
* [Modules](https://moonmodules.org/MoonLight/develop/development/)
8-
* [Layers](https://moonmodules.org/MoonLight/develop/development/)
9-
* [Layers](https://moonmodules.org/MoonLight/develop/development/)
10-
* [Sveltekit](https://moonmodules.org/MoonLight/develop/sveltekit/)
11-
4+
* [Installation](https://moonmodules.org/MoonLight/develop/installation/): Setup VSCode, Fork MoonLight
5+
* [Development](https://moonmodules.org/MoonLight/develop/development/): Create branch, change code, pull request
6+
* [Nodes](https://moonmodules.org/MoonLight/develop/nodes/): Effects, Modifiers, Layouts and drivers
7+
* [Modules](https://moonmodules.org/MoonLight/develop/modules/): MoonBase and MoonLight modules
8+
* [Layers](https://moonmodules.org/MoonLight/develop/layers/): Coordinate system Effects and Modifiers run in.
9+
* [Sveltekit](https://moonmodules.org/MoonLight/develop/sveltekit/): Explaining the repository MoonLight is forked from

0 commit comments

Comments
 (0)