-
Notifications
You must be signed in to change notification settings - Fork 2
/
ideas
189 lines (157 loc) · 5.02 KB
/
ideas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# ideas
A crude way of keeping track of ideas for this project.
## comments
can be denoted at the beginning of an item
Syntax:
```
<Status>(<comment>): <item>
```
Status can be:
- D = done
- V = discarded
- R = deferred
- F = failed
## ideas
The following blocks of ideas are in reverse chronological order.
The most recent one is at the top.
### future
- sync clock across clients
- multisampling
- 2D signed distance textur als "mask"
- maybe generate from something?
- ai generated
- scanned
### Endspurt Semester-Ende-Ausstellung
- Rendering verbessern
- Gestures implementieren
- Swipe y andere Frequenz
- pinch => Bumps
- x pan: continous carousell between 4 shapes
- generate 4 shaders
- for audio
- and for renderring
### D&C Endspurt Semester-Ende-Ausstellung
Jahresausstellung
- D: Rendering
- F(doesn't really work, maybe FXAA is better):
Edge antialiasing by distance
- D: inner half of threshold: draw as is
- D: outer half of threshold: draw with smoothstep e.g.
- D: Stop raymarching when outside of cube
- D: AR
- D(didn't help much): consider dynamic threshold
- arController.setThresholdMode
- AR_LABELING_THRESH_MODE_AUTO_OTSU
- D: use store variables also in sampling
- R(requires sync): visualize the scan area also in cubedShape
- V(no, there are small differences. e.g. escape when leaving cube):
put the raymarch in a function and iclude from
- shape and
- cubedShape
- D: performance fallback:
- determine target screen refresh rate by measuring it for half a second
- lower resolution, when framerate drops < 24 FPS for 10 consecutive frames
- increase resolution until optimum, when framerate > 29fps for 50 consecutive frames
- stepfactor 0.9 - or maybe 1/2
- D: das nächste Object ist das gesture target
- Also einfach die length cameraPosition vergleichen :)
- dem store/gesture-system mitteilen
- different objects
- combined sdfs 0to1, 1to2, 2to3, 3to0
- field of repeating bubbles
- smooth blend mit großer sphere
- dann twist
- Gestures
- up-down pan => twist
- left-right pan => carousell between 4 base shapes
- each of us creates one
- linear interpolation between each 2 neighbors
- pinch => bumps
- interpolate with infinitely gridrepeated spheres
- optional:
- make thicker & thinner
- e.g. two finger pan
- or custom base sdf manipulation
- modes
- audio only
- no audio when AR
- D: ar
- L: box
- D: singleShape
- D: no AR
- D: eine einzelne shape wird angezeigt mit audio
- D: AR fade in and out
- D: wenn nicht mehr visible: 'fade out'
- D: matrix bleibt
- D: use camera distance for z ordering: render far first
- R: 2D signed distance textur als "mask"
- R(too much brainfuck for the little time): multisampling
- Presentation
- 3 Sockel aus Boxen
- Lautsprecher innen rein legen
- auf schaumstoff
- XLR-Kabel rauskommen lassen
- Audiointerfaces
- Focusrite + Behringer = 4 out kanäle
- Pipewire
- audio only - flag
- Mein Smartphone als Stativ
- leave this smartphone at its place
- use your own!: QR code
- Lighting
- QR codes well visible
- One light between the three pedestals
- facing straight down
- Align real world lighting and digital lighting
- Deployment
- Server hosten @Basti
- 3 Unterschiedliche shapes! ids = {0, 1, ..., 7}
- store braucht "setActiveShape"
- wird dann immer auf die nächste shape gesetzt
- anhand length(cameraPos)
- Leute sollen die shape verändern können
- Und unser Laptop,
- der mit den Lautsprechern verbunden ist
- ist auch mit dem server verbunden
- und generiert den entsprechenden sound
- sound-only parameter
- sound-shape parameter (shape id)
- Rendering überarbeiten
### initial
- Ziel: Leute kommen ein zweites mal in die Ausstellung, extra um nochmal mit unserem Projekt spielen zu können
- Interaction
- Frequency einstellbar
- Gesten
- Interface zu den Shadern
- Sync across multiple clients
- Websockets
- Server im Lokalen Netzwerk?
- Öffentliches WLAN
- ca 0.25s delay wegen buffersize + count
- SDF
- noise textur (extrapoliert?)
- Rendering
- Graphics
- Reflections
- Raum als 6 sided cube map
- Audio
- Synchronisiert: Voreingestellte bpm
- Verschiedene Vielfache (3, 4, 8, 5)
- Sound zu Anlage
- 1 Objekt pro Speaker
- 1 tab vs 7 browsertabs https://blabla/audio/object?1-7
- WebAudio kann auch mehrere Channels
- irgendjemand mit MAC oder Windows (wegen Dante)
- Filter & Effekte
- Unterschiedlich je node
- z.B. Sägezahn LFO + FM für Percussionartiges
- Reverb für drei gleichartige, die einen Akkord ergeben
- QR-codes
- Auf Hölzernen Sockeln / Tische
- Marker für VR?
- AR (low prio)
- Modellieren
- Kalibrieren
- Shader integrieren
- Kombination aus traditioneller Computergrafik und SDF Raymarching
- bounding box