Skip to content

Commit

Permalink
README updates
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcusLongmuir committed Dec 3, 2024
1 parent e10feea commit 6c5d906
Show file tree
Hide file tree
Showing 9 changed files with 31 additions and 35 deletions.
46 changes: 30 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,33 +58,47 @@ The Networked DOM server and MML client can then be used to allow multiple users
* **Portability**: MML documents can run in any modern web browser, making them easy to share and view.
* **Composability**: MML documents can be composed of multiple documents running on different servers, making it possible to create complex virtual world objects without having to provide all the compute power and technical capability on a single server.

# High-Level Package Architecture
# Packages

## Language (MML)
MML is a set of HTML elements and attributes that can be used to describe 3D objects and experiences.
MML is a set of HTML elements and attributes that can be used to describe 3D objects and experiences. The schema for these elements and attributes is defined in XML Schema Definition Language (XSD).

These elements and attributes can be used without networking. However, when a HTML document including MML tags is run on a server and exposed via a websocket multiple users can interact with the same instance of the document at the same time.
* [./packages/schema](./packages/schema) - `@mml-io/schema` - MML Schema in XML Schema Definition Language (XSD)
* [./packages/schema-validator](./packages/schema-validator) - `@mml-io/schema-validator` - A package for validating MML document using the MML Schema
* [./packages/mml-react-types](./packages/mml-react-types) - `@mml-io/mml-react-types` - TypeScript types for using MML components in React

* [./packages/mml-web](./packages/mml-web) - MML Library that handles MML elements and attributes
* [./packages/mml-web-client](./packages/mml-web-client) - Web MML Client (standalone script / example)
* [./packages/schema](./packages/schema) - MML Schema in XML Schema Definition Language (XSD)
* [./packages/schema-validator](./packages/schema-validator) - A package for validating MML document using the MML Schema
## Web Packages
MML can be used in a web browser to create 3D web experiences. Networking is optional and different libraries can be used to provide the 3D graphics.

* [./packages/mml-web](./packages/mml-web) - `@mml-io/mml-web` - MML Library that handles MML elements and attributes
* [./packages/mml-web-client](./packages/mml-web-client) - `@mml-io/mml-web-client` - Web MML Client (standalone script / example)
* [./packages/mml-web-threejs](./packages/mml-web-threejs) - `@mml-io/mml-web-threejs` - Graphics Adapter for MML to THREE.js
* [./packages/mml-web-threejs-standalone](./packages/mml-web-threejs-standalone) - `@mml-io/mml-web-threejs-standalone` - Three.js app for viewing MML documents in a web browser
* [./packages/mml-web-playcanvas](./packages/mml-web-playcanvas) - `@mml-io/mml-web-playcanvas` - Graphics Adapter for MML to PlayCanvas
* [./packages/mml-web-playcanvas-standalone](./packages/mml-web-playcanvas-standalone) - `@mml-io/mml-web-playcanvas-standalone` - PlayCanvas app for viewing MML documents in a web browser

## Networking (Networked DOM)
MML is based on a set of libraries (built expressly for MML) called "Networked DOM".

Networked DOM allows running a HTML document including script tags on a server and exposed via a websocket which allows multiple users to interact with the same instance of the document at the same time.

The server and network components necessary to support the multi-user mode are independent of the MML additions to HTML (and can be used with regular 2D HTML).

