New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@pai-tech/spell

Package Overview
Dependencies
Maintainers
3
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pai-tech/spell

Spell.JS UI Framework

latest
Source
npmnpm
Version
1.1.36
Version published
Maintainers
3
Created
Source

Spell - Universal UI Framework for Distributed Applications

Spell is a universal user interface (UI) framework for distributed application development, such application requires control on several devices with full sync but each device provides a different user interface, Spell enables real-time translation from any command (spell-command) to platform specific command (like HTML, video file, sound, lights and more).

Spell.js

This package is an implementation of Spell engine for web applications (Javascript/HTML), the engine supports native HTML DOM manipulation engine (SpellUI) and real-time 3D engine for browsers based on THREE.JS and WebGL.

Overview

Distributed Application

A distributed application (d'app) is an application that runs on several devices concurrently, the "Hello World" example in this case would be a program (app) that when it will run it will display "Hello World" on two different computers screens:

     -------------         -------------
    | Hello World |       | Hello World |
     -------------         -------------
        |PC 1|                 |PC 2|
        ------                 ------
          /\                     /\
          ||                     ||
           =====[Application]=====

Since a single application cant work on multiple context sessions (especially because of the different O/S instances) the way to accomplish such task is to write a program, deploy it to the computers and synchronized the running apps.

Spell Real-Time Interpreter

Spell is a rear-time interpreter that provides an interface to control both output and input devices (like screens, lights, sounds, microphones, vr headset etc').

Generally Spell is a frontend framework but it can work seamlessly with PAI-Bots which are used to develop backend applications that manages security, data management, transactions and more.

Distributed Application (d'app) example:

  

                                          ::::> (frontend html/3d (WebGL based engines))
                                          :     
                                          :         :::>(wormhole - bots communication channel)   
                                          :         :
                                       -------      :     ---------
  [d'app] --> [ pc based * ] --------> |spell| <=-|WH|-=> |backend| :::>(node/python/java)
                    |                  -------            ---------
                    |                                         /\
                    |                                        |WH| :::> bot-to-bot communication for sync (P2P)
                    |                                         \/
                    |                  -------            ---------
              [ smart devices ** ] --> |spell| <=-|WH|-=> |backend|
                    |                  -------            ---------
                    |                     :
                    |                     :::>(iOS/Android native app/OpenGL based engines)
                    |             
                    |
                   ...

* PC based O/S: Windows, Linux & MacOS
** Smart devices O/S: iOS & Android

Spell Engine

Spell is a modular framework, meaning the basic engine can load external modules ad run them.

  [user] --> spell-command --> [spell]  
                                  |  
                                  |-----> [spell-module-ui]  
                                  |  
                                  |-----> [spell-module-3d]  
                                  |  
                                  |-----> [spell-module]  

The way to communicate with Spell engine is to send SpellCommand that will be analyzed and activate the appropriate module:

  [spell-command]
     - module (the name of the module to run the command)
     - created (date/timestamp of the command)
     - op (the operation (method/function) to run within the module)
        - params (list of parameters)
  optional:
     = on-frame (when to run the command)
     = on-event (event to run the command)

SpellCommand can be send in several formats:

  • CLI style

    module-name op-name on-frame:"frame-number" param1:"param1-value" param2:"param2-value" ...

  • JSON

    { "module":"module-name", "op":"op-name", "on-frame":"frame-number" params: { "param1":"param1-value", "param2":"param2-value", } }

Creating Spell Object

Spell objects can be created by calling the interpreter with create command, the parameters is the object meta json: { _id:"object-id", _type:"object-type", style:"html style", }

  • spell
    • object-manager (om)
    • event-manager (em)
    • spell-command
    • spell-module
    • spell-ui
      • spell-ui-engine
      • spell-ui-module
      • spell-ui-object
      • spell-core-objects
    • spell3d
      • spell3d-engine
      • spell3d-world
      • spell3d-object
        • spell-primitives
        • spell-gltf

Credits & References:

THREE.JS: threejs.org

Keywords

PAI

FAQs

Package last updated on 16 May 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts