All Projects → appoly → Arcore Location

appoly / Arcore Location

Licence: mit
Allows items to be placed within the AR world with real-world GPS coordinates using ARCore.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Arcore Location

learn ar flutter
An Augmented Reality app made in Flutter.
Stars: ✭ 54 (-86.47%)
Mutual labels:  augmented-reality, arcore
react-native-arcore
React native bindings for Android ArCore as UI Component with support for model rendering and manipulation
Stars: ✭ 35 (-91.23%)
Mutual labels:  augmented-reality, arcore
captAR
Augmented Reality Geolocation Capture-the-Flag Mobile Game Capstone Project
Stars: ✭ 24 (-93.98%)
Mutual labels:  augmented-reality, geolocation
Xr Unity
8th Wall XR Unity projects and resources. Feel free to contribute!
Stars: ✭ 108 (-72.93%)
Mutual labels:  augmented-reality, arcore
sceneview-android
SceneView is a 3D/AR Android View with ARCore and Google Filament. This is the newest way to make your Android 3D/AR app.
Stars: ✭ 100 (-74.94%)
Mutual labels:  augmented-reality, arcore
Viro
ViroReact: AR and VR using React Native
Stars: ✭ 1,735 (+334.84%)
Mutual labels:  augmented-reality, arcore
Jeelizar
JavaScript object detection lightweight library for augmented reality (WebXR demos included). It uses convolutional neural networks running on the GPU with WebGL.
Stars: ✭ 296 (-25.81%)
Mutual labels:  augmented-reality, arcore
glimpse-android
An android app to show your products in Augmented Reality (AR). Built using ARCore and Firebase
Stars: ✭ 20 (-94.99%)
Mutual labels:  augmented-reality, arcore
awesome-arcore
⚡️ A curated list of awesome ARCore projects and resources. Feel free to contribute!
Stars: ✭ 16 (-95.99%)
Mutual labels:  augmented-reality, arcore
augmentedreality
Augmented Reality examples for Android.
Stars: ✭ 14 (-96.49%)
Mutual labels:  augmented-reality, arcore
Nativescript Ar
Augmented Reality NativeScript plugin
Stars: ✭ 107 (-73.18%)
Mutual labels:  augmented-reality, arcore
sceneform-android
Sceneform Maintained is an ARCore Android SDK with Google Filament as 3D engine. This is the continuation of the archived Sceneform
Stars: ✭ 303 (-24.06%)
Mutual labels:  augmented-reality, arcore
Awesome Arcore
A curated list of awesome ARCore projects and resources. Feel free to contribute!
Stars: ✭ 106 (-73.43%)
Mutual labels:  augmented-reality, arcore
Ar Toolbox
🧰 ARCore & Sceneform Playground
Stars: ✭ 179 (-55.14%)
Mutual labels:  augmented-reality, arcore
Teapot shooter
Augmented Reality Teapot Shooter made using Unity and ARCore
Stars: ✭ 30 (-92.48%)
Mutual labels:  augmented-reality, arcore
ScoutAR
Augmented reality app displays nearby restaurant information in a live camera and map view.
Stars: ✭ 28 (-92.98%)
Mutual labels:  augmented-reality, annotations
stardust-SDK
Stardust SDK and sample app for Unity
Stars: ✭ 23 (-94.24%)
Mutual labels:  augmented-reality, arcore
Virocore
ViroCore cross-platform AR/VR renderer
Stars: ✭ 270 (-32.33%)
Mutual labels:  augmented-reality, arcore
Arkit Scnpath
Create paths for your Augmented Reality environments using just points to represent the centre of the path.
Stars: ✭ 312 (-21.8%)
Mutual labels:  augmented-reality
Gmscore
Free implementation of Play Services
Stars: ✭ 4,356 (+991.73%)
Mutual labels:  geolocation

Example Annotation

ARCoreLocation

Allows items to be placed within the AR world using real-world coordinates.

Built for the ARCore Android SDK.

Version 1.x is now for SceneForm projects, and will not be compatible with old versions of ARCore. If you are still using the older version of ARCore, change branch to "legacy". Note that legacy will not recieve frequent updates.

Example usage

It's first required to set-up a basic ARCore sceneform project, or you can use our example.

Importing the library

Add the JitPack repository to your build file

Step 1.

Add JitPack in your root build.gradle at the end of repositories:

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

Step 2.

Add the ARCore-Location dependency. Replace 1.0.6 with the latest release from the releases tab on Github

dependencies {
    implementation 'com.github.appoly:ARCore-Location:1.0.6'
}

Using the library

It's highly reccomended to use the example project as a reference. To implement this library into one of your AR projects, do the following.

Step 1.

Inside your AR Activity, you should create a new variable called locationScene, which will be the instance of this library.

private LocationScene locationScene;

Step 2.

Set up your renderables in onCreate

CompletableFuture<ModelRenderable> andy = ModelRenderable.builder()
        .setSource(this, R.raw.andy)
        .build();


CompletableFuture.allOf(andy)
        .handle(
                (notUsed, throwable) -> 
                {
                    if (throwable != null) {
                        DemoUtils.displayError(this, "Unable to load renderables", throwable);
                        return null;
                    }

                    try {
                        andyRenderable = andy.get();

                    } catch (InterruptedException | ExecutionException ex) {
                        DemoUtils.displayError(this, "Unable to load renderables", ex);
                    }
                    return null;
                });

Step 3.

Both your LocationScene, and various location markers should be instantiated in your onCreate method. Assuming you already have a arSceneView - the LocationScene and LocationMarkers can be set-up in the update listener.

arSceneView
.getScene()
.setOnUpdateListener(
frameTime -> {

    if (locationScene == null) {
        locationScene = new LocationScene(this, this, arSceneView);
        locationScene.mLocationMarkers.add(
                new LocationMarker(
                        -0.119677,
                        51.478494,
                        getAndy()));
    }

    ....

    if (locationScene != null) {
        locationScene.processFrame(frame);
    }

});

Where getAndy() is the following (also showing a onTapListener):

private Node getAndy() {
    Node base = new Node();
    base.setRenderable(andyRenderable);
    Context c = this;
    base.setOnTapListener((v, event) -> {
        Toast.makeText(
                c, "Andy touched.", Toast.LENGTH_LONG)
                .show();
    });
    return base;
}

Permissions

This library requires permission to use the device Camera and Fine Location. You should set this up in AndroidManifest.xml. If you're unfamiliar with requesting permissions, have a look at HelloArActivity in our example project.

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

The library provides ARLocationPermissionHelper - which is similar to the PermissionHelper used in Google's example projects, and provides a range of functions to correctly aquire the necessary permissions. Please see the example project for guiadance.

Support

If you're having problems with the library, please open a new issue, and we'll aim to address it quickly.

Known issues

Mobile phone compasses only have an accuracy of about 15 degrees, even when calibrated. For most applications this is adequate, but when trying to superimpose markers over the real world it can be very problematic. This is a problem we haven’t resolved, and welcome your ideas on how best to do so!

Contributing

We'd love your help in making this library better. Pull requests with new features and bug fixes are welcome.

Apps built with ARCore-Location

Where's my cAR? - Appoly

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].