Car Image API

Clienți · Ateliere de colantare, folii pentru geamuri și PPF

Cum previzualizați colantarea, folia pentru geamuri sau PPF-ul pe mașina exactă a clientului

Cum folosesc atelierele de colantare, folie de geamuri și protecție a vopselei randările de bază albe, culorile hex exacte și modelele 3D pentru a arăta lucrarea pe mașina clientului înainte de începerea lucrului.

Problema: clientul vrea să vadă rezultatul pe propria mașină

Un atelier de colantare, unul de folii pentru geamuri sau un instalator de folie de protecție a vopselei vinde ceva ce clientul nu poate vedea până când lucrarea nu este gata. Portofoliul arată mașinile altor oameni. Mostra producătorului arată materialul pe un carton plat. Ceea ce încheie vânzarea este propriul M4 din 2021 al clientului, exact în griul satinat asupra căruia ezită, iar o fotografie a acestuia nu există, pentru că lucrarea nu a avut loc încă.

Același gol apare și mai departe în lanț. Un operator de tăiere a foliei vrea un contur curat al barei de protecție față pentru un an-model pe care biblioteca de șabloane nu îl acoperă încă. Un configurator vrea o vizualizare rotativă a mașinii într-o culoare de bază peste care designerul poate picta. Toți trei au nevoie de același lucru: o imagine de studio a unei anumite mărci, a unui anumit model și an, într-o vopsea aleasă de ei, fără nimic în spate.

Trei moduri în care atelierele folosesc randările

Integrările pentru colantare, folii fumurii și folii de protecție care rulează astăzi pe API fac trei lucruri, uneori pe toate trei simultan:

  • O bază albă, apoi materialul deasupra. Randați anul de model al clientului în color=white pe un PNG transparent și suprapuneți în browser folia, folia pentru geamuri sau designul imprimat. Canalul alfa al PNG-ului reprezintă conturul mașinii.
  • O culoare după cod hex. Pentru o colantare monocromă sau o revopsire, renunțați la compoziție: color=686c70 returnează mașina deja în acea culoare, cu geamurile și jantele neatinse, ca o singură imagine de vehicul, la fel ca o presetare.
  • Un model 3D pentru platforma rotativă. POST /api/v1/3d generează un GLB, un USDZ și un FBX texturate ale vehiculului în culoarea aleasă, o singură dată per vehicul și culoare. Un model publicat vine cu un cod de încorporare de două linii pentru pagina de ofertă și un USDZ pe care clientul îl poate deschide în AR pe un iPhone.

Un atelier își rulează loturile prin conectorul ChatGPT în loc de cod, un al patrulea tipar care merită propria secțiune mai jos.

O randare albă de bază, cu materialul aplicat deasupra

Un colant înlocuiește vopseaua, așa că porniți de la cât mai puțină vopsea. color=white oferă cea mai luminoasă caroserie neutră, cu umbrele de studio intacte; vederea laterală dreaptă side arată cea mai mare parte din flanc și cea mai mică distorsiune de perspectivă, exact ce îi trebuie unei previzualizări de material. Cereți png (sau webp) pentru ca un canal alfa să se păstreze și cea mai mare dimensiune, 1024, pentru ca previzualizarea să poată fi mărită.

Randarea de bază și aceeași mașină într-o vopsea hex
# the customer's exact model year, in white: the base every material goes on top of
curl --fail-with-body -H "Authorization: Bearer $CAR_IMAGE_API_KEY" \
  "https://carimage.dev/api/v1/images/car?vehicle=veh_0ta0ejj0qad2w&view=side&color=white&w=1024&format=png" \
  -o m4-side-white.png

# a solid-color wrap or a factory paint, by hex: the API recolors the paint and leaves glass, trim and wheels alone
curl --fail-with-body -H "Authorization: Bearer $CAR_IMAGE_API_KEY" \
  "https://carimage.dev/api/v1/images/car?vehicle=veh_0ta0ejj0qad2w&view=side&color=686c70&w=1024&format=png" \
  -o m4-side-nardo.png

Pentru un material texturat, compunerea înseamnă câteva linii de canvas: randarea este desenată o dată ca mască, materialul este pictat doar acolo unde se află mașina, iar randarea este desenată din nou în modul multiply, astfel încât umbrele și reflexiile ei să reapară prin material.

Aplicarea unui material peste bază, în browser
// A textured material (carbon, chrome, a printed design) goes on in the browser.
// The white render is the mask: paint the material only where the car is, then let
// the render's own shading through.
const car = await loadImage(whiteBaseUrl); // transparent PNG from the API
const ctx = canvas.getContext("2d");
canvas.width = car.width;
canvas.height = car.height;

