Skip to content

Toolkit and directory tour

After downloading and extracting plugin-open-platform, use the directory diagram below to find the application and examples. Your first Studio session can run the prebuilt examples in the complete toolkit. Enter GlassSDK or PhoneSDK when you are ready to write your own plugin.

Have not downloaded the development kit yet? Get the source code first#

Find the toolkit root directory#

Open the downloaded or extracted folder in Windows File Explorer or macOS Finder. Find the level containing GlassSDK, PhoneSDK, Studio and build.py together. This is the toolkit root directory used throughout the documentation and the folder to select when importing a workspace in Studio.

A folder downloaded from GitHub may have a branch suffix, such as plugin-open-platform-main. You do not need to rename it; this guide refers to it as plugin-open-platform.

Directory structure
plugin-open-platform/
├── README.md
├── build.py
├── Studio/
│   ├── README.md
│   ├── windows/
│   │   └── gm-plugin-studio-desktop.exe
│   ├── macos/
│   │   └── MemoMind Plugin Studio_0.1.0_universal.dmg
│   └── linux/
├── GlassSDK/
│   ├── README.md
│   ├── build.py
│   ├── examples/
│   ├── include/
│   ├── docs/
│   └── build-host/
│       ├── tools/
│       └── .build/
└── PhoneSDK/
    ├── README.md
    ├── build.py
    ├── examples/
    ├── packages/
    ├── tools/
    ├── docs/
    └── dist/

What each item in the root directory does#

Identify these three toolkit directoriesThe complete plugin-open-platform workspace contains Studio, GlassSDK and PhoneSDK. Start with the Studio launcher to try examples, then enter the relevant SDK for development. The root build.py provides unified builds.MEMOMIND / TOOLKIT MAPIdentify these three toolkit directoriesplugin-open-platform / Complete workspaceStudio/Windows: Open EXEmacOS: Install DMGTry prebuiltexamplesGlassSDK/C APIs and examplesourceEdit glasses UI andinteractionsGenerate GMP andbuild sidecarsPhoneSDK/Web SDK and examplesourceEdit phone pages andinteractionsGenerate MMPKGKeep all three directories together. Import the toolkit root in Studio and run build.pythere when coding.
Identify these three toolkit directoriesThe complete plugin-open-platform workspace contains Studio, GlassSDK and PhoneSDK. Start with the Studio launcher to try examples, then enter the relevant SDK for development. The root build.py provides unified builds.MEMOMIND / TOOLKIT MAPIdentify these threetoolkit directoriesplugin-open-platform /Complete workspaceStudio/Windows: Open EXEmacOS: Install DMGTry prebuilt examplesGlassSDK/C APIs and example sourceEdit glasses UI andinteractionsGenerate GMP and buildsidecarsPhoneSDK/Web SDK and example sourceEdit phone pages andinteractionsGenerate MMPKGKeep all three directories together.Import the toolkit root in Studio andrun build.py there when coding.
Import the complete workspace first, then enter the SDK corresponding to what you want to change.
Directory or filePurposeWhen beginners need it
Studio/Desktop tools and platform runtime files for loading existing plugins, running simulations and generating installation ZIPs and QR codes.Choose the Studio executable or installer for your computer OS, launch it and import the workspace.
GlassSDK/APIs, examples, source documentation and build tools for glasses C plugins.Use this directory when you want to develop glasses UI, games or button interactions after trying the examples.
PhoneSDK/The SDK, examples, documentation and packaging tools for phone Web plugins.Use this directory when you want to build HTML/CSS/JavaScript pages that run inside the App.
README.mdAn overview of the complete toolkit and links to related documentation.Read this first to understand the toolkit or provide context to an AI assistant.
build.pyThe unified build entry point for both SDKs: glass selects the glasses side and web selects the phone side.Run it after changing source code. You do not need to run it before trying prebuilt examples.

Studio: what to open and which files to keep together#

LocationPurpose and operation
Studio/windows/gm-plugin-studio-desktop.exeThe Windows 10/11 x64 launcher: double-click to open it. Edge WebView2 Runtime is required. Keep the runtime files supplied with the release.
Studio/macos/A macOS Universal DMG, such as MemoMind Plugin Studio_0.1.0_universal.dmg. Install it in Applications, launch it and import the complete toolkit workspace. Both Intel and Apple silicon are supported.
Studio/linux/The Linux application release directory. If your download contains only placeholder files, obtain a release that includes the Linux executable.
Studio/README.mdPlatform requirements, workspace import, package import and common operations.
Studio/logs/ (may be present)Logs generated during execution, used for troubleshooting. This is not the plugin source directory.

