3 ms·
Exactly. Technically Copper is a compiler taking your graph with those constraints in mind and building a game loop out of it.
by gbin 2y ago
Exactly.
Technically Copper is a compiler taking your graph with those constraints in mind and building a game loop out of it.
- BWStearns 2y agoThis reminds me, I've been messing around with Bevy recently and have been wondering if ECS systems might be suited to hardware. On the surface it seems like a good ergonomic fit. Not sure if ECS is a performance/determinism killer but since they're used in gaming where performance is often critical I imagine it's surmountable?
- gbin 2y agoI believe that at least the initial version of ISAAC from Nvidia was based on an ECS. I don't think it is a determinism killer, this is often a well ordered pipeline within a game loop. In terms of architecture though, it looks like it makes a ton of sense inside something like a tracker (ie the entity is basically a track) but for other parts like a vision pipeline, sensor fusion etc... I don't see how it helps. Tell me if I am missing something. Talking about Bevy, fitting Copper within Bevy to build this little simulation example happened super naturally: Copper is a System querying the Entities within the virtual world after each simulation tick.
- BWStearns 2y agoVery cool about ISAAC. I didn't know. As far as how it helps, I was mostly thinking from a dev ergonomics perspective. For things like ROS/mavlink it can sometimes be hard (for me) to think through how all the systems are interacting but for whatever reason ECSs feel like a natural way to think about systems with simultaneousish inputs and outputs.
- steve_adams_86 2y agoI'm not an authority on the topic, but a somewhat similar concept to ECS is state charts, which I find far better suited to hardware. Some might verbally assault me for calling these two things similar, but I mean that loosely. Someone who is new to both might notice that they compose systems which can communicate and respond to inputs, which is conceptually similar. State charts offer far more guarantees, consistency, reliability, and predictability though. I suppose one is about propagating data (not state, specifically), the other is about state and state control. Both are hierarchical in a sense, but ECS doesn't place as much importance on hierarchy. Apologies if I'm dead wrong.
- tejaskumar_ 2y agoInteresting point about state charts for hardware systems. They're indeed excellent for modeling complex system behaviors. I've heard of Stately/XState being used for some embedded control interfaces - while it's typically associated with web apps, the same statechart patterns work surprisingly well for describing hardware state machines and their transitions.