Full

UX

Implement the full experience as seen in our web demo. All it takes is sending 6 requests to our API.

This experience allows you to input a starting emotional state and personalize the intervention based on the changing state of your users. The user’s emotional state is represented using an ‘arousal’ and ‘valence’ value that can be measured using LUCID’s self-assessment module.

Begin

FULL UX

Request

1:

POST

experiences

User selects the intention (or 'mode') of their music therapy experience

Request Body:

//URL
proxy.core.thelucidproject.ca/experiences

//Request Body
{
  "modeId":"calm",
  "contentLibraryId":"immersive",
  "desiredLength":6, // this length is recommended
  "participantId":"annonymous_user_id" // this can be any STRING
}
One

FULL UX

Request

2:

POST

measurements

User selects their current state using the self-assessment grid UI

Request Body:

//URL
proxy.core.thelucidproject.ca/measurementSessions/"initialMeasurementSessionID"/measurements

//Request Body
{
  "timestamp": "{{$isoTimestamp}}",    
  "instrumentType": "cli_cog_input",    
  "dataType": "cog",    
  "data": {"valence":"FLOAT","arousal":"FLOAT"}, 
  // "valence" is a continuous value between 0-1 on the x-axis of the grid
  //"arousal" is a continuous value between 0-1 on the y-axis
}
One

FULL UX

Request

3:

GET

audio

Playscreen with progress indicator (waiting for audio stream to load). Once audio stream has loaded, show audio player to allow pausing/playing and an 'end' function to return to the menu of your app

Request Body:

//URL
proxy.core.thelucidproject.ca/experiences/"_id"/audio  
// _id from experience request 
One

FULL UX

Request

4:

POST

measurements

User updates their current state using LUCID's self-assessment grid UI

Request Body:

//URL
proxy.core.thelucidproject.ca/measurementSessions/"runtimeMeasurementSessionID"/measurements

//Request Body
{    
  "timestamp": "{{$isoTimestamp}}",    
  "instrumentType": "cli_cog_input",    
  "dataType": "cog",    
  "data": {"valence":"FLOAT","arousal":"FLOAT"}, 
  // "valence" is a continuous value between 0-1 on the x-axis of the grid
  //"arousal" is a continuous value between 0-1 on the y-axis
}
One

FULL UX

Request

5:

POST

measurements

After user presses 'end', audio stops and they submit a final current state using LUCID's self-assessment grid UI

Request Body:

//URL
proxy.core.thelucidproject.ca/measurementSessions/"runtimeMeasurementSessionID"/measurements

//Request Body
{    
  "timestamp": "{{$isoTimestamp}}",    
  "instrumentType": "cli_cog_input",    
  "dataType": "cog",    
  "data": {"valence":"FLOAT","arousal":"FLOAT"}, 
  // "valence" is a continuous value between 0-1 on the x-axis of the grid
  //"arousal" is a continuous value between 0-1 on the y-axis
}
One

FULL UX

Request

6:

GET

results

After final measurement session, display results packet to your user

Request Body:

//URL
proxy.core.thelucidproject.ca/experiences/"_id"/results  
//_id from initial experience request
One
One