SculptForge
ZBrush-style sculpting for VFX, animation and games. VFX Reference Platform CY2026 and CY2027 builds, OpenUSD, a Python API and Send to Unreal. Free built-in AI: describe a brush and get it, or turn a
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证AppShots — App Store & Google Play screenshots in minutes
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
AppShots — App Store & Google Play Screenshot Generator
A full-stack-ready clone of an app-store screenshot tool (inspired by appscreens.com),
built with React 18 + Vite + TailwindCSS. Turn raw app captures into polished,
store-ready screenshots with device frames, gradient backgrounds, headlines, and
PNG export — all in the browser.
This is an original, "inspired-by" build. All copy, UI, and device frames are
drawn from scratch (no assets copied from the original site).查看完整 README ↗A full-stack-ready clone of an app-store screenshot tool (inspired by appscreens.com), built with React 18 + Vite + TailwindCSS. Turn raw app captures into polished, store-ready screenshots with device frames, gradient backgrounds, headlines, and PNG export — all in the browser.
This is an original, "inspired-by" build. All copy, UI, and device frames are drawn from scratch (no assets copied from the original site).
/inspiration) — public, browsable showcase of complete designs; start a project from any one./tracker) — look up any competitor's live App Store screenshots + metadata (rating, genre, price, version) via Apple's official iTunes Search API; screenshots link back to the App Store for reference..zip, "All sizes" (render one design across every required App Store + Google Play size), copy-to-clipboard, and an animated video reelRequires Node.js 20+.
npm install
npm run dev # http://localhost:5173
Build for production:
npm run build
npm run preview
If you see a partial
node_modulesfrom a previous attempt, just runnpm installagain (or delete the folder first) — it will reconcile.
The app talks to a single backend abstraction (src/lib/backend.js). Out of the
box it uses a localStorage implementation, so everything (accounts, projects,
plan upgrades) works with zero setup.
When you're ready for a real backend, the abstraction is designed to swap to Supabase without touching any UI code.
npm i @supabase/supabase-js.env.example → .env.local and fill in:
VITE_SUPABASE_URL=...
VITE_SUPABASE_ANON_KEY=...
projects table:
create table projects (
id uuid primary key default gen_random_uuid(),
user_id uuid references auth.users not null,
name text not null default 'Untitled project',
state jsonb not null,
created_at timestamptz default now(),
updated_at timestamptz default now()
);
alter table projects enable row level security;
create policy "own projects" on projects
for all using (auth.uid() = user_id) with check (auth.uid() = user_id);
src/lib/backend.js, implement the same method surface
(signUp, signIn, signOut, getCurrentUser, listProjects,
getProject, createProject, updateProject, deleteProject, upgradePlan)
using supabase.auth and supabase.from("projects"), then export it as backend.The Pricing page currently simulates upgrades. To take real payments with Stripe Checkout (client-only):
VITE_STRIPE_PUBLISHABLE_KEY and VITE_STRIPE_PRICE_PRO to .env.local.Pricing.jsx's choose(), redirect to Checkout instead of calling upgrade():
import { loadStripe } from "@stripe/stripe-js";
const stripe = await loadStripe(import.meta.env.VITE_STRIPE_PUBLISHABLE_KEY);
await stripe.redirectToCheckout({
lineItems: [{ price: import.meta.env.VITE_STRIPE_PRICE_PRO, quantity: 1 }],
mode: "subscription",
successUrl: window.location.origin + "/dashboard",
cancelUrl: window.location.origin + "/pricing",
});
plan to pro.src/
components/ Navbar, Footer, Logo, AuthShell, ScreenCanvas, ProtectedRoute
lib/
backend.js data layer (localStorage now, Supabase-ready)
auth.jsx auth context/provider
devices.js device frame definitions (CSS-drawn, store dimensions)
templates.js gradients, fonts, layouts, default project state
export.js DOM → PNG export at store resolution
team.js team API calls + the "which buttons to render" helpers
teamContext.jsx loads the workspace once, shares it with every screen
pages/ Landing, Pricing, Login, Signup, Dashboard, Editor, Team, JoinTeam, NotFound
App.jsx routes
main.jsx entry
server/
teams.js the roster, the roles, /api/team — server-owned by design
entitlement.js Stripe record + Team seat -> one effective plan
firestoreAdmin.js the only writer of teams/** in Firestore
Deeper docs: TEAM-SETUP.md · STRIPE-SETUP.md · FIREBASE-SETUP.md · DEPLOY.md
React 18 · Vite 8 · React Router 6 · TailwindCSS 3 · Framer Motion · lucide-react · html-to-image · three.js.
The /api/* proxy (server/handlers.js) also holds the AI, image-search, and
App-Store-tracker endpoints; the App Store Tracker uses Apple's public iTunes
Search API and needs no key.
localStorage for convenience only; never do that in production.