Can someone please confirm the minimum spec for running ThreeJS on iOS devices.
I have an iPad2 running iOS9.x. Safari doesn’t render any 3D on threejs.org. It does work on an iPhone 6 though. I don’t have any models in between those though.
I’ve looked at caniuse.com however the info doesn’t seem to be right as it says that I can use webGL on iOS8 or higher.
Yes it is a pain. I’ve got an old mac mini somewhere but cant be bothered to look for it :).
Babylon doesn’t render anything either on the iPad2.
I think for my ThreeJS app I’ll require whatever iOS works on the iPhone6. Just a thought but is it possible to render offscreen then just show a JPEG image of it?
Not on the iPad since you need WebGL for the rendering process.
You might consider to perform the render on a server and then just provide the final image as a response. However, this approach does not properly work if you require an animation loop.
Not sure if related, but Safari on iOS9 does not support const and arrow functions (at least they didn’t when I did some debugging last year on iPad2.)
I keep forgetting which version of three is final, but the ones I have locally seem to use consts quite a lot:
@Kim_Boulton I seem to have both ipad2 and a mac around - can you please link a three.js project you are trying to run? I can debug it and see what breaks.
@Mugen 87. The conformance test page (v1.0.4) won’t load, it just stops at ‘loading tests…’. However all the demos in /registry/webgl/sdk/demos/webkit/ do work!
@Mugen87 tested on ipad2 - it does work the way you linked it. In the end, it does also work with const. It seems to stop working when changing var to let - overall ES6 support seems to be quite partial.
You need iOS 11 or higher to correctly use ThreeJS. Bearing in mind that iOS 10.3 and lower have less than 1% user base there’s no point trying to support it. HTH.
I read on the caniuse site that anything iOS10.3 or lower doesn’t support ES6 ‘let’. If ThreeJS uses that then it won’t work without fiddling around with it. I don’t know why the fiddle works but is it really worth it for less than 1% user base? The ThreeJS site demos don’t work which is enough for me
The fiddle works because the build files three.min.js and three.js are transpiled to ES5. The official examples use three.module.js which is a ES6 build file.
So as long as you use three.min.js and write ES5 code in your app, it will run on older systems or devices, too.