|
Hey everyone! If you haven't noticed already, Astrocelerate's Git repository has been looking a little quiet for the past two months, and that is because, this whole time, I've been undertaking a gigantic bet on the future of Astrocelerate by investing into what no astrodynamics software has had before: visual scripting architecture. This is part of a greater plan to make orbital mechanics easier for, and more accessible to everyone. In most specialized software, making simulations meant writing actual code, often in a domain-specific language that takes time to learn. But my unique contribution here is carrying a long-held paradigm in the realm of game development over to astrodynamics software: visual scripting. Imagine being able to perform a Hohmann transfer or simulate long-term perturbations by simply dragging and connecting nodes rather than writing lengthy scripts! Of course, if implemented poorly, visual scripting could become a severe performance bottleneck. So I thought, what better way for Astrocelerate to live up to its high-performance name by having a dedicated bytecode language that visual graphs compile down to, and having a dedicated virtual machine run it? And that's indeed what I've been developing for the past two months: a compiler toolchain and virtual machine architecture for the Astrocelerate Assembly Language, or AstroAssembly. And while everything is pretty much work-in-progress, AstroAssembly is now a Turing-complete language that's able to access and mutate simulation state, handle conditional and looping control flow, and do cool things like generate prime numbers performantly! If you're curious, I've created a feature branch on the Astrocelerate repository, and you can check out the Instruction Set Architecture for AstroAssembly, as well as the compiler toolchain + VM implementation in the src/Scripting directory. If you made it this far… thank you! submitted by /u/Nick_Zacker to r/astrocelerate |
Source: r/astrocelerate · by /u/Nick_Zacker