* Networked DOM
* [./packages/mml-web-runner](./packages/mml-web-runner) - Web Runner (for running MML documents in a web browser rather than a server)
* [./packages/networked-dom-server](./packages/networked-dom-server) - Networked DOM Library for running documents on a Node.JS server
* [./packages/networked-dom-web](./packages/networked-dom-web) - Web Networked DOM Library (WebSocket client for Networked DOM)
* [./packages/networked-dom-web-client](./packages/networked-dom-web-client) - Web Networked DOM Client (Standalone script / example)
* [./packages/networked-dom-web-runner](./packages/networked-dom-web-runner) - Web Networked DOM Runner (for running Networked DOM documents in a web browser rather than a server)
* [./packages/networked-dom-protocol](./packages/networked-dom-protocol) - Networked DOM WebSocket Protocol TypeScript Definition
* [./packages/observable-dom-common](./packages/observable-dom-common) - Observable DOM Common
* [./packages/observable-dom](./packages/observable-dom) - Observable DOM (JSDOM Execution) Library
* [./packages/networked-dom-document](./packages/networked-dom-document) - Networked DOM Document Library
* [./packages/mml-web-runner](./packages/mml-web-runner) - `@mml-io/mml-web-runner` - Web Runner (for running MML documents in a web browser rather than a server)
* [./packages/networked-dom-server](./packages/networked-dom-server) - `@mml-io/networked-dom-server` - Networked DOM Library for running documents on a Node.JS server
* [./packages/networked-dom-web](./packages/networked-dom-web) - `@mml-io/networked-dom-web` - Web Networked DOM Library (WebSocket client for Networked DOM)
* [./packages/networked-dom-web-client](./packages/networked-dom-web-client) - `@mml-io/networked-dom-web-client` - Web Networked DOM Client (Standalone script / example)
* [./packages/networked-dom-web-runner](./packages/networked-dom-web-runner) - `@mml-io/networked-dom-web-runner` - Web Networked DOM Runner (for running Networked DOM documents in a web browser rather than a server)
* [./packages/networked-dom-protocol](./packages/networked-dom-protocol) - `@mml-io/networked-dom-protocol` - Networked DOM WebSocket Protocol TypeScript Definition
* [./packages/observable-dom-common](./packages/observable-dom-common) - `@mml-io/observable-dom-common` - Observable DOM Common
* [./packages/observable-dom](./packages/observable-dom) - `@mml-io/observable-dom` - Observable DOM (JSDOM Execution) Library
* [./packages/networked-dom-document](./packages/networked-dom-document) - `@mml-io/networked-dom-document` - Networked DOM Document Library

## MML Viewer
MML Viewer is a standalone app that can be used to view MML documents in a web browser.

* [./packages/mml-viewer](./packages/mml-viewer) - `@mml-io/mml-viewer` - MML Viewer

# Usage of this repo

Expand Down
Binary file removed e2e-tests/src/assets/10-second-count.mp3
Binary file not shown.
Binary file removed e2e-tests/src/assets/bloom.mp3
Binary file not shown.
3 changes: 0 additions & 3 deletions e2e-tests/src/assets/blue-cube-at-500500500.glb

This file was deleted.

6 changes: 0 additions & 6 deletions e2e-tests/src/assets/embedded-viewer.html

This file was deleted.

3 changes: 0 additions & 3 deletions e2e-tests/src/assets/green-cube-at-555.glb

This file was deleted.

3 changes: 0 additions & 3 deletions e2e-tests/src/assets/red+green-cubes.glb

This file was deleted.

3 changes: 0 additions & 3 deletions e2e-tests/src/assets/red-cube-at-origin.glb

This file was deleted.

2 changes: 1 addition & 1 deletion packages/mml-web-threejs-standalone/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

[![npm version](https://img.shields.io/npm/v/@mml-io/mml-web-threejs-standalone.svg?style=flat)](https://www.npmjs.com/package/@mml-io/mml-web-threejs-standalone)

This package contains a class, `ModelLoader`, that supports loading
This package contains a class, `StandaloneThreeJSAdapter`, that is a ThreeJS-backed Graphics Adapter implementation for `@mml-io/mml-web` that creates:
* A ThreeJS App instance
* Orbit and drag-fly controls
* A factory for MML element graphics instances from the `@mml-io/mml-web-threejs` package.
Expand Down

0 comments on commit 6c5d906

Please sign in to comment.