Backend setup

Escher Mesh Studio does not host the model. It talks to a small job server that you run next to the GenerativeEscherMeshes checkout on a CUDA machine.

Base URL of your job server, without a trailing path.

Sent as Authorization: Bearer … from this app's server, never from the browser. Stored only in this browser.

Running the backend

The server code lives in this project under backend/. Full instructions are in backend/README.md. Short version:

  1. 1. On a CUDA 11.8 machine, clone github.com/ThibaultGROUEIX/GenerativeEscherMeshes and install it with the repo's install.sh plus nvdiffrast.
  2. 2. Copy backend/server.py into that checkout and pip install fastapi uvicorn.
  3. 3. Export a key and start it: ESCHER_API_KEY=… uvicorn server:app --host 0.0.0.0 --port 8000.
  4. 4. Expose it over HTTPS (Cloudflare Tunnel, ngrok, or your own reverse proxy) and paste that URL above.

API contract this app expects

GET  /health                          -> { ok, version, gpu, model, tiling_types[], active_jobs }
POST /jobs      { prompt, tiling_type } -> { job_id }
GET  /jobs/{id}                       -> { job_id, status, step, total_steps,
                                           prompt, tiling_type, log_tail,
                                           preview, artifacts[{name,kind}], error }
GET  /jobs/{id}/artifacts/{name}      -> raw image / video / pkl bytes
POST /jobs/{id}/cancel                -> { status }

All routes require:  Authorization: Bearer $ESCHER_API_KEY