ctx.drawImage(car, 0, 0);
ctx.globalCompositeOperation = "source-atop"; // keep the car's alpha
ctx.fillStyle = ctx.createPattern(materialSwatch, "repeat");
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.globalCompositeOperation = "multiply"; // shading, reflections and panel lines come back
ctx.drawImage(car, 0, 0);
// The whole silhouette is covered, glass and wheels included: the API ships the car's
// alpha, not per-panel masks. Good enough for a quote; a solid color should use color=<hex> instead.

Potrivirea unei vopsele sau a culorii unei folii după codul hex

De când vopselele au devenit o recolorare a unei singure randări neutre, color acceptă orice cod hex de șase cifre pe lângă cele 15 nume de presetări: color=686c70 simplu într-un URL, "color": "#686c70" în JSON. Căutați mostra producătorului sau codul de vopsea din fabrică al clientului și transmiteți-l. Recolorarea se aplică doar vopselei, așa că geamurile, farurile, ornamentele și jantele rămân neschimbate, iar aceasta este exact diferența dintre o previzualizare de folie și o fotografie colorată. Fiecare hex înseamnă încă o variantă în cache și o imagine de vehicul din luna respectivă, deci o paletă de douăzeci de variante pentru o mașină într-o vedere înseamnă douăzeci de imagini de vehicule.

Un model 3D pentru platforma rotativă și AR

Când pagina de ofertă are nevoie ca mașina să se rotească, comandați un model. POST /api/v1/3d primește id-ul vehiculului și o culoare, taxează 100 de credite și generează un GLB texturat, o versiune a acestuia pentru browser, un USDZ și un FBX, plus o miniatură. Primul model al unui vehicul durează 10–20 minutes; fiecare culoare suplimentară a acelui vehicul retexturează același mesh în 1–2 minutes. Comanda unui vehicul și a unei culori pe care le dețineți deja este gratuită (billing.already_owned: true), astfel încât un atelier își poate baza configuratorul pe aceeași bază albă pentru fiecare lucrare.

Comandați-l în alb și publicați-l imediat
curl -X POST https://carimage.dev/api/v1/3d \
  -H "Authorization: Bearer $CAR_IMAGE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: wrap-quote-4471" \
  -d '{"vehicle": "veh_0ta0ejj0qad2w", "color": "white", "publish": true}'
202 Accepted (prescurtat)
{
  "data": {
    "id": "8c1d6b8e-2b4a-4f6e-9a2e-1f3c5d7e9b01",
    "object": "3d_model",
    "status": "queued",
    "progress": 0,
    "vehicle": {
      "id": "veh_0ta0ejj0qad2w",
      "make": "bmw",
      "model": "m4",
      "year": 2021
    },
    "color": "white",
    "files": null,
    "public": {
      "id": "m3d_…",
      "url": "https://carimage.dev/api/v1/3d/public/m3d_…",
      "files": null,
      "embed": {
        "script": "https://carimage.dev/embed/3d.js",
        "html": "<script src=\"https://carimage.dev/embed/3d.js\" async></script>\n<car-3d model=\"m3d_…\"></car-3d>"
      }
    }
  },
  "billing": {
    "charged_on": "creation",
    "credits_charged": 100,
    "credits_remaining": 24900,
    "already_owned": false
  },
  "request_id": "req_01j9y…"
}

publish: true oferă modelului URL-uri fără cheie pe CDN-ul nostru și un embed chiar înainte să fie gata; elementul afișează progresul până sosesc fișierele. Setați view la oricare dintre cele nouă unghiuri de cameră pentru cadrul inițial, spin pentru o platformă rotativă, backdrop pentru podeaua de studio și ar pentru a oferi fișierul USDZ pe iPhone și GLB pe Android prin vizualizatorul AR propriu al browserului. Fișierul FBX este pentru designer: deschideți-l în Blender sau într-un instrument de design pentru folii auto, aplicați grafica pe UV-uri, iar clientul își vede propriul design pe propria mașină.

Codul de încorporare de pe pagina de ofertă
<script src="https://carimage.dev/embed/3d.js" async></script>
<car-3d model="m3d_…" view="front-3-4" spin backdrop="studio" ar alt="2021 BMW M4 in white"></car-3d>

Rularea unui lot de procesare din ChatGPT sau Claude

Nu orice atelier are un dezvoltator, iar una dintre cele mai active integrări ale API-ului este un operator care îi cere randări unui asistent. Adăugați https://carimage.dev/api/mcp ca conector (ChatGPT și Claude se autentifică prin OAuth; utilizatorul aprobă permisiunile pe ecran), iar asistentul primește aceleași instrumente pe care le-ar folosi un program: resolve_vehicle pentru a transforma „Audi S3 cabriolet 2014, gri, lateral” în parametri exacți, get_car_image pentru o randare, create_car_image_urls pentru până la cincizeci de URL-uri semnate într-un singur apel și create_3d_model pentru vizualizarea rotativă 360°.

