Fork me on GitHub
Ertugrul Cetin10:03:11

We have been working on a project called Code 3D World. We are thrilled to announce that the first version is released 🎉 Code 3D World is interactive, and batteries included a 3D coding platform for beginners.

❤️ 35
🆒 8
👍 9
Jakub Zika17:03:20

What do you use for 3d rendering? Just webgl?


Congrats! This is a wonderful idea.

Ertugrul Cetin19:03:15

@UL8KUA286 JMonkeyEngine, which uses lwjgl underneath

👏 3
Ertugrul Cetin19:03:04

@UC681SR17 Thanks! Glad you liked it.


It reminds me of from my childhood... but has the potential to teach so much more.


We have something really special today in libpython-clj news. Aside from continued work to stabilize v2 we have built a way to!! This sidesteps a ton of issues of trying to setup the correct embedded python environment from Clojure and instead allows a primarily Python system to run arbitrary Clojure code -- I am really excited about this possibility. In any case, itemized updates: • Many bugfixes to allow v2 to automatically detect python on more systems. • the libpython-clj project is now • You can run a Clojure repl from a Python host!! Come sit right at the technical cutting edge:

🤯 95
libpython-clj 89
🚀 59

That’s the ultimate inception! So I guess that’s “similar in spirit” to how Clojure runs within the JVM?


Oh my god, you might have just enabled me to (finally) script Unreal Engine with Clojure! 🤯


@U050KSS8M - It is similar in that spirit and it uses libpython-clj to do the interop with the host language where necessary. Physically what happens is python loads java via a shared library and creates a vm object with a classpath provided by the clojure command line program. From there you can do things like find class, call static method, etc. Then we bootstrap Clojure, nrepl, cider, and off we go.

clj 3
👍 3

@UDRJMEFSN Very cool, yes. I used libpython-clj a few months back. Was mostly a very good experience! Will report when I get a chance to try this new version. Is there a full/real JVM running within Python in this case?


Fantastic work




@U050KSS8M - yes, when you install the JDK or the JRE it installs both a java executable and a shared library for embedding java in another system. In the embedded case we use javabridge which calls java on the command line to find the shared library and then loads that. AS far as I can tell it is a real JVM.

clojure-spin 3

@U3JH98J4R haha yeah, i don't want to hijack this thread. but feel free to ping me if you want. TLDR: UnrealEditor is scriptable via python since V2.22 or so, and I've dabbled around with ECL and CLJS for runtime stuff, but nothing serious yet


@UDRJMEFSN Thanks for the detailed explanation! And, I assume, that JVM shares memory with the Python runtime?


@U012ADU90SW Wouldn't this require you to embed the JVM in unreal?


Yes, but there are already projects out there that embed V8, Python and all kinds of other stuff. So I know it works in theory. You don't want to have clj calls in tight gameplay loops of course, but for the stuff we do which involves a lot of pre-processing, server calls and stuff it would be great. It would also be completely different than what arcadia does with unity. So I look at it as a great additional tool, rather than a complete replacement for c++, or blueprints (for now).

👍 3

@U050KSS8M - Yes exactly. So zerocopy pathways should work. Shared memory space for better or for worse. Well, up until you use the python multiprocessing module then of course you have Y shared memory spaces.

👍 3