Changelog
Everything that changed in Inspekt, dated, newest first. This page exists so that somebody deciding whether to depend on a one-person service can see whether it is alive, and how fast it moves.
What is on this page
Here: anything that changes what you can build, what you see rendered, what a request costs against your quota, or what a document you agreed to says. New parameters, new endpoints, render accuracy, catalog coverage, plans, and the account surface.
Not here: refactors, internal tooling, invisible deploys, and copy edits. Downtime goes straight to incident response, by email to your account contact under the SLA, while it is happening rather than written up here afterward.
Dates are the day the change reached the live service, in UTC.
Breaking changes. A change that can break a working integration gets its own entry, marked Breaking, and an email to the address on every account holding a key. It goes out at least 30 days before the change takes effect, and the old behaviour keeps working for at least 90 days from that email before it is removed. Adding a parameter, a response field or an endpoint is not breaking and ships without a window. This is a product commitment on top of Terms section 16, which governs changes to the agreement itself.
5 October 2026
Changed A burst of renders waits its turn.
When we are busy, higher plans are served first and every plan with stills queued still gets
turns. A miss that will take a while is answered at once, uncounted, and its still keeps its
place: a request from a server gets 202 Accepted with a few bytes of JSON,
Retry-After and x-cs2-queued, and a request for an image gets the
placeholder as a 200; the request that later gets the still is the one counted. A
caller with too many stills waiting, or a full queue, gets 503 with
code: "queue_full". See
The render queue.
28 September 2026
Fixed The agent holds the item in its hands. In the Agent view some guns hung beside the hand, as far as 23 cm off on the SCAR-20 and the M4A4, and the Shadow Daggers stood more than a metre away. Every gun now sits in the agent's right hand, within a millimetre of the glove, and every knife is held the way the game holds it.
26 September 2026
New Best patterns. Families opens on the seeds traders pay for, ranked across all 1,001 seeds of each skin: the most blue on a Case Hardened AK-47 and Karambit, the highest fade on a Karambit and Glock-18 Fade, fire and ice on a Karambit Marble Fade, and on a Karambit Doppler the Ruby, Sapphire and Black Pearl first, then the most black in Phase 1, pink in Phase 2 and blue in Phase 4. Each seed shows as a picture with the number it was ranked by, and a click opens it in the studio.
25 September 2026
Fixed Charms look like the game's. Every charm drew with its surface detail turned inward and without its roughness, metal and pearl finish, and Butane Buddy drew all white. All 81 charms now match Valve's pictures of them closely. Glitter charms sparkle, POP Art's lettering shifts colour, and Butane Buddy shows its metal lid, glass and lighter fluid. Moving a charm to another spot on the gun is instant, and a charm that is still loading says so.
New Charm seeds in pictures. The Render API,
share cards and the embed draw a charm at its seed: charm=60@75000 is Lil' Chirp at
seed 75000. No seed draws the same picture as before. Charms
in the Render API docs covers the charm list, spots, seeds and caching, and the
docs overview shows four charms beside Valve's pictures of them.
New Charms by themselves. The Render API draws
a charm alone, framed and lit like its inventory picture:
/api/still?charm=60@75000, with no id, is Lil' Chirp at seed 75000. It takes
a gun's backgrounds and sizes, the transparent cut-out included, and counts as one still.
Standalone charms has the parameters.
New Stickers and charms by picture. Stickers, charm and name tag sit on the left of the studio at all times. Add sticker and Add charm open a picker with Valve's own picture of every sticker and charm, a search box, and the tournament, capsule or collection each came from. A charm has a seed, which recolours 135 of the 143 charms the way the game does, and Move puts a dot on every spot of the gun the charm can hang from.
New Collections, cases and skin families. The catalog groups its collections into cases, map collections, operations, weekly drops and armory sets, each with its case or collection picture, and a case lists the knives or gloves it drops. Families gathers every skin that shares a finish name, so Fade, Doppler and Asiimov each open on all of theirs.
New A backdrop picker with moving previews. The backdrop button opens every map and plain background, each map shown as a short loop of its own video. StatTrak, seed and wear moved to the right, and wear has one button per grade, FN to BS. The view buttons are Hero, Front and Back.
24 September 2026
New Every CS2 pet chicken in 3D. The chicken pages show all 40 pet chicken colours from the 22 September game update, across the Catalana, Polish and Silkie breeds, and the chick, in the 3D viewer. Each page plays the bird's moves and 13 tricks, moves the dials along which pets of one colour differ, changes its body shape, and copies a link that opens the same bird.
New Chickens in the studio. The browse sidebar has a Chickens row with all 41 birds, below the weapons. A pick stands the chicken on the ground of the video backdrop, Dust II when the one on screen has no ground under the middle, and it turns with a drag and comes closer with the scroll wheel. Its moves are the game's own photo booth set, Sit, Panic, Wag, Dance, Jump, Kick and Fly, with Valve's icons, on the chicken pages as well. The chicken cards show the bird alone on the card, the way the gun icons do.
Fixed The chickens' feet stay planted. A foot that stood still in the game swung by up to 22 mm between animation keys, and the idle loop drew at 60 frames a second on faster screens. Each foot now stands on the ankle target the game's animation carries for it, and the bird draws at the screen's own rate.
Changed An inventory lookup that fails answers
one fixed sentence. The 502 from /api/inventory-lookup reads
"The lookup did not finish. Try again in a minute." with a
requestId, where it used to carry the text of whatever failed. See
the inventory API.
Fixed A token minted with ttl: 0
lasts one second. POST /api/token clamps ttl to 1 to 3600
seconds, so 0 and every value below 1 mint a 1-second token. A ttl of 0 used to mint
the 3600-second default. See Minting a token.
23 September 2026
Breaking /api/still waits for the
render by default. A request for a picture that is not cached waits while it renders, up
to 45 seconds, and gets the render. It used to get a placeholder at the default wear and pattern,
and waiting took wait=1, which still works. wait=0 answers at once with
the placeholder, as the old default did, and any other value of wait is refused with
400. When the render fails, cannot be queued or takes over 45 seconds, a request from
a server gets 502, 503 or 504, and a request for an image
gets the placeholder, uncounted.
Notice starts once the service is live. This change landed before anyone could be
affected by it. See Caching and the
placeholder.
Changed A browser keeps a still for 24
hours. A cached still is sent with cache-control: private, max-age=86400,
where it was public, max-age=31536000, immutable. A viewer who comes back after a
day is counted again, as with the embed, and a CDN or proxy between us and the viewer does not
keep the still. A renderer update reaches every browser within a day. See
Caching and the placeholder.
Fixed A placeholder sent because rendering was full
or down is free. It said X-CS2-Counted: 0 while it took one render from the
plan's monthly quota. See Quota.
22 September 2026
Breaking A key is required from other sites.
/embed, /api/still and /api/inventory-lookup refuse a request
with no key with 401 and key_required,
from another site's page and from a server alike. A keyless request used to be served as anonymous
traffic, at 30 requests per 10 seconds per address. inspekt.gg's own pages are served without a key,
and so are the Open Graph images those pages publish for link previews, which carry a
sig parameter.
Notice starts once the service is live. This change landed before anyone could be
affected by it, which is the one case the policy above does not have to cover. See
Keys and origins.
New An access refusal to an <img> is a
picture. /api/still answers a request for an image that it refuses with a webp
of the size the request asked for, the status and the code drawn on it, at the same status. Other
clients get the JSON as before. A browser drops a JSON body inside an <img>, so
the page used to show a broken image and no reason. See
Render API.
Changed A placeholder is the size you asked
for. When a skin's cut-out for the view is not cached yet, the placeholder is its catalog
thumbnail fitted into your w × h on near-black. It used to be the
512 × 512 thumbnail itself, and an <img> changed shape when the render
landed. A request that finds the server busy drawing gets a plain frame of that size. See
Caching and the placeholder.
New /api/still says whether a request
counted. Every response carries X-CS2-Counted: 1 when the
request counted against the plan's render quota and 0 when it did not, as on the
embed. See Quota and billing.
New Hobby and Pro have a 10-day free trial, with no
card. Each account gets one free trial, of Hobby or of any size of Pro, for 10 days from
the moment it starts the trial in the dashboard, with that plan's quotas,
burst limit and origin limit. When the trial ends, the key is refused with 402 and
plan_required until the account subscribes, and
an email to the account says so. Subscribing during a trial ends it and starts billing that day.
See Pricing and the 22 September version of the
agreement.
21 September 2026
Changed The plans are Hobby and Pro, and Pro comes in three sizes. Hobby is $20 a month, where it was $19. Pro · 500k loads at $100 is what Pro was at $99, and Pro · 5M loads at $500 is what Scale was at $499, each with the quotas, burst limit and origin limit it had. Pro · 1.5M loads is new at $200 a month: 1,500,000 embed loads, 375,000 renders and 150,000 inventory lookups a month, 600 requests per ten seconds and 20 registered origins. Each step up the ladder still costs less per unit than the one below it. See Pricing, Limits & SLA and the 21 September version of the agreement.
18 September 2026
Breaking A pattern seed stops at 1000, the game's
own range. seed on /api/still and on the
embed accepted 0 to 100000, and CS2 assigns a paint seed from 0 to 1000
when an item is made, so every value above 1000 named a pattern no item carries.
/api/still now refuses a seed above 1000 with 400 and
seed must be an integer 0..1000; the embed drops it for the kit default and names it
in x-cs2-dropped; an inspect link's seed is clamped to 1000.
Notice starts once the service is live. This change landed before anyone could be
affected by it, which is the one case the policy above does not have to cover. See
Render API and Embed parameters.
Breaking A sticker's centre stays inside the area
the game allows on that weapon. A st offset on /api/still and on
the embed accepted -1 to 1 on every weapon, a range that puts a sticker's
centre off the gun. Each weapon model carries the area its stickers' centres may occupy, the one
the game's sticker editor holds them to, and every surface now reads it.
/api/still refuses an offset that puts a centre outside it with 400,
naming the slot and the nearest offset inside; the embed drops the offset, sits the sticker at its
slot's default and names st slot 2 offset in x-cs2-dropped; an inspect
link's sticker is moved to the nearest point inside.
Notice starts once the service is live. This change landed before anyone could be
affected by it, which is the one case the policy above does not have to cover. See
Render API and Embed parameters.
Breaking A sticker is drawn at its slot's own
size. st took a seventh field, a scale from 0.1 to 5, and the game's sticker
editor moves and rotates a sticker and keeps its size. The field is ignored: /api/still
says so in x-cs2-notes, and the embed names st scale in
x-cs2-dropped. A URL that carries one is still served, at the slot's size. An inspect
link keeps the scale it records, because that is the game's own record of the item.
Notice starts once the service is live. This change landed before anyone could be
affected by it, which is the one case the policy above does not have to cover. See
Render API and Embed parameters.
Changed The legal documents have a new version, effective 19 September 2026. The wording is plainer across all five, and Privacy 2.6 now lists what an account record holds. What a plan costs, what it includes and what either of us owes stay the same. See the change history.
Changed A quota resets on the day of the month
its subscription started. Quotas reset at 00:00 UTC on the 1st, so a plan bought on the
15th got a fresh quota 16 days later. A billing period now starts at the moment the subscription
renews, and a month without that day uses its last day. Retry-After on a
quota_exceeded refusal and the dashboard's reset date follow it. See
Limits & SLA.
Changed The legal documents have a new version, effective 20 September 2026. Terms 5.1 and 5.2 count a quota per billing period, and the Privacy Policy lists the date a billing period is counted from. See the change history.
Fixed Foil and Gold stickers keep their colour. Every Foil and Gold sticker, and some Holo and Champion ones, 5,051 of the 11,145, drew as gray metal on a still and in the viewer. They now carry their print's colour. Every cached still was re-rendered.
Fixed bg=rarity paints the rarity the
game shows. 403 finishes, all on the AK-47, AWP, M4A4, M4A1-S, Desert Eagle, Glock-18,
P2000 and USP-S, stood one tier low. The AWP | Asiimov now stands on the Covert plate and the
AK-47 | Redline on the Classified one. The studio's rarity colours, sort and filter follow it, for
those finishes and for 538 knives.
Changed The embed says its 3D view is loading. While the still of the item is up, a "Loading 3D" label and a bar along its bottom edge show until the live view takes over.
17 September 2026
Breaking No still stands in a CS2 environment any
more, and bg defaults to steel. bg=scene put the
item in front of the captured environment that lit it, and it was what
/api/still drew when you named no background at all. Both are gone.
/api/still with no bg now draws the steel plate, and
bg=scene is refused with the usual 400 listing the values we do draw.
On the embed, bg=scene is dropped and named in
x-cs2-dropped; leaving bg off says what it used to say, and the frame
stands on the backdrop scene= named. scene= itself stays, and now takes
only the backdrops the viewer offers: a video loop (plate_), a captured panorama
(pano_) or a plain background (bg_). Anything else is dropped and
named in the same header. A shared link that carried scene= unfurls onto the
item's tier plate like every other link. Why: those environments are
256²-per-face cubemaps, so the picture behind the item was a 1024×512 capture
magnified about sevenfold by the lens, and it was the backdrop on every still requested without
a background. They keep the job they do well: lighting the video loops, the panoramas and every
plate. Notice starts once the service is live.
This change landed before anyone could be affected by it, which is the one case the policy above
does not have to cover. Every cached still is renamed by this change, so the first request for one after the
deploy renders it again. See
Backgrounds and
Scene, view and chrome.
16 September 2026
Breaking Four plans instead of seven, with every
plan paid from the first request. The ladder is Hobby at $19 a month, Pro at $99 and
Scale at $499, and Enterprise is now the pay-as-you-go plan: billed at the
overage rates from the first request, against a card set up by
email, with no monthly fee or included quota.
Pro’s fee fell from $199 and its quotas halved with it, to 500,000 embed loads, 125,000
renders and 50,000 inventory lookups a month on 10 registered origins. Hobby and Scale stayed
as they were. Starter and the separate Pay as you go plan were withdrawn: a key on Starter
resolves to Pro, which is more quota for what it was already paying, and a key on Pay as you go
resolves to Enterprise, which is the same terms under a different name. The Free plan was
withdrawn, and every account now needs a paid plan. An account between plans (a new
account, or one whose subscription has ended) keeps its key, its origins and its usage history,
and all three surfaces refuse every request with 402 and
plan_required until a plan is picked; no
request is counted or billed until then. Trying the product needs no account: the
sandbox and the demo grid are the trial. See
Pricing, Limits & SLA and
the 16 September version of the agreement.
Changed The Inspekt wordmark is no longer a plan
requirement. The corner badge was required on the lower tiers and removable on the higher
ones, enforced by your key’s plan rather than by ui. Every plan treats the
wordmark the same now: the rule came off the plan table, the pricing page and the Terms, and the
embed carries no plan-based rule about it. The badge itself stays, on every frame and
every plan, because it is the frame’s link into the full studio; with
ui=none hiding the name plate, it is the only thing in the frame a visitor can
click. Clicking it now
carries the whole item across: wear, seed, stickers and their placements, charm, StatTrak and name
tag. See The frame’s own chrome.
15 September 2026
Changed Bursts of uncached stills finish sooner. An uncached still takes about 0.9 seconds at the median for a skin we have not rendered recently, and about 0.4 seconds for one we have. The last picture in a burst of listing pages arrives sooner than it did. The API did not change: the same parameters name the same picture, cache hits were already immediate, and the per-key requests-per-second ceiling is unchanged. See Caching and the placeholder.
11 September 2026
New Your dashboard shows usage day by day. The usage card counted a whole month in three numbers, which is the unit your quota is measured in. The question behind an unexpected bill is which day. The card now draws a bar per day under the monthly tiles, split by embed loads, renders and lookups, with a month picker going back as far as your account does. Days that spent quota you had already used up are ruled in red, because those are the requests an overage line is made of. The bars are re-derived from the request log itself rather than from the monthly counter above them, so the chart and the totals cannot drift apart. Request logs are kept for 13 months (Privacy § 6); a month older than that still has its totals, and the page says so rather than drawing an empty chart.
Fixed Two weapons stopped rendering a prop that is not part of the gun. The R8 Revolver shipped with its speedloader inside the same mesh as the revolver, and the XM1014 with four spare shells. CS2 only shows those mid-reload; we play no animation, so they sat where the model's bind pose left them (the speedloader floating about a gun-length in front of the muzzle, the shells hanging under the receiver) in every render of those weapons since they were extracted. We stopped drawing them.
Changed R8 and XM1014 renders are framed
differently as a result. A shot is fitted to the geometry it draws, so the prop was
inside the box: the gun was pushed off centre and rendered smaller to keep the prop in shot.
Both now fill the frame the way every other weapon already did. If you have cached
/api/still URLs for either weapon, the parameters still name the same file. The
picture behind it is better, and re-fetching is the only way to see it. The catalog thumbnails
for all 74 affected finishes were re-baked.
10 September 2026
Changed A requests-per-second limit, per key.
Your monthly quota says what you bought; this says how fast you may spend it. One allowance per
key shared across /embed, /api/still and
/api/inventory-lookup, over a sliding ten-second window: 30 on Free, 150 on
Starter, 600 on Pro, uncapped on Enterprise. Over it you get 429 with
code: "rate_limited" and a Retry-After in seconds. Honour it and you
come back to a free slot, because the window slides forward each time. Only a request that
succeeds draws on your quota or your bill; a refusal is free. The ceiling keeps one
customer's catalogue crawl from slowing every other customer's listing pages. If a real workload needs more, the ceiling is a field on your account and
we can lift it without a deploy. See
Requests per second.
Fixed A sticker we cannot draw now says so.
Eight of the sixty-nine weapon bodies we render declare a sticker position that their own model
has no visible surface at (the Nova's first, the Tec-9's fourth, the M249's fourth, and two of
the R8's five, one of them the position on the cylinder). A sticker sent to one of those was
accepted, applied, and rendered invisible from every angle, with the response silent about it.
It now comes back in x-cs2-notes naming the slot, on every request rather than only
on inspect, and on a cached render too. The picture is unchanged: the position
comes from Valve's own markup data, and the model has no surface there for a sticker. In the
studio the slot is
marked not shown, and Add Sticker reaches for a position that works.
New Plain backgrounds.
/api/still gained bg: black, white,
charcoal, and three gradients (ember, steel and
violet). It changes only what is behind the item, so it composes with
view and with every item parameter; bg=scene was the same request as
leaving it off, so already-cached renders were unaffected. The colours skip tone mapping on the
way out: white lands on #ffffff and black on
#000000, so a still butts up against a page of the same colour with no seam. The
same values work on the
embed. See Backgrounds.
Changed The scene picker is video loops and
plain backgrounds. The studio used to offer every extracted CS2 vanity scene as a
backdrop. Those are 256²-per-face cubemaps (a 1024×512 picture magnified about
sevenfold by the viewer's lens), and next to a 1440p60 map loop or a 6016×3008 captured
panorama they read as mud. They came out of the picker, along with the fifteen flat still plates
the loops superseded. They still light the loops, which is the job they do best. Share links and
?scene= were unaffected: anything that loaded before kept loading.
New Square-on views of each face.
/api/still gained view=hero|front|back|top. front is the
flat, near-orthographic listing shot: muzzle-left, the way CS2's own inspect pose and Steam's
inventory icons print it. back is the other flank, top is straight
down. It changes the camera only; view=hero is the same request as
leaving it off, so already-cached renders are unaffected. The same values work on the
embed, where top is new too. See
Views.
New Charms, StatTrak counters and free sticker
placement render in stills. /api/still gained charm and
stattrak parameters, and st gained CS2's four free-placement fields
(slot:stickerId:wear:offsetX:offsetY:rotation:scale, each of the last four
optional). An inspect link now renders every one of them without being asked. The
same parameters work on the embed and on share links. See
Stickers and free placement.
New Stills say what they could not draw.
A render from an inspect link that had to leave something out comes back with an
x-cs2-notes header saying which. Two things can appear there: a charm whose model
we have not extracted yet, and a StatTrak knife, which the game etches rather than fitting with
the counter box a gun wears.
Changed st now refuses a slot the
game does not have. Slots are numbered 0 to 4. A slot of
5 or higher, or the same slot named twice, is a 400 with a message
saying which; it used to pass validation and then land the sticker on a position that was
already taken, so the render was wrong and the response did not say so. If you are 1-indexing your slots, this
is the change to look at.
9 September 2026
New Inspekt is live at inspekt.gg. The renderer that had been a personal project since July became a product with a name, a domain and a published price. The embed, the Render API and the Inventory API are all reachable with a key you issue yourself.
New Self-serve accounts, with no human in the loop. Sign in with an emailed link, get a key, register the origins it may be embedded on, rotate the key, and watch this month's usage against your quota, all from the dashboard. Sign-in links are single use and expire in 15 minutes.
New Paid plans you can start and change yourself. Checkout and the billing portal went live, and moving between tiers no longer goes through us. Plans, quotas and overage rates are on Pricing; what counts against a quota and what does not is on Limits & SLA.
New The documentation site. Quickstart, embed parameters, the postMessage API, both HTTP APIs, error codes, limits, framework snippets, and a sandbox that builds a working embed and hands you the code, with no account needed to use it.
New The customer agreement was published. Terms of Service, Privacy Policy, Acceptable Use, the SLA and the Refunds and Cancellation policy, all readable without an account so your counsel can review them before you sign up. The SLA describes the infrastructure in full. See Legal and the change history.
Changed Every skin has its own page, and its own share card. Per-skin URLs, a sitemap that lists them, and an unfurl image rendered from that specific skin rather than the site's generic card.
Changed Four prototype catalog entries removed. Four hand-built folders from the earliest days of the renderer were duplicates of skins that were already in the catalog. Removing them took the catalog from 2,139 entries to 2,135, which is the true count of distinct weapon and finish combinations. Every remaining entry still renders.
8 September 2026
New Catalog coverage reached 100%. All 2,135 distinct weapon and finish combinations render, and none of them is approximated. The number comes from a tool run against the catalog and the disk.
Fixed Eight skins were missing, and no error flagged it. M4A1-S Emerald Marbleized, all four Gamma Doppler phases, MP5-SD Case Hardened, Nova Fade and P90 Desert Warfare were missing from the catalog. All eight now render.
Fixed Ninety-four gloves were on disk, missing from the index. The catalog index was stale, and re-indexing alone fixed it.
Changed Bright finishes no longer crush to flat white. The tone curve used to clamp at the white point, which sent the whole top of the range to one flat value. A roll-off replaced the clamp, so a Printstream's slide and other bright finishes keep their detail in the highlights. Mid-tones are untouched.
Changed Bloom looks like the game's. The glow around bright finishes now matches the game's. The difference shows only on bright finishes in the brighter scenes.
Fixed Imported inventories put stickers in the wrong slots. Steam's description line lists sticker names in slot order rather than by slot number, so every empty slot shifted the rest of them left. Placement now comes from the item's own certificate, which carries real slot numbers, per-sticker scratch wear and free placement. A fifth sticker on a weapon with four positions renders on the grip, matching the game.
7 September 2026
New The embed became something you can put in
someone else's page. A dedicated /embed route, the
cs2embed.js loader, a two-way postMessage API for
driving the frame from the host page, and framing headers built from your key's registered
origins so the visitor's browser refuses a stolen key as well as our server.
New API keys, per-key origins, quotas and metering. Every embed load, render and inventory lookup is counted against the key that made it, with a documented refusal for an unknown key, an unregistered origin or an exhausted quota. The meter was built before there was any traffic worth billing, on purpose.
New The Render API accepts a Steam inspect
link. GET /api/still?inspect= resolves the link on our side to the same
config the explicit parameters produce, so both forms hash and cache identically.
Changed Renders got more than twenty times faster. Warm renders went from about 2.1 seconds to under a tenth of a second, and a caller's sustained throughput from about 28 stills a minute to several hundred.
5 September 2026
Changed Faster boot and real loading states. The viewer shows a poster and a real progress state instead of an empty canvas while assets stream in, and holds fewer resources while it is off screen.
3 September 2026
Changed Exposure and tone are closer to the game's. The change is largest in the four scenes that gained video backdrops.
New Video backdrops. Four environments got a recorded loop behind the item in place of a magnified cubemap. At the narrow inspect lens the cubemap read as a blur.
25 August 2026
New Steam inventory lookup. Give it a Steam ID, a vanity name or a profile URL and get that account's public CS2 items parsed into wear, seed, stickers, StatTrak and name tag. See Inventory API.
Changed Share stills stopped blocking. A request for an image that has not been rendered yet returns the catalog thumbnail immediately and renders the real one in the background, because social crawlers give up in a couple of seconds and cache whatever they got. The Render API docs explain how to work with that.
Changed The public surface was hardened. Every public parameter validated, concurrency capped, and everything that spawns a process moved out of reach of an anonymous request.
24 July 2026
New First-person inspect. The animated viewmodel, the arms, the weapon audio and the inspect animations, the way the item looks in the player's hands rather than on a turntable. Gloves included.
New Inspect links round-trip. Paste a link and the exact item loads; copy one back out of any configuration you have built.
13 July 2026
New Fourteen environments from the game. The vanity scenes CS2 uses to show an item off, selectable at runtime, so an item can be shown against a recognisable backdrop instead of one neutral studio.
12 July 2026
New Gloves, as a whole new class. Their own cloth shading and posed arms, which have little in common with a weapon finish.
New Knife finishes, including the Doppler phases. Phase and variant labels, and the seed data behind the gem and marble patterns people shop for.
New Composite-material finishes. The finishes that are built from a graph of materials rather than a single paint kit, composited live rather than baked.
11 July 2026
New Any catalogued skin renders on demand. A skin requested for the first time is rendered on that request, in seconds, instead of waiting for a batch run that covers everything up front.
Before this
The renderer started on 9 July 2026 and had CS2's classic finish styles, its own environment extracted from the game, stickers, charms, StatTrak and name tags within the first week. That is engineering history, of interest to us and beside the point for anyone deciding whether to depend on this service. The log above starts where there was something to integrate with.