Google Sceneform – Is it deprecated? Any replacement? [closed]

Edited 2022:

Sceneform maintained and successor:

  • Sceneform - Java Continuation : SceneView/sceneform-android
  • SceneView - Kotlin Successor : SceneView/sceneview-android

Differences with Google Sceneform (1.15.0, 1.16.0, 1.17.0 and 1.17.1)

  • No plugin needed: Use gltf and glb 3D models files directly from assets, res/raw, local file or http/https url instead of sfa, sfb, fbx, obj,...
  • Latest versions of ARCore SDK and Google Filament
  • Latest gradle dependencies including AndroidX, LifecycleScope/Coroutines (SceneView only),...
  • Available as mavenCentral() dependency
  • Augmented Images supported
  • Augmented Faces supported
  • glb or gltf for 3D models (animations supported)
  • hdr or ktx for Environement (IndirectLight + Skybox)
  • 3D only usage supported and single dependency without ARCore (SceneView only)
  • VideoNode for MediaPlayer (mp4, avi,...) Video 3D Node
  • Horizontal/Vertical Plane Placement
  • Depth occlusion and placement (SceneView only)
  • InstantPlacement (SceneView only)
  • HdrLightEstimation with adjustements between more Spectacular or Realistic
  • Simple Model Viewer for basic usage, with only ArSceneView parameters
  • Less OpenGL knowlege needed

Updated: August 18, 2021.

About Sceneform replacement on Google IO '21

Let's listen to what Fred Sauer (Developer Advocate at Google on the ARCore team) tells us about replacements of Sceneform. Here's a link to video called AMA : ARCore (time 06:25).


About 3 last versions

At the moment there are three potential candidates to choose from:

  • Sceneform 1.17.1
  • Sceneform 1.16
  • Sceneform 1.15

Several months ago Google recommended not to use the latest version Sceneform 1.17 due to Maven artifacts (now it might work normally but it's still a question). Sceneform 1.16 isn't available via Android Studio plugins' menu because, as you said, its status is Archived (I should say Abandoned). Release 1.16 supports glTF/glTB formats, instead of SFA and SFB assets. And Sceneform 1.16 went open-source. Hence you can download it from GitHub. The only thing I don't understand why Google released Sceneform 1.17 if Sceneform 1.16 was archived?!

So there are two 100%-working versions at the moment – Sceneform 1.16 and Sceneform 1.15.


Sceneform 1.16 installation

  • For downloading Sceneform 1.16 for ARCore Android use this link on GitHub.

  • Use these thorough instructions to include and build the Sceneform 1.16 SDK with your app.


Sceneform's future is unenviable...

Now we know that Google doesn't prepare a release of a new 3D rendering engine (even using Filament as a base). I've heard that original ARCore team has fell apart, that's why new ARCore/Sceneform features are implemented so slow.


Here are few words about ARCore and Sceneform from Dereck Bridie, Google Engineer:

on 26 May 2020

There are currently no plans to change ARCore's Android SDK to make it easier to adopt for users without a 3D background. We archived the Sceneform repository to make it clear that we are no longer actively maintaining Sceneform. We open sourced it with the 1.16 release so that you can continue to use it if you find it useful. This means you can also fork the repository to add any additional features that you need. However, if you are building a new project, consider using the Unity ARCore SDK for Android. It uses Unity to render objects in 3d space and provides an easier way to create an ARCore app. I want to add that there definitely is active development on the ARCore SDKs. We want to get features like ARCore depth and persistent cloud anchors right before releasing them.

P.S.

In addition to the above, read a recipe of vortice3D user to keep a Sceneform 1.17 alive.



It's a sad story, I like Sceneform and for me it will not be easy to simple replace it. Because of that I forked it and updated the lib to androidx and filament 1.7. https://github.com/RGregat/sceneform-android-sdk. What is not working is the new Depth API introduced in ARCore 1.18. I'm not sure how difficult it is to implement it into Sceneform, because it depends on the Fragment Shader.