
3d-asset-server کیا کرتا ہے
3d-asset-server 3D ماڈلز، مواد، ٹیکسچرز، HDRIs، اسپرائٹس، UI اثاثوں، آڈیو، فونٹس اور گیم اثاثوں کے پیکجز کے لیے ایک سرچ باکس فراہم کرتا ہے۔ یہ 18 فراہم کنندگان میں تلاش کرتا ہے، نتائج کو یکجا اور درجہ بند کرتا ہے، ہر ذریعے کی حالت بتاتا ہے، اور جہاں فراہم کنندہ براہِ راست ڈاؤن لوڈ کی اجازت دے وہاں اثاثے ڈاؤن لوڈ کرتا ہے۔
آپ یہ پروجیکٹ براؤزر کے ذریعے، curl کے ساتھ، اس کے کمانڈ لائن انٹرفیس کے ذریعے، یا Model Context Protocol (MCP) سے منسلک AI اسسٹنٹ کے ذریعے استعمال کر سکتے ہیں۔ نتائج میں لائسنس کی معلومات، قیمت کی حالت، انتساب کے تقاضے، فارمیٹس، ریزولوشنز اور فراہم کنندہ کے لنکس شامل ہوتے ہیں۔
تلاش کیسے کام کرتی ہے
ہر استفسار کے لیے سرور متعلقہ فراہم کنندگان منتخب کرتا ہے اور ان میں بیک وقت تلاش کرتا ہے۔ ہر فراہم کنندہ کا اپنا ٹائم آؤٹ ہوتا ہے، اس لیے سست یا غیر دستیاب ویب سائٹ دوسرے ذرائع سے نتائج ظاہر ہونے سے نہیں روکتی۔
نتائج کی درجہ بندی متنی مطابقت، فراہم کنندہ کی درجہ بندی، نتیجے کے API یا اسکریپر سے آنے، مفت دستیابی، براہِ راست ڈاؤن لوڈ کی معاونت اور ذرائع کے تنوع کی بنیاد پر کی جاتی ہے۔ جواب میں ہر فراہم کنندہ کی رپورٹ بھی شامل ہوتی ہے، جس میں ok، error، timeout، skipped یا link جیسی حالتیں شامل ہیں۔
کچھ فراہم کنندگان براہِ راست ڈاؤن لوڈ کی معاونت کرتے ہیں۔ Poly Haven، ambientCG، Kenney، TextureCan اور BlenderKit کے مفت اثاثے اس کی مثالیں ہیں۔ دوسرے فراہم کنندگان مکمل میٹا ڈیٹا اور اثاثے کے صفحے کا لنک دیتے ہیں، جبکہ Fab، Poliigon اور TurboSquid بوٹ پروٹیکشن کی وجہ سے خودکار تلاش روکنے پر اپنے سرچ صفحات کے لنکس فراہم کرتے ہیں۔
معاونت یافتہ ذرائع
فراہم کنندگان کے کیٹلاگ میں مختلف اقسام کے مواد کے ذرائع شامل ہیں:
- HDRIs اور PBR مواد: Poly Haven، ambientCG، HDRMaps، HDRI Hub اور 3DTexel۔
- لو پولی اور گیم اثاثے: Kenney، Quaternius، Fab، itch.io اور BlenderKit۔
- ٹیکسچرز اور اسکین شدہ مواد: CGBookcase، ShareTextures، TextureCan، Textures.com اور 3DTextures.me۔
- ماڈلز اور اثاثوں کی مارکیٹ پلیسز: BlenderKit، CGTrader، TurboSquid، Fab اور itch.io۔
لائسنس کی تفصیلات ہر لسٹنگ کے لحاظ سے مختلف ہوتی ہیں۔ مثال کے طور پر Poly Haven، ambientCG اور Kenney CC0 مواد فراہم کرتے ہیں، جبکہ مارکیٹ پلیس فراہم کنندگان لسٹنگ کے لحاظ سے مخصوص لائسنس لاگو کر سکتے ہیں۔ کسی اثاثے کی تقسیم سے پہلے واپس آنے والی لائسنس اور انتساب کی معلومات کا ہمیشہ جائزہ لیں۔
تنصیب اور سیٹ اپ
اس پروجیکٹ کے لیے Node.js 20 یا اس کے بعد کا ورژن درکار ہے۔ ریپوزٹری کلون کریں، انحصارات انسٹال کریں اور ایپلیکیشن بنائیں:
git clone https://github.com/arielshad/3d-asset-server.git
cd 3d-asset-server
npm install
npm run buildویب UI، HTTP API اور MCP اینڈ پوائنٹ شروع کرنے کے لیے یہ کمانڈ چلائیں:
npm startمقامی سرور پہلے سے طے شدہ طور پر http://localhost:8787 پر چلتا ہے۔
Docker سیٹ اپ
آپ Docker کے ذریعے بھی سرور بنا کر چلا سکتے ہیں:
docker build -t 3d-asset-server .
docker run -p 8787:8787 3d-asset-serverویب UI استعمال کرنا
سرور شروع کرنے کے بعد http://localhost:8787 کھولیں۔ میزبان ورژن 3d.shep.bot پر دستیاب ہے۔
تلاش کے صفحے پر استفسار درج کریں، اثاثے کی قسم منتخب کریں، نتائج کو مفت اثاثوں تک محدود کریں، براہِ راست ڈاؤن لوڈ لازمی قرار دیں، یا مخصوص فراہم کنندگان منتخب کریں۔ تلاش کی حالت URL میں محفوظ ہوتی ہے، اس لیے /search?q=sunset&type=hdri&free=true جیسے استفسار کو بک مارک یا شیئر کیا جا سکتا ہے۔
کسی نتیجے کی تفصیلی شیٹ کھول کر اس کا لائسنس، مصنف، فارمیٹس، پولی گون کی تعداد، ٹیگز، دستیاب ریزولوشنز اور فائل کے اندازاً سائز کا جائزہ لیں۔ اس کے بعد آپ فارمیٹ اور ریزولوشن منتخب کر سکتے ہیں، اثاثہ ڈاؤن لوڈ کر سکتے ہیں، curl کمانڈ کاپی کر سکتے ہیں یا ایجنٹ کے لیے موزوں پرامپٹ کاپی کر سکتے ہیں۔
میزبان ویب سائٹ دستاویزات، OpenAPI حوالہ، ماخذ کی معلومات اور خود میزبانی کی رہنمائی بھی فراہم کرتی ہے۔ اس کی ایجنٹ پر مبنی فائلوں میں /AGENTS.md، /llms.txt، /llms-full.txt اور /openapi.json شامل ہیں۔
HTTP API کے ساتھ تلاش
مرکزی سرچ اینڈ پوائنٹ GET /v1/search ہے۔ اس میں استفسار اور اختیاری فلٹرز فراہم کریں، جیسے اثاثے کی قسم، مفت دستیابی، براہِ راست ڈاؤن لوڈ کی معاونت، فراہم کنندگان، نتائج کی حد اور آف سیٹ۔
curl 'http://localhost:8787/v1/search?q=brick+wall&type=material&free=true&limit=5'مختصر جواب میں درجہ بند نتائج اور فراہم کنندگان کی رپورٹس شامل ہوتی ہیں:
{
"query": "brick wall",
"results": [
{
"id": "polyhaven:brick_wall_001",
"title": "Brick Wall 001",
"type": "material",
"license": {
"name": "CC0",
"commercialUse": true,
"attributionRequired": false
},
"resolutions": ["1k", "2k", "4k", "8k"],
"downloadable": true
}
],
"providers": [
{
"provider": "polyhaven",
"status": "ok",
"count": 5
}
]
}فراہم کنندگان کا کیٹلاگ حاصل کرنے کے لیے GET /v1/providers، مکمل اثاثے کی تفصیلات کے لیے GET /v1/assets/{provider}:{id}، اور فارمیٹ و ریزولوشن کے ذریعے منتخب فائلوں کا جائزہ لینے کے لیے GET /v1/assets/{id}/files استعمال کریں۔
API کے ذریعے ڈاؤن لوڈ
خود کفیل فائل کے لیے ڈاؤن لوڈ اینڈ پوائنٹ اصل فائل پر ری ڈائریکٹ کرتا ہے۔ متعدد فائلوں والے اثاثوں کے لیے یہ ایک zip اسٹریم کرتا ہے جس میں اثاثہ اور اس سے متعلقہ فائلیں شامل ہوتی ہیں:
curl -OJ 'http://localhost:8787/v1/assets/polyhaven:WoodenChair_01/download?format=gltf&resolution=1k'API /health، /openapi.json، /v1/catalog اور /v1/stats بھی فراہم کرتی ہے۔ کیٹلاگ میں فراہم کنندگان اور اثاثوں کی تعداد شامل ہوتی ہے، جبکہ اعدادوشمار کا اینڈ پوائنٹ استعمال اور ذرائع کی صحت کی رپورٹ دیتا ہے۔
CLI استعمال کرنا
بلٹ CLI HTTP سروسنگ، معیاری ان پٹ اور آؤٹ پٹ کے ذریعے MCP، اور ٹرمینل سے تلاش کی معاونت کرتا ہے۔
node dist/cli.js search "low poly tree" --type model --free --limit 5نتائج میں اسکور، اثاثے کی قسم، مفت ہونے کی حیثیت، فراہم کنندہ کا شناخت کنندہ، عنوان اور ماخذ کا URL دکھایا جاتا ہے۔ فراہم کنندگان کی حیثیتیں نتائج کے بعد دکھائی جاتی ہیں تاکہ آپ دیکھ سکیں کہ کن سائٹس نے جواب دیا اور کن سائٹس نے صرف روابط فراہم کیے۔
CLI سے مکمل مقامی سروس چلانے کے لیے یہ کمانڈ استعمال کریں:
3d-asset-server serveمعیاری ان پٹ اور آؤٹ پٹ پر MCP سرور شروع کرنے کے لیے یہ کمانڈ استعمال کریں:
3d-asset-server mcpAI معاونین کے ساتھ MCP کا استعمال
MCP کسی AI معاون کو اثاثے تلاش کرنے، ان کی تفصیلات دیکھنے اور اجازت یافتہ فائلیں ڈاؤن لوڈ کرنے کی سہولت دیتا ہے۔ دستیاب ٹولز یہ ہیں:
search_assetsاستفسار، قسم، فراہم کنندہ، لائسنس، ڈاؤن لوڈ کی اہلیت اور صفحہ بندی کے فلٹرز استعمال کرتے ہوئے فراہم کنندگان میں تلاش کرتا ہے۔get_assetمیٹا ڈیٹا، لائسنس کی معلومات، دستیاب فارمیٹس اور ریزولوشنز، نیز منتخب ڈاؤن لوڈ سے حاصل ہونے والی فائلیں واپس کرتا ہے۔download_assetکسی اثاثے اور اس کی معاون فائلوں کو تشکیل شدہ ڈائریکٹری میں محفوظ کرتا ہے اور معاونت یافتہ zip پیکجز کو نکالتا ہے۔list_providersہر فراہم کنندہ، اس کی اثاثے کی اقسام، قیمتوں، لائسنس اور براہِ راست ڈاؤن لوڈ کی معاونت کی تفصیل بیان کرتا ہے۔
Claude Code
Claude Code کو مقامی MCP عمل شروع کرنے اور موجودہ پروجیکٹ کی اثاثہ ڈائریکٹری میں فائلیں محفوظ کرنے کے لیے تشکیل دیں:
claude mcp add 3d-assets -e ASSET_DOWNLOAD_DIR="$PWD/assets" -- node /path/to/3d-asset-server/dist/cli.js mcpClaude Desktop، Cursor اور دیگر Stdio کلائنٹس
کلائنٹ کی MCP تشکیل میں سرور کا اندراج شامل کریں:
{
"mcpServers": {
"3d-assets": {
"command": "node",
"args": ["/path/to/3d-asset-server/dist/cli.js", "mcp"],
"env": {
"ASSET_DOWNLOAD_DIR": "/path/to/your/game/assets"
}
}
}
}ریموٹ MCP
میزبان سرور Streamable HTTP MCP کو سپورٹ کرتا ہے:
claude mcp add --transport http 3d-assets https://3d.shep.bot/mcpخود میزبان سرور کے لیے کلائنٹ کو http://<host>:8787/mcp کی طرف بھیجیں۔ ریموٹ HTTP ڈاؤن لوڈز بطور ڈیفالٹ غیر فعال ہیں کیونکہ ان سے سرور کی ڈسک پر فائلیں لکھی جائیں گی۔ اس موڈ میں get_asset براہِ راست فائل URLs اور bundle zip URL واپس کرتا ہے۔ ASSET_SERVER_HTTP_DOWNLOADS=true صرف اس وقت سیٹ کریں جب سرور کو فائلیں محفوظ کرنی ہوں۔
ڈاؤن لوڈز کو سمجھنا
جب کوئی فارمیٹ متعین نہ ہو تو سرور عملی گیم اور ویب فارمیٹس کو ترجیح دیتا ہے۔ ماڈلز کے لیے ترجیح glb، پھر gltf، fbx، obj اور blend کی ہے۔ HDRIs کے لیے ترجیح hdr اور پھر exr کی ہے۔ مواد کے لیے تصویری میپس یا zip کو ترجیح دی جاتی ہے، ٹیکسچرز کے لیے jpg، png، zip یا exr، جبکہ پیکجز کو نکالی ہوئی zip فائلوں کے طور پر ڈاؤن لوڈ کیا جاتا ہے۔
ڈیفالٹ ریزولوشن 2K کے قریب ترین دستیاب آپشن ہوتا ہے۔ معاون فائلیں اپنے نسبتی راستے برقرار رکھتی ہیں، جس سے glTF فائل اپنی binary اور texture فائلیں دستی ترتیب نو کے بغیر تلاش کر سکتی ہے۔
assets/
└── polyhaven-WoodenChair_01/
├── WoodenChair_01_2k.gltf
├── WoodenChair_01.bin
└── textures/
├── WoodenChair_01_diff_2k.jpg
├── WoodenChair_01_nor_gl_2k.jpg
└── WoodenChair_01_arm_2k.jpgڈاؤن لوڈر صرف عوامی http اور https URLs سے فائلیں حاصل کرتا ہے، نجی اور loopback پتوں کو مسترد کرتا ہے، قابلِ تشکیل حجم کی حد نافذ کرتا ہے اور غیر محفوظ archive راستوں، مثلاً ../، کو مسترد کرتا ہے۔ یہ login صفحات، checkout مراحل یا hotlink تحفظ کو بائی پاس نہیں کرتا۔
تشکیل
سرور شروع کرنے سے پہلے ماحول کے متغیرات سیٹ کریں تاکہ اس کے نیٹ ورک پتے، فراہم کنندگان، ڈاؤن لوڈز، سکیورٹی اور کارکردگی کو کنٹرول کیا جا سکے۔
PORTاورHOSTHTTP bind پتے کو کنٹرول کرتے ہیں۔ ان کی ڈیفالٹ قدریں بالترتیب8787اور0.0.0.0ہیں۔ASSET_SERVER_PROVIDERSکوما سے جدا فہرست قبول کرتا ہے، جیسےpolyhaven,ambientcg,kenney۔ASSET_DOWNLOAD_DIRڈیفالٹ MCP ڈاؤن لوڈ فولڈر./assetsکو تبدیل کرتا ہے۔ASSET_SERVER_MAX_DOWNLOAD_BYTESفی ڈاؤن لوڈ حجم کی حد مقرر کرتا ہے، جو ڈیفالٹ طور پر 2 GiB ہے۔ASSET_SERVER_PROVIDER_TIMEOUT_MSاورASSET_SERVER_HTTP_TIMEOUT_MSفراہم کنندہ اور HTTP ٹائم آؤٹ کو تبدیل کرتے ہیں۔ASSET_SERVER_CACHE_TTL_MSمیموری میں موجود HTTP کیش کی مدت کو کنٹرول کرتا ہے۔BLENDERKIT_API_KEYBlenderKit کے پلان اور خریدے گئے اثاثوں تک رسائی کھول سکتا ہے۔NODE_USE_ENV_PROXY=1Node کو تشکیل شدہHTTPS_PROXYاستعمال کرنے کے لیے کہتا ہے۔
تصدیق اور شرح کی حدود
ASSET_SERVER_API_KEY سیٹ کر کے /v1/* اور /mcp کو محفوظ کریں۔ کلائنٹس یہ کلید Bearer ٹوکن، x-api-key ہیڈر یا api_key query پیرامیٹر کے طور پر بھیج سکتے ہیں۔ query پیرامیٹرز کے ساتھ احتیاط کریں کیونکہ براؤزر کی تاریخ اور سرور لاگز میں یہ شامل ہو سکتے ہیں۔
شرح کی حد بندی بطور ڈیفالٹ فی کلائنٹ 60 سیکنڈ کی مدت میں 120 درخواستوں پر فعال ہے۔ ASSET_SERVER_RATE_LIMIT اور ASSET_SERVER_RATE_LIMIT_WINDOW تشکیل دیں، یا اسے غیر فعال کرنے کے لیے حد کو 0 پر سیٹ کریں۔
پراکسی اور فراہم کنندہ کے مسائل کا حل
CGTrader کلاؤڈ اور ڈیٹا سینٹر کے IP پتوں کو روک سکتا ہے۔ یہ اکثر گھریلو کنکشن سے کام کرتا ہے؛ سرور پر پراکسی تشکیل دیں اور NODE_USE_ENV_PROXY=1 سیٹ کریں۔ اسکریپ کیے گئے فراہم کنندگان اپنا HTML بھی تبدیل کر سکتے ہیں۔ اگر ایک ذریعہ ناکام ہو جائے تو دیگر ذرائع نتائج فراہم کرتے رہتے ہیں، اور npm run test:live فراہم کنندگان کی دستیابی جانچ سکتا ہے۔
اعلیٰ درجے کی نگرانی
Prometheus میٹرکس کو الگ پورٹ پر ظاہر کرنے کے لیے METRICS_PORT سیٹ کریں۔ سرور تلاشوں، فراہم کنندہ کی درخواستوں، ڈاؤن لوڈز، اثاثوں کے مشاہدات، MCP ٹول کالز، HTTP درخواستوں اور صفحات کے مشاہدات کے لیے محدود لیبل والے میٹرکس ریکارڈ کرتا ہے۔ یہ IP ایڈریسز، کلیدیں یا کوکیز ریکارڈ کیے بغیر ساختہ تلاش کے واقعات بھی لاگ کرتا ہے۔
اگر PROMETHEUS_URL تشکیل دیا گیا ہو تو شماریات کا اختتامی نقطہ متعدد ریپلکاز کے مجموعی ڈیٹا کی رپورٹ دے سکتا ہے۔ اس کے بغیر شماریات آخری ری اسٹارٹ کے بعد سے موجودہ پراسیس کی نمائندگی کرتی ہیں۔
تجویز کردہ ورک فلو
sunset،low poly treeیاbrick wallجیسی وضاحتی تلاش کے ذریعے وسیع پیمانے پر تلاش کریں۔- اثاثے کی قسم، مفت ہونے کی حیثیت، براہِ راست ڈاؤن لوڈ کی دستیابی یا منتخب فراہم کنندگان کے لحاظ سے فلٹر کریں۔
- لائسنس، انتساب کی ضرورت، فارمیٹس، ریزولوشنز اور فائلوں کی فہرست کا جائزہ لیں۔
- اپنے گیم یا ویب سائٹ کے لیے موزوں فارمیٹ اور ریزولوشن منتخب کریں۔
- اثاثہ ڈاؤن لوڈ کریں یا اس کا ماخذ لنک کاپی کریں، اگر فراہم کنندہ براہِ راست ڈاؤن لوڈز کی اجازت نہیں دیتا۔
- ضروری انتساب اور لائسنس فائلیں اپنے پروجیکٹ کے ساتھ رکھیں۔
نتیجہ
3d-asset-server بکھری ہوئی اثاثہ تلاش کو ایک واحد ورک فلو میں بدل دیتا ہے۔ اس کا ویب UI، HTTP API، CLI اور MCP ٹولز آپ کو متعدد فراہم کنندگان میں تلاش کرنے، لائسنس اور ڈاؤن لوڈ کی معلومات کا موازنہ کرنے، اور استعمال کے لیے تیار ماڈلز، ٹیکسچرز، HDRIs اور پیکس حاصل کرنے دیتے ہیں۔ Node.js یا Docker کے ساتھ مقامی طور پر آغاز کریں، پھر پروڈکشن تعیناتی کے لیے فراہم کنندگان، تصدیق، ڈاؤن لوڈ پاتھز، شرح کی حدود اور نگرانی تشکیل دیں۔
