This video shows the early stages of a symbolic language evaluator that I'm currently working on integrated with a VR-focused games engine that I'm also currently developing.
This demo was originally for Stephen Wolfram and Christopher Wolfram, I'm releasing it to the public now for wider feedback.
What is going on here?
This is an integration of my symbolic language evaluator into my games engine project, which runs on both PC, Oculus Quest / Android, shown here running on the Quest.
I'm typing expressions into a terminal on my desktop machine, sending them over the network to the VR headset.
Shows scene manipulation with WolframLanguage-like expressions.
Demonstrates (albeit crude and prototypical) plotting of functions and their symbolic derivative.
Shows definition of SSA code translated to LLVM-IR, runtime compiled and executed resulting in animation.
The compiler itself is JIT-compiled on startup to avoid waiting for the whole application to link every time a change is to be tested, greatly speeding up development iterations. I've developed a very simple binding mechanism that allows one to pass values to and from native functions.
• Related goals and ongoing work:
Multi-user 3D notebooks for collaborative mathematics and physics research, combining my prior work on visual programming with symbolic evaluation and functional programming (See my videos on "Vision Machine", inspired by Ivan Sutherland's Sketchpad).
I'm also building an application for graph and hypergraph rewriting in VR to function as a tool for practical research and also as an educational introduction to the Physics Project.
Currently working on GPU accelerated subgraph isomorphism implementation for rewriting large graphs, large rules and/or large rule sets.
In addition to the above I'm working on the definition of an abstract machine (similar to the Warren Abstract Machine used for Prolog) that will function as a formalised description of the language's operational semantics enabling the reasoning capabilities necessary for compilation, program transformation and optimisation.
I'm building some logic programming based functionality into the project, as it is a good formalism for managing non-determinism, search, planning and program synthesis. One motivation behind this is more optimal hardware resource scheduling.