Blocked message on App


I have a friend that is going to show a sculpture for a 6 days starting on friday the 14th.

So I thought it was a good project to test Zapworks Studio to develop a AR experience with his digital twin.
It’s a AR based on marker visualization. The marker is a google maps picture, of the real place he would like to have his sculpture possed at Madrid.
We have the real sculpture, that we scanned and build the 3D model, and 6 different materials applied.
You can see them at sketchfab,
It was the best way I found to import the models with different textures any way.

Ok so the experience is with a tablet were the user will aim to the marker, and the very first sculpture is going to be the one in marble, with the scaled size so it feels right in the REAL over the marker image.
I designed 8 different buttons, 6 to change the sculpture so it looks like you change the material. and two more buttons to change the scale of the 3D object.

My problem is that everything works, with one 3D object. In the moment I put another 3D object on the scene… the App just keep the message “unblocking”, but it does not, and stays in that state.

It’s difficult to explain… BUT i’m ON a HURRY, i need it to be ready tomorrow, I promised my friend… can any one help? Did I explain my self well?


Just checking you said “unblocking” do you mean unlocking?
Like when the scan first loads?

If so you have an error in your code somewhere. If it uploaded and you don’t have any visible errors in studio look for empty scripts. Try to run it in the zappar desktop. you can see errors there in the developer tool (gear on top)



Hi Steve, thank you for your answer.

Yeap… “unlocking”… sorry I was translating from spanish…

I found that the SIZE is in “red”, could it be that is to heavy? 12.2 MB


Also… Can I have more that two 3D objects inside the same Target?


You can have it as large as you like. Zappar likes to keep the size around 5-7MB but I have had it as large as 30MB. It just takes longer to download at the scan point the bigger it is and older devices slow down.

There is a list of what will work as for models size and poly counts HERE

As long as you stay with in that you can have a lot of models.
If you want post your code I can take a look.


Just looked at your Sketchfab. are you adding all 6 models just to change the materials of it?
They all look the same so you could have 1 model and change the materials in it with the buttons.


Changing only material could be great.
But I created the 3D models with Adobe dimension, and I’m not able to extract the materials a part.
Tried with Blender, and it didn’t work. And the GLTF from Adobe dimension give a json error when importing into the studio…

I have the buttons to hide and show the 3D objects.



That’s the error I see on the console


Ok so it looks like the png is missing that’s why. What model did you add?

Here is a trick I learned. After you get your models into zapworks in each model you will see the materials on the right side. You can right click on them and save them. From there just copy down the settings info to use later. Pick one model add the saved materials to it. using code change the setting to match. See Sebs Post HERE



But is strange, it loses the png only when you put together the Marbel and the blue dotted one. But if you put them alone it works… strange…

Never the less I tried Sebs scripts and work very good, But I need to change not only the Diffuse Map I need to change whole material and Normal Map… so the light realy looks the way it suppoused to.
I try to apply “normalMap(…)” but it didn’t work.
Do you know were to find that script working…
THANK YOU IN ADVANCE!!! Your help is beeing GREAT to go ahead



On my 3D Object: New script

const Mrmol_Valencia = symbol.nodes.Mrmol_Valencia
const Lunares = symbol.nodes.Lunares

export function MarmolTexture (){ (Mrmol_Valencia);

export function LunaresTexture (){ (Lunares);

on my scene:
Script on Button Marbel

const ESCULTURA = symbol.nodes.ESCULTURA;
parent.on(“pointerdown”, (e) => {

Script on Button Lunares

const ESCULTURA = symbol.nodes.ESCULTURA;
parent.on(“pointerdown”, (e) => {


I’m glad to hear that you got it working!