Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I os 1.0.0 alpha.1 #3

Merged
merged 12 commits into from
Jan 16, 2022
180 changes: 172 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,133 @@
# What is the ARMOD SDK?
In short, [ARMOD's](https://docs.phantomsxr.com/) solution is an AR experience platform solution similar to Snapchat ([Lens Studio](https://lensstudio.snapchat.com/)) and Facebook ([SparkAR](https://sparkar.facebook.com/ar-studio/))!

<img src="https://user-images.githubusercontent.com/82647748/149487631-6a1fd24c-3efc-46e5-aab6-3999f02fcdcc.png" width="100%">

AR-MOD is a derivative framework based on Unity ARFoundation. MOD in AR-MOD means Modification in English, meaning: modification and module. This concept is widely used in games, corresponding to modifiable video games. Famous games such as Warcraft, Red Alert, Half-Life, CS, Victory Day and more!

[![Documentation](https://img.shields.io/badge/docs-brightgreen.svg)](https://docs.phantomsxr.com/)
[![Video Tutorials](https://img.shields.io/badge/video_tutorial-brightgreen.svg)](https://www.youtube.com/channel/UCf98zocVgz1FGF6jgx4N-oA)
![License: Apache](https://img.shields.io/github/license/Phantomxm2021/ARMOD-Framework)
[![Discord](https://img.shields.io/discord/832555918591000576)](https://discord.gg/eWstRkfp)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/Phantomxm2021/ARMOD-Framework)

# Content list
- [What is the ARMOD SDK?](#what-is-the-armod-sdk)
- [What is AR-MOD do?](#what-is-ar-mod-do)
- [Enhance your world and applications](#enhance-your-world-and-applications)
- [Showcase](#showcase)


# What is the ARMOD SDK
In short, [ARMOD's](https://docs.phantomsxr.com/) solution is an AR experience platform solution similar to Snapchat ([Lens Studio](https://lensstudio.snapchat.com/)) and Facebook ([SparkAR](https://sparkar.facebook.com/ar-studio/))!

AR-MOD is a derivative framework based on Unity ARFoundation. MOD in AR-MOD means Modification in English, meaning: modification and module. This concept is widely used in games, corresponding to modifiable video games. Famous games such as Warcraft, Red Alert, Half-Life, CS, Victory Day and more!

We transplant the MOD concept into AR technology to give users more freedom to create the AR creative interactive experience content they need! In this process, users do not need to worry about AR-SDK algorithm and code implementation, but only need to devote themselves to the production of AR creative interactive experience content. With only a small amount of code, you can use all the capabilities of AR-MOD on the APP to create greater commercial value.

<table style="text-align:center">
<td style="text-align:center">

https://user-images.githubusercontent.com/82647748/149473548-b8e5e432-7ace-4880-a28e-8d2e17f95b8a.mp4

</td>
</table>

# What is AR-MOD DO

# Enhance your world and applications
AR-MOD provides AR integration capabilities for enterprises or individuals. Users do not need to understand ARKit or ARCore or even rendering logic and information, but only need to focus on the realization of AR experience content.

![UILayer](https://user-images.githubusercontent.com/82647748/149527960-32a8ea51-1c10-4085-9d75-8a0f2ce254fd.png)

![Brain](https://user-images.githubusercontent.com/82647748/149647240-334f13d9-55f1-4f7a-9c16-e29d51994569.png)


# Enhance your world and applications

ARMOD is a powerful AR solution designed for artists and developers to build augmented reality experiences for hundreds of millions of Unity users. With its suite of Unity-compatible features, including custom shaders and advanced tracking technology, the possibilities are endless.

<details>

<summary> See More About AR-MOD Platform Solustion</summary>

![2](https://user-images.githubusercontent.com/82647748/149517986-082a9691-a0c8-4802-bc24-99c5c9d2253d.png)
![3](https://user-images.githubusercontent.com/82647748/149517994-a009e89c-683c-40d1-a641-46e63a1c9ba9.png)
![4](https://user-images.githubusercontent.com/82647748/149517999-a99e18c8-b314-4c7b-8ec0-f816f79a0a24.png)
![5](https://user-images.githubusercontent.com/82647748/149518001-d42bcd2a-6527-4a44-908a-db963acb50ca.png)
![6](https://user-images.githubusercontent.com/82647748/149518003-1ddc259e-6bdd-4676-a32b-fc6dff4f3d98.png)
![7](https://user-images.githubusercontent.com/82647748/149518004-dadc6e88-6df8-41e5-b476-f73f83d6f84d.png)
![8](https://user-images.githubusercontent.com/82647748/149518005-a9968a50-f91c-4058-a0de-c3cae36e8c11.png)

</details>

# Showcase
<table width="100%">

<tr>

<td width="285px">

https://user-images.githubusercontent.com/82647748/149483206-6efeea0f-f499-4890-9f7b-6a52a10ed45b.mp4

</td>

<td width="285px">

https://user-images.githubusercontent.com/82647748/149483972-a4daf76c-49f1-4c73-9a32-22d9ed9d6fb1.mp4

</td>
<td width="285px">

https://user-images.githubusercontent.com/82647748/149483586-bb43daec-92ab-4b8b-898e-277ecce1cd09.mp4

</td>
</tr>

<tr>

<td width="285px">

https://user-images.githubusercontent.com/82647748/149475501-5288969b-1c99-465b-b2a9-079212988074.mp4

</td>

<td width="285px">

<img src="https://user-images.githubusercontent.com/82647748/149484981-e0853581-65f0-4dc0-aa66-47d06f49e93a.PNG">

</td>

<td width="285px">

<img src="https://user-images.githubusercontent.com/82647748/149486633-c354409a-85b5-4991-a5f1-73fdb55d0401.JPG">

</td>

</tr>

</table>


# AR-MOD Open Source Projects

Welcome to provide your project information to show us.

| Name | URL |
|-------------------------|----------------------------------------------------------|
| StackAR | https://github.com/Phantomxm2021/ARMOD-StackAR |
| ARMOD-Unity-Demo-App | https://github.com/Phantomxm2021/ARMOD-Unity-Demo-App |
| ARMOD-FlutterAppDemo | https://github.com/Phantomxm2021/ARMOD-FlutterAppDemo |
| ARMOD-SurvivalShooterAR | https://github.com/Phantomxm2021/ARMOD-SurvivalShooterAR |
| ARMOD-Java-Android-Demo | https://github.com/Phantomxm2021/ARMOD-Java-Android-Demo |
| AARMOD-OC-Demo | https://github.com/Phantomxm2021/ARMOD-OC-Demo |
| ARMOD-Tutorials | https://github.com/Phantomxm2021/ARMOD-Tutorials |
| ARMOD-Examples | https://github.com/Phantomxm2021/ARMOD-Examples |




# Main features of ARMOD

## AR Basic
<details>
<summary>AR Basic</summary>

- Device tracking: track the device's position and orientation in physical space.
- Plane detection: detect horizontal and vertical surfaces.
- Point clouds, also known as feature points.
Expand All @@ -30,7 +141,49 @@ ARMOD is a powerful AR solution designed for artists and developers to build aug
- Pass-through video: optimized rendering of mobile camera image onto touch screen as the background for AR content.
- Session management: manipulation of the platform-level configuration automatically when AR Features are enable or disabled.
- Occlusion: allows for occlusion of virtual content by detected environmental depth (environment occlusion) or by detected human depth (human occlusion).
## AR Cloud

||ARCore|ARKit|Magic Leap|HoloLens|
|--- |--- |--- |--- |--- |
|Device tracking|✓|✓|✓|✓|
|Plane tracking|✓|✓|✓||
|Point clouds|✓|✓|||
|Anchors|✓|✓|✓|✓|
|Light estimation|✓|✓|||
|Environment probes|✓|✓|||
|Face tracking|✓|✓|||
|2D Image tracking|✓|✓|✓||
|3D Object tracking|||||
|Meshing|||||
|2D & 3D body tracking|||||
|Collaborative participants|||||
|Human segmentation||✓|||
|Raycast|✓|✓|✓||
|Pass-through video|✓|✓|||
|Session management|✓|✓|✓|✓|
|Occlusion|✓|✓|||


</details>


<details>
<summary>Multiplayer API</summary>
Mirror is a high level Networking library for Unity, optimized for ease of use & probability of success.

- Growing library of Script Templates to make learning and coding easier.
- Remote Procedure calls and context control via Attributes.
- More than a dozen built in Components.
- Five flavors of Interest Management, and you can make your own custom version.
- Support for Additive Scenes with Physics Isolation (battle instances, levels, etc.)
- Several complete Examples included.
- Constant improvements and enhancements every month.
- Full time support available in our Discord.
- Free and not ccu limit
</details>

<details>
<summary> ARCloud </summary>

- Fast visual positioning, low system overhead
- Positioning can be run offline on the device or online in the cloud
- Plug-ins on iOS, Android and devices compatible with Huawei AR Engine
Expand All @@ -46,7 +199,11 @@ ARMOD is a powerful AR solution designed for artists and developers to build aug
- Easy-to-use Unity example with templates for indoor navigation and more
- Detailed documentation helps developers get started
- Use the 3D map viewer to develop the portal
## Unity Features
</details>

<details>
<summary>Unity Features</summary>

- Unity Editor Support
- Scriptable
- Visual Scripting
Expand All @@ -68,7 +225,12 @@ ARMOD is a powerful AR solution designed for artists and developers to build aug
- Magicleap
- Native Features
- All Platform native features are supported, But need developers to develop and adapt by themselves
## ARCMS Features

</details>

<details>
<summary>ARCMS Features</summary>

- ARExperience management
- ARShowcase management
- Recommend the ARShowcase
Expand All @@ -77,5 +239,7 @@ ARMOD is a powerful AR solution designed for artists and developers to build aug
- Authentication system
- 10,000 http api requests per day/Application
- Restful API Support
</details>



8 changes: 6 additions & 2 deletions iOS/ARMODCommunicationLayer.mm
Original file line number Diff line number Diff line change
Expand Up @@ -88,16 +88,20 @@ - (void)initARMODModule{
[NSClassFromString(frameworkLibAPI) registerAPIforNativeCalls:ncp];
}



[[self ufw] runEmbeddedWithArgc: self.selfgArgc argv: self.selfgArgv appLaunchOpts: appLaunchOpts];

// set quit handler to change default behavior of exit app
[[self ufw] appController].quitHandler = ^(){ NSLog(@"AppController.quitHandler called"); };

if (@available(iOS 13.0, *)) {

if(originWindow.windowScene != nil){
[[[[self ufw] appController] window] setWindowScene:originWindow.windowScene];
[[[[self ufw] appController] window] addSubview:self.ufw.appController.rootView];
[[[[self ufw] appController] window] makeKeyAndVisible];
[[[[[[self ufw] appController] window] rootViewController] view] setNeedsLayout];
}
}
}
Expand Down Expand Up @@ -129,7 +133,7 @@ - (void)unloadARMODWindow{
[self callSDKMethod:dispose addData:""];

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.125 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[UnityFrameworkLoad() unloadApplication];
// [UnityFrameworkLoad() unloadApplication];
[[self ufw] unregisterFrameworkListener:self];
[self setUfw:nil];
[originWindow makeKeyAndVisible];
Expand Down Expand Up @@ -180,7 +184,7 @@ - (void) connectLaunchOpts:(NSDictionary*) applaunchOpts{
- (void)initARMOD:(NSString*) appconfigure completed:(void (^)())completed{
[self initARMODModule];
[self callSDKMethod:initApp addData:[appconfigure UTF8String]];
completed();
completed();
}

/*!
Expand Down
Binary file not shown.