Manifold is an interactive interface from which end users can install and manage their picos' rule-sets.

Note: Manifold is currently under heavy development and is subject to change. This is meant to be a guide for developers.

Installing Manifold, preparing the root pico for authentication 

If you are completely new to the Pico Engine, start here: Pico Engine Quickstart.

  1. Start an instance of the pico engine from a command line with the initial host set to "http://localhost:8080", or whatever host you are developing on. This is an example command command: "PICO_ENGINE_HOST=http://localhost:8080 pico-engine". If you are using a different port, remember to change the host accordingly and set the port with "PORT=<your port number>" (Ensure that your engine is of version 0.45.2 or higher).
  2. Clone or download the following Github Repository: Manifold Repository.
  3. Enter the directory downloaded in step 2 on your local machine from command line and type "npm install" this will initiate an installation of the required dependencies. Once this process finishes enter "npm start" this should start an instance of the Manifold. (You will have 2 separate instances running now, one for manifold, the other for the pico engine). By default this starts on localhost port 3000.
  4. In your browser, open the page for your pico engine (by default: localhost:8080) and install the following rule-sets on the root pico: (they should all be visible under the Rulesets tab in the Available Rulesets dropdown-menu)

The io.picolabs.account_management ruleset will automatically install the io.picolabs.owner_authentication ruleset. When installed, the pico engine page will refresh requiring you to login before doing anything else. The default root pico id and password are: "root" and "toor" respectively. If you want to add your own account, enter the Testing tab of your root pico, click the checkbox button for  "io.picolabs.account_management" enter a new name and password and click the "owner/creation" button. To access your new account, logout from the top right of your browser window and enter the recently created credentials.)


     5. Register the following rulesets with your engine (but do not install them on your pico yet):

The rulesets can be found in the folder "Manifold_krl" at the root of the Manifold project you cloned in step 2.

Registering with the OAUTH server

  1. Enter your root pico's testing tab (not the owner that you created, if you chose to do that), find the io.picolabs.oauth_server, click its checkbox to open up a form submission which will request the following:
  2.  Press the oauth/register button
  3. In the same area of the testing tab, click the blue "clients" link. This will reveal the information recently submitted in addition to a randomly generated client_secret as seen below. Copy this specific string to clipboard (the string circled in red).

Logging into Manifold

In a separate tab, open the manifold page (by default address: localhost:3000/#/login)



  1.  Enter these fields:
  2.  Authorize, this should redirect you to a login page on your pico engine requesting an "Owner ID". This can be the default ("root"/"toor") or the owner that you created earlier. This is the same as logging into a website.
  3. Upon submitting you should see the page refresh with an approve/deny page and your client_img, like the following: Click approve.
  4. You should be redirected to a dashboard with several graphs. These are all boilerplate. 

Updating Manifold

 You can now enter your text editor and change the local Manifold files, the program will automatically detect these changes and display them. 

To confirm that it has been connected to your pico properly, go to your pico engine. Whatever user you authorized with (whether it was root or an owner that you created) should now have a child named Manifold. In the root pico's rulesets, "io.picolabs.manifold_owner" should be installed. (Appear in the list of Pico Rulesets).

Related articles

Related articles appear here based on the labels you select. Click to edit the macro and add or change labels.