Oh, hey Kartik!<p>(Just merged your PR into wigwam.directory haha thanks!)<p>For those who don't know, Kartik's "freewheeling" apps are incredible.<p>Very much fits in the spirit of Uxn and other small ecosystem projects.<p>I recommend watching his short lecture and following along with the slides:<p>[1] <a href="https://archive.org/details/freewheeling" rel="nofollow noreferrer">https://archive.org/details/freewheeling</a><p>[2] <a href="http://akkartik.name/freewheeling/" rel="nofollow noreferrer">http://akkartik.name/freewheeling/</a><p>He totally sold me on the viability of Lua, LOVE, and small apps for making better software.<p>He also has a lovely VM called mu that's worth checking out:<p>[3] <a href="https://github.com/akkartik/mu">https://github.com/akkartik/mu</a>
Okay here's my initial feedback:<p>- You probably should do the different projects as tabs on the bottom instead of full-height side buttons, especially on Android where the horizontal space is sparse, and make the text editor full-screen.<p>- The other UI elements OTOH are way too small on android.<p>- The BG/FG sliders can be interacted with even while invisible.<p>- On Android, sliding space left/right which moves text normally, doesn't work.<p>- If you don't run the abbreviations snippet, subsequent examples fail.<p>- When you touch to move text cursor position, for a frame, a selection flashes<p>- Automatic indentation and highlighting Lua keywords at least would be cool to have.<p>- In the sweep trails example, set T to less, otherwise it looks like it's lagging.
This part is brilliant, the user can modify the app itself while it's running.<p>> Lua Carousel is a "freewheeling" app that you can read and modify the source code for as it runs. The app contains all its source code.<p>It feels similar to a self-hosting language that's written in itself. I love the idea of giving the user the power to modify not only their own programs as they run, but the editor and runtime environment. ..Ah, the readme of the Git repo goes into more detail how it works.<p><a href="https://git.sr.ht/~akkartik/carousel.love" rel="nofollow noreferrer">https://git.sr.ht/~akkartik/carousel.love</a>
Seems very similar to Processing. [1] I think this was one of the first programming environments I used as a child.<p>[1] <a href="https://processing.org/tutorials/gettingstarted" rel="nofollow noreferrer">https://processing.org/tutorials/gettingstarted</a>
Looks like this is all based on Love2D.<p>Love2D is amazing. This is cool, but you can just use whatever text editor or IDE you want and dynamically load and replace functions every second or two. Then you can type in a lua development environment and have the love2D window be separate instead of text in your way, which works well in the age of high resolution and multiple monitors.<p>If you catch errors you can just print the error in the Love2D window. With this structure/technique you can make games in real time while they are running, because you don't have to clear your global state to sub in a different draw function / input handling function etc.
Look great! I've done something similar with exactly the same approach of fully reevaluating Love functions, which allows changing the app behavior on the fly: <a href="http://notebook.kulchenko.com/zerobrane/live-coding-with-love" rel="nofollow noreferrer">http://notebook.kulchenko.com/zerobrane/live-coding-with-lov...</a>. This is only running on a desktop (as it's controlled from the ZeroBrane Studio IDE running on the same machine) and allows both changing the source code and using virtual sliders on any numbers in the script to drag left/right to affect the behavior.<p>It was very interesting to work on that and to see the behavior of the script changing in real time. I've seen some of the users creating simple applications in a matter of minutes using this approach; here is one that was done at about the same time as the Love demo (although it's using Gideros SDK): <a href="https://notebook.kulchenko.com/zerobrane/gideros-live-coding-with-zerobrane-studio-ide" rel="nofollow noreferrer">https://notebook.kulchenko.com/zerobrane/gideros-live-coding...</a>