Skip to content

Commit

Permalink
copy edits
Browse files Browse the repository at this point in the history
  • Loading branch information
Drew O'Meara committed Nov 15, 2024
1 parent 06716ed commit 36d93a1
Showing 1 changed file with 35 additions and 20 deletions.
55 changes: 35 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,69 @@
# art.media.platform.SDK
_A fully provisioned solution for files, media, and 3D asset sharing and deployment we can all agree on._

**_art.media.platform_** "Amp" is a potent 3D client-to-infrastructure aid that provides a secure, scalable, and extensible runtime for 3D applications. It supports 3D and media-centric apps with pluggable infrastructure, and allows artists, publishers, creators, and organizations to control asset deployments and experiences within high-fidelity spatial or geographic environments.
**_art.media.platform_** ("Amp") is a potent 3D client-to-infrastructure suite that provides a secure, scalable, and extensible runtime for 3D applications. It supports 3D and media-centric apps with pluggable infrastructure, allowing artists, publishers, creators, and organizations to control asset deployments and experiences within high-fidelity spatial or geographic environments.

## Key Features

- Secure, "turn-key" support for:
- Distributing _spatially_ organized media and files, transforming accessibility.
- Browsing and previewing assets and content for public or private consumption or sale.
- Publishing first-class 3D experiences on _Windows_, _Mac_, _Linux_, _Android_, _iOS_, and XR headsets like _Oculus_ and _VisionPro_.
- Deploying content "crates" independently of app release cycles.
- Integrated hardware-based authentication & signing (e.g. [Yubikey](https://yubico.com))
- __3D spaces and linking__: Users experience _spatially_ placed media and files and can be linked to any real or virtual space, _transforming human accessibility_.
- __Payment processing__: Built-in payment suite **amp.nile** offers easy integration with [Stripe](https://stripe.com/) and [Payflow](https://developer.paypal.com/api/nvp-soap/payflow/payflow-gateway/).
- __Platform coverage__: Amp lets you ship first-class 3D experiences on _Windows_, _Mac_, _Linux_, _Android_, _iOS_, and AR/VR ("XR") platforms like _VisionPro_, _Horizon_, and other OEM ecosystems (e.g. HoloLens, Magic Leap).
- __Continuous deployment__: Amp's "crate" system provides asset and SKU independence from your marketing and engineering release cycles.
- __Integrated security__: Full support for third-party providers and hardware-based authentication & signing (e.g., [Yubikey](https://yubico.com)).

- Seamless integration with **[Unity](https://unity.com)** and **[Unreal](https://unrealengine.com)** through Amp's embedded **[Go](https://golang.org)** native library that your 3D app invokes through convenient bindings.
- Seamless integration with **[Unity](https://unity.com)** and **[Unreal](https://unrealengine.com)** via an embedded **[Go](https://golang.org)** native library that your 3D app invokes through convenient bindings — available in the **amp.SDK**.

- A lightweight, stand-alone "headless" executable called `amp.host` that offers federated and decentralized service and storage.
- A lightweight, stand-alone "headless" native executable and shared library **amp.host.lib** with tags **amp.host** that offers federated and decentralized service and storage.

## What Does This Solve?

***Amp bridges native 3D apps to system, network, and infrastructure services, addressing key challenges:***

Traditional file and asset management systems are inadequate when there are hundreds or thousands of assets to organize, experience, or review. Teams often resort to makeshift solutions for collaboration and sharing which compromise efficiency and security.
Traditional file and asset management systems are inadequate for organizing, experiencing, or reviewing hundreds or thousands of assets. Teams often resort to makeshift solutions for collaboration and sharing, compromising efficiency and security.

Teams often collaborate over large file sets, yet they deploy using production systems that are entirely different from their development workflows. Many sharing and collaboration solutions exist, but they lack first-class spatial linking and native 3D content integration while suffering from inflexible, confining web or OS-based user experiences.
Teams often collaborate over large file sets but deploy using production systems entirely different from their development workflows. Many sharing and collaboration solutions exist, but they lack first-class spatial linking and native 3D content integration while suffering from inflexible, confining web or OS-based user experiences.

Meanwhile, _web-based_ 3D frameworks like [Three.js](https://threejs.org/) do not compare to _native_ Unreal and Unity experiences nor offer a path for real-world asset deployments. For example, 3D experiences require asset deployments often exceeding _many gigabytes_ and are impossible through a web browser. Worse, _web stacks pose many blockers that publishers have little or no ability to address, such as texturing features, performance potholes, or animation._
Meanwhile, _web-based_ 3D frameworks like [Three.js](https://threejs.org/) do not compare to hardware-native Unreal and Unity experiences nor offer a path for real-world asset deployments. For example, 3D experiences often require asset deployments exceeding many gigabytes, which are impossible through a web browser. Worse, _web stacks pose many blockers that publishers have little or no ability to address, such as texturing features, performance issues, or animation pain_.

***art.media.platform*** is a bridge and toolbox that allows 3D app developers to focus on their core value proposition. It offers rich support for persistent state, user interfaces, and content immersion, allowing apps to break free of web _and_ OS limitations. _Teams, leads, designers, artists, organizers, and ultimately consumers need better tools to richly and safely share assets._
***art.media.platform*** is a bridge and toolbox that allows 3D app developers to focus on their core value proposition. It offers rich support for persistent state, user interfaces, and content immersion, allowing apps to break free of web _and_ OS limitations. _Teams, organizers, artists, engineers, scientists, and ultimately consumers need better tools to richly and safely share assets_.

### Benefits
- __Content distribution__: Choose how to deploy your projects in a way that makes the most sense for your team and budget.
- __Flexibility__: Enjoy strategic flexibility on how you publish apps and distribute content.
- __Asset management__: Leverage Amp's content deployment system that allows you to deploy content updates without having to deploy new App builds.
- __Savings__: Save resources by not maintaining UIs and custom behavior for each OS, web browser, and form factor.
- __Cash flow__: Use Amp's payment processing module to monetize your work and receive payments through your Stripe or PayFlow account.

## A Next Generation

Previous [generations](https://github.com/plan-systems/plan-go/tags) of this work went into production in 2019 to become [PLAN 3D](https://plan-systems.org/plan-technology-components/). This [architecture](https://github.com/plan-systems/design-docs) trajectory, though ambitious, is being increasingly recognized as the next inevitable step in the evolution of 3D application building.
Previous [generations](https://github.com/plan-systems/plan-go/tags) of this work went into production in 2019 to become [PLAN 3D](https://plan-systems.org/plan-technology-components/). This [architecture](https://github.com/plan-systems/design-docs) trajectory, though ambitious, is increasingly recognized as the next inevitable step in the evolution of 3D application building.

In a world where AI-assisted exploits will only worsen, our [security model](https://github.com/plan-systems/design-docs/blob/master/PLAN-Proof-of-Correctness.md) prioritizes security and privacy. It uses a nested containers and offers "state-grade" protection — all while the client runtime delivers rich, native 3D experiences for business, organizations, and creatives.
In a world where AI-assisted exploits will only worsen, our [security model](https://github.com/plan-systems/design-docs/blob/master/PLAN-Proof-of-Correctness.md) prioritizes security and privacy. It uses nested containers and offers "state-grade" protection — all while the client runtime delivers rich, native 3D experiences for businesses, organizations, and creatives.

### Spatial Web

This framework offers in-app web browsing that pairs powerfully with spatial linking. Frameworks such as [Webview](https://developer.vuplex.com/webview/overview) are just another component in the Amp client, allowing your app to have an embedded web browser out of the box. This allows URLs and web experiences to be linked spatially or from multiple map locations.

### Geo-Spatial Linking

Geographic and spatial-centric applications such as GIS, CAD, and BIM, are everywhere in modern construction and real-time logistics. Amp's 3D client natively integrates [maps and locations](https://infinity-code.com/assets/online-maps), allowing you to unify location-based linking, spatially precise environments, and first-class 3D asset integration.
Geographic and spatial-centric applications such as GIS, CAD, and BIM are everywhere in modern construction and real-time logistics. Amp's 3D client natively integrates [maps and locations](https://infinity-code.com/assets/online-maps), allowing you to unify location-based linking, spatially precise environments, and first-class 3D asset integration.

### Extensibility

The less obvious value of Amp is its _extensibility_. The [`amp.App`](https://github.com/art-media-platform/amp.SDK/blob/main/amp/api.app.go) interface is flexible and unrestricted, allowing you to expose anything compatible with Go. This means any Go, C, C++, or any native static or dynamic module can be wrapped and push a 3D-native UX (with stock or custom assets).

### Human Accessibility

People with loss of sight, hearing, or motor skills rely on third-party peripherals and software to interact with the world. Amp integrates with most third-party input devices, such as bearing and range sensors for the visually impaired or control sticks for physical limitations.

### Tagging

Amp's [tag system](https://github.com/art-media-platform/amp.SDK/blob/main/stdlib/tag/api.tag.go) is phonetic, AI-friendly, search-friendly, and privacy-friendly. It offers powerful and flexible linking similar to how #hashtags and [wikis](https://www.wikipedia.org/) add value. We see this system as an excellent candidate to become an [IEEE](https://www.ieee.org/) standard for markup and hashing.

## Integration Overview

This repo is lightweight and dependency-free so it can be added to your project without consequence.
This repo is lightweight and dependency-free, so it can be added to your project without consequence.

At a high level:

Expand All @@ -63,7 +78,7 @@ At a high level:

| | |
| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [api.tag.go](https://github.com/art-media-platform/amp.SDK/blob/main/stdlib/tag/api.tag.go) | versatile tagging and hash scheme that is AI and search friendly |
| [api.task.go](https://github.com/art-media-platform/amp.SDK/blob/main/stdlib/task/api.task.go) | goroutine wrapper inspired by a conventional parent-child process model |
| [api.app.go](https://github.com/art-media-platform/amp.SDK/blob/main/amp/api.app.go) | defines how state is requested, pushed, and merged |
| [api.host.go](https://github.com/art-media-platform/amp.SDK/blob/main/amp/api.host.go) | types and interfaces that [`amp.Host`](https://github.com/art-media-platform/amp.SDK/blob/main/amp/api.host.go) implements |
| [api.tag.go](https://github.com/art-media-platform/amp.SDK/blob/main/stdlib/tag/api.tag.go) | Versatile tagging and hash scheme that is AI and search friendly |
| [api.task.go](https://github.com/art-media-platform/amp.SDK/blob/main/stdlib/task/api.task.go) | Goroutine wrapper inspired by a conventional parent-child process model |
| [api.app.go](https://github.com/art-media-platform/amp.SDK/blob/main/amp/api.app.go) | Defines how state is requested, pushed, and merged |
| [api.host.go](https://github.com/art-media-platform/amp.SDK/blob/main/amp/api.host.go) | Types and interfaces that [`amp.Host`](https://github.com/art-media-platform/amp.SDK/blob/main/amp/api.host.go) implements |

0 comments on commit 36d93a1

Please sign in to comment.