Replies: 1 comment 4 replies
-
Naming suggestions:
Concerns:Allowing systems to return multiple values like that in Proposal 2 where each gets piped into a different system is eyebrow raising and has some semantic questions that need answering.
|
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
A use-case for system piping that i'm interested in is signal processing, something like the web audio api routing graph. This is related to #8857 but a seperate discussion for these two specific features.
Current - Linear Single Channel Pipes
System A
must be run seperately for each pipeProposal 1 - Multiple Out Pipes (
branch
)System A
can be piped to multiple outputs.B
&C
could run in parallel?Possible api:
branch
function that accepts a tuple.pipe
function to accept a tuple, similar api toadd_systems()
.Proposal 2 - Multiple Channels (
fork,join
)System A
has two distinct outputsSystem D
has two distinct inputsstereo-mono
splitting & joiningPossible api:
In/Out
arguments:Summary
I've tried to come up with a solution using a more ecs approach but have fallen flat so far, particularly for uses like merging channels and where systems may appear twice in the same graph.
FYI my particular use case is processing device gyro readings to detect human motion ie Tai Chi poses, but this setup could also be used for a modular audio engine, visual scripting etc.
I haven't looked deeply into how piping works under the hood, my understanding is that it combines all the pipes into one system so it may not be simple to just use the existing system graph setup. Is piping a possibility here or would it be better to implement these features in something similar to the render graph, or an entirely different graph structure?
Beta Was this translation helpful? Give feedback.
All reactions