Import 3D Asset without servers

Is it possible to import a 3D object from Blender,3DMax,… without registering and passing through PlayCanvas servers for doing the convertion to json ?
Is the json format used by playCanvas the same as the json format used by Three.js in which case there already exists a plugin for Blender ? Otherwise how can I import a simple 3D object in playCanvas ?
Thanks

Hi Hugo,

The importer currently runs online only and requires logging in (mainly because of the requirement to store the asset in user’s project.) So the only way to import models in the PlayCanvas format is to sign up and import models there. This does have the advantage that you can use the Designer to set up all your materials, but obviously is not ideal for all users. Though feel free to create a throwaway account to use this feature.

We’re still considering a few of options. First we need to plainly document our model format, so that alternative importers can exist. Second we’d like a stand-alone importer, this would probably still run online, but wouldn’t require a PlayCanvas account. Just drop in the model and get a zip back. Getting this done is simply a matter of time at the moment.

It’s a shame, this mean PlayCanvas Engine is completely useless to someone not registering (without importing objects you can’t create game). So basically open sourcing the Engine hasn’t changed anything for the dev, they still need to register. I was considering PlayCanvas for my next game but I can’t be dependent of a importer I don’t have.
Even if I have to pay for it, I want to have my own copy of the very minimum tools I need to create a game, I need to be independant and be able to develop a game without account.

I really hope you’ll consider making a stand-alone importer that is not only online but also offline and open source. You could do it in JS/HTML and I’d run everywhere, whereas it is on a server or on a offline desktop.

Thanks for having replied

Hello there.

You should really document the format. Don’t underestimate our ability to do the importer for you :slight_smile:

+1 for a model format specification at the very least, and preferably some offline asset conversion tools. The usefulness of the product without at the very least a specification is severely limited.

As Jose mentioned above, it should be easy (and fun!) for community members to implement conversion tools if a spec is released, even an informal one.

Hi. I’m bumping this ancient thread because I have moved my project off of the online editor into standalone. I would really like a way to not use the editor at all and am 100% willing to do whatever work is required for free to get an offline model exporter.

What can I do to help?

Hi @tones31,

PlayCanvas now supports GLB models, so you can easily load your GLB models without having to push them through the editor.

Here is an example on how to do that, it’s an editor project but it showcases the relevant engine API:

https://developer.playcanvas.com/en/tutorials/loading-gltf-glbs/

2 Likes

We also some engine only examples here https://playcanvas.github.io/#graphics/model-asset.html

2 Likes

Oh wow that’s great! I’ll check it out now.

Bump again.

So I tried using some .glb files and they are so big. One of the things I loved about the JSON model file is its tiny size. 20kb vs 300kb glb files! Still wondering if there is any way I can port the FBX to JSON system for you guys, or if there is any other offline way to access it.

It shouldn’t be that big a difference :thinking: (20KB vs 300KB)

Are you also embedding and taking into account of textures for the size comparison?

In regards to the FBX to JSON, I’m not sure if that’s something we can do as it’s part of a bigger library in the backend. @will/@slimbuck Thoughts here?

1 Like

I see. Is it hand written, or is it from an open source library somewhere?

It’s custom code on top of the FBX SDK IIRC.

With the size comparisons of JSON vs GLB, does the GLB also have the textures embedded as it shouldn’t be that large a difference if we are comparing model data to model data.

Side note: GLB parsing is a lot quicker too on the engine: https://blog.playcanvas.com/faster-load-times-with-gltfs-glb-format/

1 Like

I will get back to you a bit later with definite sizes, but this had no textures embedded. I bet GLB is indeed superior but that tiny JSON file size is extremely valuable for a browser game.

Could you DM me the FBX and GLB and I can potentially take a look at what is causing the extra bloat/do some checks please?

As a sanity check on sizes, I did a test with a Kenney model in the Editor and (this is uncompressed)

After zipping:

1 Like

Hi, sorry to waste your time, you’re totally right. There must be something in this file causing it to bloat, maybe a stray texture. Thanks!!!

1 Like

It could also be related to export options to GLB? I’m not too familiar with the whole pipeline myself :sweat_smile:

you can convert it to gltf format and have a look at the json part of it to see what blocks of binary data are contributing to the size perhaps.

It was a rogue modifier :slight_smile:

1 Like