Două lucruri asigură reușita unui lot generat prin intermediul unui asistent:

  • Transmiteți un idempotency_key pentru fiecare lot. Asistenții reîncearcă. Cu o cheie, un create_car_image_urls reîncercat redă primul rezultat (idempotent_replayed: true) și nu facturează nimic.
  • Țineți cont de bugetul de randare, nu doar de limita de rată. Vederile de vehicule pe care nu le-a mai cerut nimeni trebuie mai întâi pregătite, iar pregătirea consumă din cota zilnică de capacitate de pregătire a contului (10% pe Pro). O serie de câteva sute de mașini noi în trei vederi o poate atinge; instrumentul răspunde atunci cu un timp de reîncercare și reset_at, nu se taxează nimic, iar imaginile din cache continuă să fie livrate. Împărțiți seria pe o seară sau două ori treceți la Business pentru o cotă mai mare.

Configurarea pentru fiecare client și lista completă de instrumente se găsesc pe pagina MCP.

CLI, SDK și MCP

npx @meterapp/car-image
# the white base and a hex paint, straight to files
npx @meterapp/car-image get --vehicle veh_0ta0ejj0qad2w --view side --color white --width 1024 --out m4-side-white.png
npx @meterapp/car-image get --vehicle veh_0ta0ejj0qad2w --view side --color 686c70 --width 1024 --out m4-side-nardo.png

# the 3D model: published at once, polled until ready, every file downloaded
npx @meterapp/car-image 3d create --vehicle veh_0ta0ejj0qad2w --color white --publish --wait --out ./models
Cu SDK-ul TypeScript
import { CarImageClient } from "@meterapp/car-image-sdk";

const client = new CarImageClient({ apiKey: process.env.CAR_IMAGE_API_KEY });

// 100 credits the first time. Ordering the same vehicle in the same color again
// answers billing.already_owned: true and charges nothing.
const { data: model } = await client.create3dModel({ vehicle: "veh_0ta0ejj0qad2w" }, { color: "white", publish: true });
const ready = await client.wait3dModel(model.id, { onProgress: (m) => console.log(m.stage, m.progress) });

// FBX for the designer's tool of choice, USDZ for the customer's iPhone, glb_web for the page.
const fbx = await client.download3dModel(ready.id, "fbx");
const embedHtml = ready.public?.embed.html;
  • MCP: get_car_image și create_car_image_urls în setul de instrumente de bază, create_3d_model, get_3d_model și publish_3d_model cu ?toolset=all; fiecare instrument de imagine primește vehicle și o culoare hex în color.
  • Documentația 3D acoperă webhookurile (un singur POST semnat când un model este finalizat), dimensiunile fișierelor și fiecare atribut de încorporare; secțiunea Culori de pe pagina Imagini acoperă regulile pentru vopsea.

Întrebări frecvente

O culoare hex personalizată costă mai mult decât una predefinită?
Nu. Fiecare culoare este o recolorare a unei singure vederi pregătite a acelui vehicul, așa că o culoare predefinită, un cod de fabrică pe care l-ați căutat și o mostră a unui producător de folii contează fiecare ca o singură imagine de vehicul. Un cod hex identic cu mostra unei culori predefinite este chiar acea culoare predefinită.
Este randarea suficient de precisă pentru a tăia folia după ea?
Nu. Randările sunt materiale vizuale de studio ale mărcii, modelului și anului, nu date CAD sau fotografii OEM: catalogul nu face distincție între versiunile de echipare, iar liniile panourilor pot diferi între două vederi ale aceleiași mașini. Folosiți-le pentru a-i arăta clientului mașina sa și pentru a oferta lucrarea; decupați tiparele după un șablon sau după vehiculul în sine.
Putem obține mașina fără vopsea sau doar geamurile?
Cel mai apropiat lucru de un model gol este color=white pe un PNG transparent, iar canalul alfa al PNG-ului reprezintă silueta mașinii. API-ul nu oferă măști per panou sau pentru geamuri. Pentru un colant într-o singură culoare, lăsați color=<hex> să facă treaba: recolorează vopseaua și lasă geamurile, ornamentele și jantele neschimbate.
Ce vederi ar trebui folosite într-o ofertă pentru folie de geamuri sau PPF?
Vederile drepte: side (sau side-right) pentru geamurile ușilor și flancuri, front pentru banda de pe parbriz, capotă și bară, rear pentru lunetă. Vederile din trei sferturi sunt cele la care clienții reacționează, așa că folosiți front-3-4 pentru imaginea principală și vederile drepte lângă pozițiile din ofertă.
Modelul 3D ne aparține?
Este licențiat, la fel ca randările: plătit o singură dată per vehicul și culoare pentru fiecare cont, gratuit la comenzile ulterioare, al dumneavoastră pentru a-l folosi în produsul dumneavoastră și a-l păstra pe serverele proprii, inclusiv după încheierea planului. Fiecare culoare suplimentară a unui vehicul pe care îl dețineți deja aplică o nouă textură pe același mesh, iar publicarea oferă modelului URL-uri fără cheie și un embed, fără niciun cost.