GlassSDK: source code, APIs and GMP files#

LocationContentsHow to use it
GlassSDK/examples/Glasses C examples, such as game/breakout, game/2048, lvgl_ui and web_bridge.Select the corresponding name in Studio to try an example. Copy an example or create a new project when starting development.
GlassSDK/include/Public C headers. gm_plugin.h is the hardware API entry point; UI development also uses gm_plugin_lvgl_api.h.Read these headers while coding or looking up APIs, and include them in your project. Do not directly modify the SDK API definitions.
GlassSDK/docs/Documentation for the ABI, installation, graphics, capabilities and packaging.Read this to understand API details, diagnose compatibility issues or provide references to an AI assistant.
GlassSDK/build-host/tools/Tools for compilation, linking, GMP conversion and generation of source-review build sidecars.Called by build.py. Ordinary plugin development does not require modifying it.
GlassSDK/build-host/.build/Prebuilt plugins and local build outputs, such as game/breakout/breakout.gmp.Studio looks here for the corresponding GMP. Keep the matching review.json and review-source.enc sidecars with the complete example package.
GlassSDK/build.pyThe build entry point for the glasses SDK only.Use after adding or changing a C plugin. The root build.py glass command also invokes it.

PhoneSDK: Web pages, SDK and packages#

LocationContentsHow to use it
PhoneSDK/examples/Web example projects, usually containing manifest.json, HTML/JS/CSS, assets and vendor files. Some use frontend frameworks.Select an existing example in Studio. For development, copy the entire directory and preserve its assets and dependencies.
PhoneSDK/dist/Released or locally built .mmpkg runtime packages, and any included PhoneSDK DevKit ZIP.Import the phone component using its .mmpkg. Return to the source under examples when writing application code.
PhoneSDK/packages/web-sdk/Public JavaScript SDK, providing createGMPlugin() and gm.* API.Look up types and implementations here. The tutorial explains how to include the SDK in your page.
PhoneSDK/packages/bridge-contract/Shared contracts for Bridge methods, events, permissions and errors.Check the contract when integrating a capability. This directory is not itself a runnable example.
PhoneSDK/packages/device-renderer/、studio-runtime/Public display-rendering and Browser Studio simulation modules.Consult these when exploring the Web simulation environment in depth. You do not need to run these projects for your first example.
PhoneSDK/tools/Tools for generating and checking MMPKG, DevKit and SDK files, including the auxiliary Browser Studio.Used by build scripts. For your first run, use desktop Studio for your operating system.
PhoneSDK/docs/web-plugin/Documentation for Web plugin development, permissions, communication and tools.Read when building your own page or providing context to an AI assistant.
PhoneSDK/build.py、package.json、package-lock.jsonThe Web build entry point, tool dependencies and dependency lockfile.Build after modifying Web source. Follow the environment-setup tutorial and do not manually delete the lockfile.

Other directories you may see#

The root .build/ and PhoneSDK/.build/ directories store local incremental-build state. node_modules/ contains Node dependencies; __pycache__/ is the Python cache. They may appear after first using the tools and are not locations for creating new plugins.

.git/ and .gitignore belong to Git version control; LICENSE contains licensing information. GlassSDK/build-host/.build/ also holds runtime artifacts, so keep it when trying prebuilt examples. Do not delete a whole directory merely because its name starts with a dot or resembles a cache.

Example source, runtime files and QR ZIP packages#

What you seeCorresponding location or sourcePurpose
Breakout source codeGlassSDK/examples/game/breakout/Read or modify the game.
Breakout runtime fileGlassSDK/build-host/.build/game/breakout/breakout.gmpThe compiled code executed by the Studio simulator or the glasses.
Breakout build sidecarsbreakout.review.json and breakout.review-source.enc in the same directoryThese form the delivery package together with the GMP. Keep them when trying an example; you do not need to decrypt them yourself.
Web source and runtime packagePhoneSDK/examples/<project>/ and PhoneSDK/dist/*.mmpkgThe former is used for coding and the latter is loaded by Studio/App.
Application ZIP downloaded by scanningStudio generates it from the current phone/glasses selection. Its location appears in the QR-code area.The phone downloads it by scanning and uses it for device execution. It serves a different purpose from the complete repository ZIP downloaded from GitHub.

Where to start now#

Reference files in the toolkit#

  • README.md
  • Studio/README.md
  • GlassSDK/README.md
  • PhoneSDK/README.md
  • PhoneSDK/packages/README.md