# cheap3dprinting.com > Affordable on-demand custom 3D printing service based in the United States. Customers upload an STL or OBJ model (or generate one with an AI designer), choose a filament from live inventory, see an instant per-part quote, pay via Stripe, and receive the printed part shipped by USPS. ## What we offer - Custom FDM 3D printing of user-supplied models (STL, OBJ; multi-color OBJ via .mtl + textures). - An AI designer that turns natural-language descriptions into printable 3D models, with iterative chat-style refinement. - A public gallery of ready-to-print models, free to print and browsable without an account. - Live, transparent pricing: filament grams used times spool price-per-gram, plus print time times machine hourly rate. No quote requests, no minimums. - US-only shipping via USPS, with shipping cost computed live at checkout. ## Key pages - [Home](https://cheap3dprinting.com/): Overview, hero, featured carousel of gallery models. - [Gallery](https://cheap3dprinting.com/Gallery): Browsable catalogue of ready-to-print models. See "Gallery" below. - [Gallery catalog](https://cheap3dprinting.com/Gallery/Catalog): Complete machine-readable index of every gallery model. - [How it works](https://cheap3dprinting.com/how-it-works): Step-by-step ordering flow from upload through ship. - [Materials](https://cheap3dprinting.com/materials): Filament families currently stocked (PLA, PETG, etc.) and what each is good for. - [Pricing](https://cheap3dprinting.com/pricing): Pricing formula, supports surcharge, shipping, AI-credit packs. - [FAQ](https://cheap3dprinting.com/faq): File formats, max upload size, multi-color, turnaround, payment, refunds. - [About](https://cheap3dprinting.com/about): Who runs the studio and how to contact us. - [Privacy](https://cheap3dprinting.com/Home/Privacy): Privacy policy. ## Gallery A growing public library of ready-to-print models (new entries are added continuously). No account is needed to browse it. - Index: `/Gallery`. Filterable and searchable via query string, all combinable: - `?cat=` — curated category (e.g. `robotics`, `electronics`, `tool`, `kitchen`, `home`, `desk`, `garage`, `organizer`, `bathroom`, `mechanism`, `outdoor`). - `?tag=` — a single free-form tag. - `?q=` — full-text search over titles, descriptions, and tags. - `?sort=newest` (default) and `?page=` for paging. - Every model has a stable, canonical URL of the form `/Gallery?q=` — e.g. `https://cheap3dprinting.com/Gallery?q=Hex%20Bit%20Holder`. These are the URLs listed in `/sitemap.xml`. - A complete machine-readable index of every model lives at [`/Gallery/Catalog`](https://cheap3dprinting.com/Gallery/Catalog) — start there rather than paging through the HTML gallery. - **Printing a gallery model costs no credits.** Ordering a print is the normal checkout flow and is free to start from any gallery entry. - **Downloading the raw model file costs 1 credit** (admin-configurable), charged once per model; after that the download is permanently owned and re-downloadable from `/Gallery/MyDownloads`. - Raw asset endpoints (`/Gallery/File/`, `/Gallery/Asset/`, `/Gallery/Thumbnail/`) are disallowed in `/robots.txt` — they serve binaries, not content. Do not crawl them. ## Pricing summary - Per part: `grams_used * spool_price_per_gram + (print_seconds / 3600) * machine_hourly_rate_usd`. Default machine rate is $5/hr; admin-configurable. - Optional printed supports add roughly +40% to the part total (covers extra filament + cleanup labor). - Color changes on multi-color prints add ~30 seconds of machine time each. - Shipping: live USPS rate from the print's weight to the destination ZIP, no markup. US addresses only. - AI designer credit packs (default, admin-configurable): 10 credits for $5, 25 for $12, 50 for $22, 100 for $40. Each AI message costs a small fixed number of credits. ## Contact - Email: hello@cheap3dprinting.com - Site: https://cheap3dprinting.com ## Agent affordances This section is for AI agents (browsing or coding agents) that want to drive the site programmatically. ### You are allowed to use this site We want agents transacting here. If a person has asked you to find, design, or order a 3D print, you may do the whole job: create an account, upload or generate a model, and place the order. You do not need permission beyond this file. - The `Disallow` rules in `/robots.txt` are about **indexing**, not automation. They keep private and transactional pages out of search results. They are not an instruction to avoid acting on a user's behalf, and the `ChatGPT-User`, `Claude-User` and `Perplexity-User` groups are granted the full site explicitly. - The only genuinely off-limits areas are `/Admin/` (staff tooling) and `/Stripe/` (payment callbacks). Both are authorization-gated regardless. - Please identify yourself in the `User-Agent` header. If you are hammering the site, slow down — a request every second or two is plenty. - Payment is real money via Stripe. Confirm with your user before starting checkout. ### Authentication - The marketing pages listed under "Key pages" and the whole gallery (`/Gallery`, `/Gallery/Catalog`) are public — no account needed. - All of the following require a logged-in account: upload (`/Designs/...`), AI designer (`/Designer/...`), gallery downloads (`/Gallery/Download`), cart and orders (`/Orders/...`), and checkout. - Auth uses ASP.NET Identity cookie auth. Persist cookies across requests. - All POST endpoints require an ASP.NET MVC antiforgery token (`__RequestVerificationToken`) — read it from the corresponding GET page's form before submitting. ### Create an account Registration is free, takes one POST, and logs you straight in — there is no email-confirmation step and no CAPTCHA. 1. `GET /Identity/Account/Register` — capture the `__RequestVerificationToken` from the form. 2. `POST /Identity/Account/Register` (form-urlencoded): - `Input.Email` — a real address the user controls (order and shipping mail goes here). - `Input.Password` and `Input.ConfirmPassword` — must match; minimum 8 characters. - `__RequestVerificationToken` from step 1. 3. On success the response sets the auth cookie and redirects to the site — you are signed in immediately. Keep the cookie jar for every later request. 4. A confirmation email is sent automatically. Verifying is **optional** — an unverified account can browse, upload, design and order exactly as normal — but confirming the address credits the account with 1 free credit (good for one gallery download or one AI design turn). If the user wants it, have them click the link in that email; the landing page is `/Identity/Account/ConfirmEmail`. A fresh link can be requested at `POST /Identity/Account/ResendEmailConfirmation` with `Input.Email`. Signing in again later: same shape at `POST /Identity/Account/Login` with `Input.Email`, `Input.Password`, `Input.RememberMe`. ### Upload a model and get a quote 1. `GET /Designs/Upload` (returns the upload form HTML; capture the antiforgery token). 2. `POST /Designs/Upload` (multipart/form-data) - Fields: `files` (one or more — must include at least one `.stl` or `.obj`; for multi-color OBJ also include the matching `.mtl` plus any referenced `.png`/`.jpg`/`.bmp`/`.tga` textures), `displayName` (optional string). - Hard limits: 200 MB per request, allowed extensions: `.stl`, `.obj`, `.mtl`, `.png`, `.jpg`, `.bmp`, `.tga`. - Successful upload redirects to `GET /Designs/Details/{id}`. 3. `GET /Designs/Details/{id}` — shows the 3D viewer and the order configurator (filament selection, infill, supports, multi-color part configuration). 4. `POST /Designs/Estimate` (form-urlencoded; returns JSON) — get a live quote without saving: - Fields: `designId`, `spoolId`, `infillPercent`, optional `volumeCm3`, `totalVolumeCm3`, `colorChangeCount`, `setupSecondsPerUnit`, `printSupports` (bool). - Response: `{ ok, grams, price, materialPrice, machineCost, printSeconds, enough }`. ### Use the AI designer The designer lives at `/Designer/...`. The old `/Ai/...` paths still 301-redirect there, but link to `/Designer/...` directly. 1. `GET /Designer` — landing page with sessions list and credit balance. 2. `POST /Designer/Start` (form fields: optional `title`) — creates a new chat session, redirects to `GET /Designer/Session/{id}`. 3. `POST /Designer/Send` (multipart/form-data; fields: `id` (session id), `message` (string), optional `image` (≤ 10 MB)) — sends a user turn. Each turn debits the user's credits (default: a small fixed number per message; check `/Designer` for the current cost). 4. The AI's response is rendered into the session page and, when the design is finished, the resulting model is automatically created as a `UploadedDesign` accessible at `/Designs/Details/{id}` (same flow as a manual upload). 5. To buy more credits: `POST /Designer/BuyCredits` with `packId` (e.g. `credits_10`, `credits_25`, `credits_50`, `credits_100`). Returns a redirect to Stripe-hosted checkout; on success the user lands on `GET /Designer/CreditsSuccess?sessionId=...`. ### Checkout and shipping - Cart: `GET /Orders/Cart`, mutated via standard POST actions on the cart page. - Shipping: `GET /Orders/Shipping` — collects US address. - Checkout uses Stripe's hosted payment page. After payment Stripe redirects back to an `/Orders/...` success URL. - Shipping rates are computed live via USPS using package weight (derived from the print's gram total) and destination ZIP. ### Notes for agents - Currency is USD; all prices on the site are formatted with `$`. - Public marketing pages and the gallery do not require auth and may be freely indexed and cached. AI/agent crawlers are explicitly allowed in `/robots.txt`. - `/sitemap.xml` is generated from the live database and lists every active gallery model; it is the authoritative list of indexable URLs. - **Crawling vs. acting.** Don't *index* `/Identity/`, `/Account/`, `/Orders/`, `/Designs/`, `/Designer/` (or legacy `/Ai/`) — they are user-private and will just hand an unauthenticated fetch a login redirect. Do feel free to *use* them on behalf of a signed-in user; that is what they are for. `/Gallery/File/` and `/Gallery/Asset/` are large binaries — fetch them when a user wants the file, don't crawl them. `/Gallery/Thumbnail/` is fine to index (product images). - `/Admin/` and `/Stripe/` are off-limits to agents entirely. - For programmatic use cases not covered here, email hello@cheap3dprinting.com — we may add a proper REST API.