=== Session creation === Url: Server url + "/server/config.php" Parameters as GET: * login: User's login in plain text. * password: User's password in plain text. * version: Client's version, for example 3.3.1762. * os: Computer's operating system, at the moment only "windows", "mac" and "linux" are supported. * os_version: Full version of os, for example "Windows 8.1". * bits: Architecture size, at the moment only "32bit" and "64bit" are supported. * cpu_family: CPU's family, on linux it can be found in /proc/cpuinfo via the attribute "cpu family". * cpu_model: CPU's model, on linux it can be found in /proc/cpuinfo via the attribute "model". * cpu_model_name: CPU's model in human readable format, on linux it can be found in /proc/cpuinfo via the attribute "model name". * cpu_cores: Number of cores (or thread) available. * ram: Memory available (in kilobytes). * ram_max: Maximum memory allowed for renderer (in kilobytes). * extras (optional): Extra data used for the configuration. * hostname (optional): Hostname of the machine, useful for distinguishing multiple machines with the same hardware configuration. Only used for display on the website. * ui (optional): User interface used by the client, useful for statistics * headless: Is the machine is running headless (Eevee is not compatible with headless) Answer in case of error: where X: * 100 => No version given. * 101 => Client is too old. * 102 => Authentication failure. * 103 => WebSession has expired. * 104 => Missing parameter. * something else => Unknown error. Answer with no error: A status of "0" to specify everything is okay, plus a list of URL paths for request, validation job, etc. A path is provided for error, job request, job validation, download needed file, heartbeat (keepmealive), logout, thumbnail of last frame rendered and how many credits have been earned so far. The maximum duration between two heartbeats in seconds is given by the attribute "max-period". === Session end === Url: use the request type "logout" from the configuration answer. No additional parameter is required. === Download renderer archive === Url: use the request type "download-archive" from the configuration answer. Parameter as GET or POST: * type: "binary" * job: ID of the job Answer: No error: the file On error: an 404 http code === Download job archive === Url: use the request type "download-archive" from the configuration answer. Parameter as GET or POST: * type: "job" * job: ID of the job Answer: No error: the file On error: an 404 http code === Job request === Url: use the request type "request-job" from the configuration answer. Parameter as GET or POST: * computemethod: What compute types are available on this machine. 0 for CPU or GPU, 1 for CPU only, 2 for GPU only. * cpu_cores: Number of cores currently available for rendering (optional). * gpu_type: GPU's type, usually CUDA or OPENCL * gpu_model: Model name of the GPU available for rendering * gpu_ram: GPU memory size (in bytes) Answer in case of error: where X: * 0 => No error * 200 => No job available, the client should wait few minutes before requesting a new job (typical value is 1 minute). * 201 => The client does not have rendering right. * 202 => Client's session is dead. Client should send another config request before requesting a new job. * 203 => Client's session has been disabled (usually because the client is sending broken frames). The client should alert the end user and logout. * 205 => No renderer is available for Client's hardware (pair of OS and architecture). For example, Blender is not available for MacOS 32bits. * 206 => Server is in maintenance mode, and is not issuing jobs (but it will keep the session alive). Try again in a few minutes. * 207 => Server is overloaded, and is not issuing jobs (but it will keep the session alive). Try again in a few minutes. * something else => unknown error Answer with no error: === Job validation === Url: use the url of job's node for 'validationurl'. Parameter as GET or POST: * job: Job ID * frame: Job's frame number * rendertime: Job's render time * extras: Job's extra data * file: Frame to validate as form-data post * memoryused (optional): Max memory used for the render * cores (optional): Number of cores used from the render Parameter as form-urlencoded: * file: the frame to send Answer in case of error: where X: * 0 => No error * 300 => Missing parameter in request. * 301 => Client generated a broken frame (usually an too old gpu who generated black frame). * 302 => File uploaded was not an image. * 303 => Failed to upload the image to the server. * 304 => Client's session is disabled or dead. * something else => unknown error === Session heartbeat === Url: use the request type "keepmealive" from the configuration answer. Parameter as GET or POST: * job: ID of the rendering job * frame: Frame number of the rendering job * extras: Extras data get on job request of the rendering job * rendertime: current render time (optional) * remainingtime: current remaining time to render the frame (optional) Answer: where X: * 0 => No error. * 400 => Stop this job (usually because the job has been cancelled). === Error send === Url: use the request type "error" from the configuration answer. Parameter as GET or POST: * job: job ID * frame: job's frame number * extras: job's extra data * rendertime (optional): job's frame number * memoryused (optional): max memory used for the render (in kilo bytes) Parameter as form-urlencoded: * file: the error log to send Answer: where X: * 0 => No error