# Showcase Demo sample project

Showcase Demo sample uses the VisageSDK API to implement a simple application which demonstrates:

- face tracking and facial features visualization.
- multiple face detection from a webcam.
- switching between face tracking and face detection.
- face recognition during face tracking.
- age, gender and emotion estimation during face tracking or face detection.

## Installing and running the project

The project must be installed on a web server in order to run (it can not run from a local disk). For a quick trial from Visage Technologies web server, click here and choose Showcase Demo.

To install the application on your own web server, upload folders lib and Samples to your web server. To run the application access the Samples/ShowcaseDemo/showcase.html page via a web browser.

The application must be licensed in order to function. Licensing is based on License Key Files. To obtain the License Key File:

1. Contact your Visage Technologies contact person in order to obtain a license key.
2. Copy the obtained license key file into your application folder (e.g. Samples/ShowcaseDemo).
3. Edit ShowcaseDemo/ShowcaseDemo.html, ShowcaseDemo/analysisWorker.js and ShowcaseDemo/recognitionWorker.js. Replace the "dev_html5.vlc" in variables licenseName and licenseURL at the bottom of the file with the name of your license key file.
4. NOTE: License Key File must be preloaded before registration calling VisageModule.FS_createPreloadedFile() function. An example of how this is done in the sample:

       VisageModule.FS_createPreloadedFile('/', licenseName, licenseURL, true, false, function(){ },  function(){ alert("Loading License Failed!") });

For further information please read licensing section of the documentation.

## Using the sample application

- Running the sample requires a recent browser.
- The SDK needs to download its data files before using the application (you can track progress via the progress bar).
- Allow the application to access your camera by choosing "Allow" in the browser's pop-up bar.
- Look straight at the camera. Tracking will start.
- Optional: Change the tracker configuration using the drop-down menu. For details regarding tracker configuration files, please refer to the VisageTracker Configuration Manual.
- Optional: Change the mode from the default, tracker mode to detect mode
- Optional: Turn face analysis ON/OFF
- Optional: Turn draw modes ON/OFF
- Optional: Turn face recognition:

- Face recognition starts if the MATCH FACES option is checked
- Adding new face descriptors to the gallery stops if the FREEZE GALLERY option is checked
- Current gallery is saved in browsers' IndexedDB when SAVE button click
- Saved gallery is loaded from browsers' IndexedDB when LOAD button click
- All face descriptors would be removed from the gallery when CLEAR button click

## Implementation overview

Showcase Demo is implemented in HTML and JavaScript using the VisageSDK API for face tracking, getUserMedia API to access the camera and native canvas methods for rendering. Face tracking results are updated using requestAnimationFrame API. Face recognition is implemented in Web Worker.

## Browser compatibility

Showcase Demo sample is tested on the recent browsers on Windows, Mac, Android and iPhone platforms. Results are represented in the following table (NOTE: Application is not adapted to mobile devices.).

| 96 | 91 | 81 | 88 | 14
| 95 | 93 | 64 | -- | --
| -- | -- | -- | -- | 14