3 ms·
Basically i'd like to add, edit, store and load code during runtime.
by hoc 3y ago
Basically i'd like to add, edit, store and load code during runtime.
- andybak 3y agoOh, code? I assumed you meant geometry and/or materials. Yes, it's possible. I can think of several ways to approach it. Not quite as cleanly as with javaScript, mind.
- hoc 3y agoHeh. What would be your favourite thoughts/combo here? Sorry for not being clear on the code part. I assumed USD and the like would be the norm now. "Complex objects" is not really helpful in this context, though.
- andybak 3y agoUSD is fairly widely used. But it's not "code" in the sense that I mean it. It's (mostly) declarative (like HTML) so I lump it in with obj, fbx and gltf. I am assuming code means "executable code" - I know the boundaries are fuzzy here and some file formats are Turing complete - but I guess what I'm saying is that I'm still not sure what you're asking!
- hoc 3y agoCode that I can create during runtime. Ideally interactively.
- Uehreka 3y agoJust a heads up, when folks say “complex 3d objects”, it’s usually assumed that they’re talking about things like GLTF files, which contain geometry, materials, lighting elements, animations, etc, and which Unity/Unreal can absolutely load/unload at runtime or even stream from a media server online (so they don’t have to be in the binary). However, once you cross over into scripting code, you are in fact crossing a barrier, and it does become harder to hot-reload the way you can in a JS app. Like, the fact that Unity scripts are written in C# and have to be compiled and linked is a pretty huge impediment that you don’t face when loading almost any other kind of asset. I’m right there with you: Hot-reloading and 3D is a thrilling combination, and tools like react-three-fiber are miles ahead of anything I’ve seen in Unity-land in terms of laying foundations for stuff like this. I’d recommend emphasizing “hot-reloading code” when drawing this distinction with Unity/Unreal folks to better get across the magnitude of what you’re looking for.
- hoc 3y agoThanks for both hints. I recently had more contact with gaming engines than I originally wanted and there's always this kind of community-specific vocabulary whenever you cross borders. Oh no,like in real life.
- gregfagan 3y agoI wrote up a post on my R3F based WebXR hot reloading setup here: https://github.com/gregfagan/blog/blob/main/xr-remote-display/README.md https://github.com/gregfagan/blog/blob/main/xr-remote-displa... You don’t actually need this if you’re just working on graphics, as usually a flat projection is fine, but it is quite nice to work inside your own XR app while iterating on the interaction.
- hoc 3y agoNice. I also started looking into possible WebRTC sources and servers since at least this could be integrated quite well into WebXR. Unfortunately I find myself cycling thru needed components for interactivity these day and being stuck between competing SW and HW constraints. Will give it a closer read next week.
- JoeyJoJoJr 3y agoIMO, the main impedance towards scripted graphics facilitating hot reloading is that they are generally coded in object hierarchies whose nested state is difficult to serialise. I have found using the 2d canvas context as an immediate mode renderer alongside a single global store allows me to create workflows more similar to what one would expect with React.
- stavros 3y agoIs hot-reloading code useful past the development stage? In what way? (I'm not familiar with 3D development at all).
- hoc 3y agoFor me it's about allowing more than plain UI interaction and about interactively building immersive working enviroments and tool-spaces.