To use native PICTOFiT functionality like 2D or 3D try-on on the web, the compute server is required. It runs the algorithms for the different use cases and returns the results to the browser for displaying. Hosting of the compute server has to be done by the client. Reactive Reality doesn’t provide live instances. The following sections describe how to set it up and configure it.

This version of the Web SDK requires compute server version version 4.4.4 or higher

Pull the compute server

We will provide you with a deploy token which can be used to login to our public registry and pull images.

To authenticate to the Gitlab registry use the following command:

docker login -u <USERNAME> -p <TOKEN> registry.gitlab.com
CODE

You can then pull the latest compute server image from the registry:

docker pull registry.gitlab.com/reactivereality/public/registry/pictofitcore-web-computeserver:latest
CODE

General configuration options

After you successfully pulled the image from the registry you will not be able to run it. There are a few environment variables that can be set when running the server.

Name

Default value

Description

PORT

8000

Defines the port on which the server will be running inside the container. Make sure this port lines up with the exposed ports of the container.

CACHE_SIZE_LIMIT_BYTES

1073741824 (equals 1GB)

Defines the maximum cache limit in bytes that should be stored on the compute server.

Further options are available to configure your chosen Authentication method.

Caching

As of version v1.6.0 content behind provided asset urls is cached into a local caching storage. Before downloading an asset, the compute server will check the Content-MD5 header of the resource url and compare it against the local cache. If the checksum matches if one of the cached ones, it will reuse this file and just otherwise download it.

If no Content-MD5 is present, the url (instead of the checksum) will be cached for 24 hours. As a consequence the compute server will not notice any changes, and also not re-download to the file behind the url it during this timeframe.

Health-check

As of version v4.5.0 a health check endpoint is available under /health. Use this endpoint to validate wether or not an instance needs to be restarted.

Run the compute server

Example with docker-compose.yml:

version: "3"
services:
  websdkcomputeserver:
    container_name: pictofit-computeserver
    image: registry.gitlab.com/reactivereality/public/registry/pictofitcore-web-computeserver:latest
    ports:
      - "${PORT}:${PORT}"
    env_file: .env
    restart: always
CODE

The .env file:

PORT=8000
AUTH_METHOD="public"
MEMORY_IN_MEGABYTES=1024
CODE

Boot the server up with: docker-compose up [--detach]

Usage with the SDK

The Pictofit Web SDK features a ComputeServer class that is dedicated to wrap the communication to all the endpoints of the Compute Server. This class is widely used in other higher level components like the provided IVirtualDressingRoom implementations.

Swagger

It might not always be possible to host the compute server at root level. Starting with version v4.3.3 you can set a custom base path by providing the API_BASEPATH environment variable.

The following sample assumes that you want to host the compute server under <URL>/rr/cs/. All you need to do now is to add the the following line to the .env file from above:

API_BASEPATH=/rr/cs/
CODE

This will make the swagger documentation available under <URL>/rr/cs/swagger/