Armory vs three.js

Hello everyone!

I discovered Armory3D a week ago - mindset & workflow sounds incredible … once it get stable i will be a game changer certainly within the blender community and for realtime 3d artist in general.

I have worked intensely with three.js + blender workflow for the past 5 years, last two years mostly for mobile devices. Today was my first active contact with Armory3d, setup & blender integration seems already
pretty stable and it’s very easy to use with Armory v17.01.1 if you are already familiar with the blender workflow.

I had the following question in mind testing armory today :
Can i replace my existing 5 year old blender & three.js worklfow with armory/blender targeting mobile html5/webgl?

I tested the ‚forward low‘ web builds directly via the armory page:
http://armory3d.org/demo/animation/forward_low/ - referring as Demo A

Beside i did a super simple scene using only the basics (simple timeline, no skinned character, no HDR lightning only basic armory pbr materials and one simple diffuse texture + 1 spotlight just to keep things super low to compare with the forward low animation demo:
http://zaak.ch/lab/armory/build/html5/ - referring as Demo B

iOS - Safari

iPad Air (iOS 8.2)
	CPU: Apple A7 Dual-core 1.3 GHz Cyclone (ARM v8-based) 
	GPU:  PowerVR G6430
	Demo A: Works with 12fps
	Demo B: Works with 60fps

iPad Pro (iOS 10.2)
	CPU: Apple A9X Dual-core 2.26 GHz (Twister)
	GPU: PowerVR Series 7XT GPU
	Demo A: Works with 60fps
	Demo A: Works with 60fps
	
iPhone 6 (iOS 10.1.1)
	CPU: Apple A8 Dual-core 1.4 GHz Typhoon (ARM v8-based)
	GPU: PowerVR GX6450 (quad-core graphics)
	Demo A: Works with 50fps
	Demo B: Works with 60fps

Android - Chrome

LG Nexus 5 - Chrome for Android 55
	CPU: Qualcomm MSM8974 Snapdragon 800 Quad-core 2.3 GHz Krait 400
	GPU: Adreno 330
	Demo A: Works with 5-10fps + can’t draw materials (unusable)
	Demo B: Works with 60fps but without color! everything is in grayscale?? shader support?

Samsung Galaxy S7 - Chrome for Android 55
	CPU: Exynos 8890 Octa Octa-core (4x2.3 GHz Mongoose & 4x1.6 GHz Cortex-A53)
	GPU: Mali-T880 MP12
	Demo A: Works with +/- 45fps
	Demo B: Works with 60fps

Conclusion:

The first Demo is not satisfying for one build for all mentality. Of course you could tweak a lot within this scene to make it faster, but a comparable demo in three.js would run on all the test devices with about 50fps.
The second Demo worked on all device with 60fps, except on the Nexus 5 where a strange grayscale effect occurred, what’s possible a shader support issue.

In general - Targeting html5 for mobile Armory seems already super interesting, especially when you cut out the wholeHDR Ligthing and complex multi texture PBR workflow, reduce instead of e.g. baked cycles textures.
Workflow speed up and artistic freedom with armory is already mind-blowing. Same environment, no export & transfer hells etc.

excited!!

**

Questions:

  • armory html5 build won’t work in inkognito mode - why?
  • how to use chromes js console correctly to debug/find objects the armory html5 scene?
  • how responsive is the generated ‚khanvas‘ output (the container kha.js is pushing into)?

thanks in advance
karl

1 Like

Thank you for sharing the comparison benchmarks !