{
  "aboutHtml": "<p>Tripo יוצר מודלים תלת-ממדיים (3D) מתוך תיאור או תמונת ייחוס. תהליכי העבודה שלו מפרידים בין יצירת אובייקט לבין שלבים מאוחרים יותר כגון הוספת טקסטורות, בניית שלד להנפשה והמרה. התחילו בזיהוי המודל המיועד והפעולה שמפיקה אותו: רשת גאומטרית סטטית לסצנה, אובייקט עם טקסטורות לרינדור או מודל שיעבור הכנה נוספת בעורך 3D.</p><p>בתיאור ליצירת מודל מטקסט, תארו את צורת האובייקט ואת החלקים החשובים שלו. אפשר להגדיר פנס קטן לפי הגוף, הידית, הפתחים והפרופורציות שלו; יצור לפי הצללית, הגפיים והתנוחה. ציינו את החומר או את העיצוב החזותי כשהם משפיעים על התוצאה. השאירו את התיאור ממוקד באובייקט עצמו, כדי שיהיה אפשר להעריך את הגאומטריה שנוצרה מול עיצוב ברור.</p><p>לתהליך של היצרן המבוסס על תמונות ייחוס, הכינו תמונות שמראות את קווי המתאר של הנושא ואת המאפיינים המבדילים שלו. כמה מבטים צריכים לתאר את אותו אובייקט עם פרופורציות ואביזרים עקביים. בדקו לאחר היצירה חלקים שמוסתרים בתמונת הייחוס, משום שמבט קדמי משכנע אינו מוכיח שהגב, הצד התחתון או החיבורים בין רכיבים תואמים את העיצוב המיועד.</p><p>שמרו את גרסת המודל שנבחרה לצד הבקשה. ממשק היצירה של Tripo מזהה את הפעולה בנפרד מהגדרת גרסת המודל, והדוגמה המתועדת ליצירת מודל מטקסט בוחרת גרסה מפורשת. שמרו את הגרסה והבקרות המדויקות כשמשווים מודלים, כדי שלא לבלבל בין שינוי בתיאור האובייקט לבין שינוי בתצורת היצירה.</p><p>גאומטריה ומראה פני השטח הם החלטות ייצור נפרדות. תהליך העבודה הבסיסי של היצרן מבדיל בין מודל ללא טקסטורות לבין פלט עם טקסטורות וחומרים לרינדור המבוסס על פיזיקה. בחרו את צורת המודל הדרושה לשלב הבא, ולאחר מכן בדקו גם את הרשת הגאומטרית וגם את קובצי החומרים הנלווים, אם ישנם. תמונת תצוגה מקדימה מועילה להתמצאות, ואילו המודל בפועל הוא התוצר הדרוש להרכבת סצנה ולעריכה נוספת.</p><p>בחנו את האובייקט שהושלם מכמה זוויות. הסתכלו על הצללית, ההפרדה בין החלקים, פרטים דקים, פתחים ומשטחים שבהם רכיבים נפגשים. לאביזר מסוגנן, השוו את הפרופורציות לתיאור העיצוב. לאובייקט דמוי מוצר, בדקו אילו פרטים מיוצגים בגאומטריה ואילו מופיעים רק בעיצוב פני השטח. זהו את המאפיין שדורש תיקון לפני שינוי הפרומפט או תמונת הייחוס.</p><p>היצירה מתבצעת כמשימה אסינכרונית. שמרו את זהות המשימה המקורית לאורך בדיקת הסטטוס ושמרו יחד את המודל שהושלם, התצוגה המקדימה וכל קובץ אחר שהוחזר. התוצאה המתועדת כוללת שדות פלט הקשורים למודל ותמונות מרונדרות. שמרו את הקבצים עצמם לשלב הייצור הבא, במקום להסתמך על קישור זמני לתוצאה או להתייחס לתצוגה המקדימה כתוצר 3D שלם.</p><p>ייבאו את המודל לעורך או לסביבת הצפייה המיועדים ובדקו שם את הכיוון, קנה המידה, החומרים והגאומטריה שלו. לאביזר סצנה, לרינדור בתקריב ולדמות מוכנה להנפשה יש צורכי גימור שונים. שמרו עותק עבודה לעריכות ואת מודל המקור שנוצר לצד התיאור ותמונות הייחוס שלו. כשנדרשת פעולה אחרת, כגון עבודה על טקסטורות או בניית שלד להנפשה, בחרו בה במכוון ובדקו את המודל שהתקבל כשלב נפרד.</p>",
  "aboutText": "Tripo יוצר מודלים תלת-ממדיים (3D) מתוך תיאור או תמונת ייחוס. תהליכי העבודה שלו מפרידים בין יצירת אובייקט לבין שלבים מאוחרים יותר כגון הוספת טקסטורות, בניית שלד להנפשה והמרה. התחילו בזיהוי המודל המיועד והפעולה שמפיקה אותו: רשת גאומטרית סטטית לסצנה, אובייקט עם טקסטורות לרינדור או מודל שיעבור הכנה נוספת בעורך 3D.\n\nבתיאור ליצירת מודל מטקסט, תארו את צורת האובייקט ואת החלקים החשובים שלו. אפשר להגדיר פנס קטן לפי הגוף, הידית, הפתחים והפרופורציות שלו; יצור לפי הצללית, הגפיים והתנוחה. ציינו את החומר או את העיצוב החזותי כשהם משפיעים על התוצאה. השאירו את התיאור ממוקד באובייקט עצמו, כדי שיהיה אפשר להעריך את הגאומטריה שנוצרה מול עיצוב ברור.\n\nלתהליך של היצרן המבוסס על תמונות ייחוס, הכינו תמונות שמראות את קווי המתאר של הנושא ואת המאפיינים המבדילים שלו. כמה מבטים צריכים לתאר את אותו אובייקט עם פרופורציות ואביזרים עקביים. בדקו לאחר היצירה חלקים שמוסתרים בתמונת הייחוס, משום שמבט קדמי משכנע אינו מוכיח שהגב, הצד התחתון או החיבורים בין רכיבים תואמים את העיצוב המיועד.\n\nשמרו את גרסת המודל שנבחרה לצד הבקשה. ממשק היצירה של Tripo מזהה את הפעולה בנפרד מהגדרת גרסת המודל, והדוגמה המתועדת ליצירת מודל מטקסט בוחרת גרסה מפורשת. שמרו את הגרסה והבקרות המדויקות כשמשווים מודלים, כדי שלא לבלבל בין שינוי בתיאור האובייקט לבין שינוי בתצורת היצירה.\n\nגאומטריה ומראה פני השטח הם החלטות ייצור נפרדות. תהליך העבודה הבסיסי של היצרן מבדיל בין מודל ללא טקסטורות לבין פלט עם טקסטורות וחומרים לרינדור המבוסס על פיזיקה. בחרו את צורת המודל הדרושה לשלב הבא, ולאחר מכן בדקו גם את הרשת הגאומטרית וגם את קובצי החומרים הנלווים, אם ישנם. תמונת תצוגה מקדימה מועילה להתמצאות, ואילו המודל בפועל הוא התוצר הדרוש להרכבת סצנה ולעריכה נוספת.\n\nבחנו את האובייקט שהושלם מכמה זוויות. הסתכלו על הצללית, ההפרדה בין החלקים, פרטים דקים, פתחים ומשטחים שבהם רכיבים נפגשים. לאביזר מסוגנן, השוו את הפרופורציות לתיאור העיצוב. לאובייקט דמוי מוצר, בדקו אילו פרטים מיוצגים בגאומטריה ואילו מופיעים רק בעיצוב פני השטח. זהו את המאפיין שדורש תיקון לפני שינוי הפרומפט או תמונת הייחוס.\n\nהיצירה מתבצעת כמשימה אסינכרונית. שמרו את זהות המשימה המקורית לאורך בדיקת הסטטוס ושמרו יחד את המודל שהושלם, התצוגה המקדימה וכל קובץ אחר שהוחזר. התוצאה המתועדת כוללת שדות פלט הקשורים למודל ותמונות מרונדרות. שמרו את הקבצים עצמם לשלב הייצור הבא, במקום להסתמך על קישור זמני לתוצאה או להתייחס לתצוגה המקדימה כתוצר 3D שלם.\n\nייבאו את המודל לעורך או לסביבת הצפייה המיועדים ובדקו שם את הכיוון, קנה המידה, החומרים והגאומטריה שלו. לאביזר סצנה, לרינדור בתקריב ולדמות מוכנה להנפשה יש צורכי גימור שונים. שמרו עותק עבודה לעריכות ואת מודל המקור שנוצר לצד התיאור ותמונות הייחוס שלו. כשנדרשת פעולה אחרת, כגון עבודה על טקסטורות או בניית שלד להנפשה, בחרו בה במכוון ובדקו את המודל שהתקבל כשלב נפרד.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "b8f8cb907fb02d375de7206b525aaa33897b8636ac9a64e704aaf66e4ef614aa",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "he",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Tripo: 3D Generation</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"סגירה\">×</button></div><div class=\"idline\"><span>Tripo /</span><code>tripo3d</code><button type=\"button\" id=\"copy-id\">העתקת ID</button></div><nav class=\"card-jump-nav\" aria-label=\"חלקי כרטיס המודל\"><button type=\"button\" data-card-jump=\"overview\">התחלה</button><button type=\"button\" data-card-jump=\"methods\">קלט ושיטות</button><button type=\"button\" data-card-jump=\"pricing\">תעריפים</button><button type=\"button\" data-card-jump=\"examples\">דוגמאות</button><button type=\"button\" data-card-jump=\"results\">תוצאות</button><button type=\"button\" data-card-jump=\"aliases\">כינויים</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"שיטות API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|3d|/v1/3d/generations|tripo3d\">3D</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">התחלה</h3><p class=\"mdesc-full\">Tripo יוצר מודל תלת-ממדי (3D) מתוך תיאור כתוב של אובייקט. תהליכי העבודה הרחבים יותר של היצרן מפרידים בין גאומטריה, טקסטורות ועיבוד מודל מאוחר יותר; בדקו את הרשת הגאומטרית שהושלמה מכמה זוויות ושמרו את הקבצים בפועל עבור הסצנה או העורך המיועדים.</p><dl class=\"card-io\" data-card-io><div><dt>סוגי קלט נתמכים</dt><dd>טקסט</dd></div><div><dt>תוצאות</dt><dd>model_3d · תמונות</dd></div></dl><details class=\"card-about\"><summary>על המודל</summary><p class=\"note-s\" data-model-method-boundary>התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.</p><div class=\"mabout\" id=\"m-about\"><p>Tripo יוצר מודלים תלת-ממדיים (3D) מתוך תיאור או תמונת ייחוס. תהליכי העבודה שלו מפרידים בין יצירת אובייקט לבין שלבים מאוחרים יותר כגון הוספת טקסטורות, בניית שלד להנפשה והמרה. התחילו בזיהוי המודל המיועד והפעולה שמפיקה אותו: רשת גאומטרית סטטית לסצנה, אובייקט עם טקסטורות לרינדור או מודל שיעבור הכנה נוספת בעורך 3D.</p><p>בתיאור ליצירת מודל מטקסט, תארו את צורת האובייקט ואת החלקים החשובים שלו. אפשר להגדיר פנס קטן לפי הגוף, הידית, הפתחים והפרופורציות שלו; יצור לפי הצללית, הגפיים והתנוחה. ציינו את החומר או את העיצוב החזותי כשהם משפיעים על התוצאה. השאירו את התיאור ממוקד באובייקט עצמו, כדי שיהיה אפשר להעריך את הגאומטריה שנוצרה מול עיצוב ברור.</p><p>לתהליך של היצרן המבוסס על תמונות ייחוס, הכינו תמונות שמראות את קווי המתאר של הנושא ואת המאפיינים המבדילים שלו. כמה מבטים צריכים לתאר את אותו אובייקט עם פרופורציות ואביזרים עקביים. בדקו לאחר היצירה חלקים שמוסתרים בתמונת הייחוס, משום שמבט קדמי משכנע אינו מוכיח שהגב, הצד התחתון או החיבורים בין רכיבים תואמים את העיצוב המיועד.</p><p>שמרו את גרסת המודל שנבחרה לצד הבקשה. ממשק היצירה של Tripo מזהה את הפעולה בנפרד מהגדרת גרסת המודל, והדוגמה המתועדת ליצירת מודל מטקסט בוחרת גרסה מפורשת. שמרו את הגרסה והבקרות המדויקות כשמשווים מודלים, כדי שלא לבלבל בין שינוי בתיאור האובייקט לבין שינוי בתצורת היצירה.</p><p>גאומטריה ומראה פני השטח הם החלטות ייצור נפרדות. תהליך העבודה הבסיסי של היצרן מבדיל בין מודל ללא טקסטורות לבין פלט עם טקסטורות וחומרים לרינדור המבוסס על פיזיקה. בחרו את צורת המודל הדרושה לשלב הבא, ולאחר מכן בדקו גם את הרשת הגאומטרית וגם את קובצי החומרים הנלווים, אם ישנם. תמונת תצוגה מקדימה מועילה להתמצאות, ואילו המודל בפועל הוא התוצר הדרוש להרכבת סצנה ולעריכה נוספת.</p><p>בחנו את האובייקט שהושלם מכמה זוויות. הסתכלו על הצללית, ההפרדה בין החלקים, פרטים דקים, פתחים ומשטחים שבהם רכיבים נפגשים. לאביזר מסוגנן, השוו את הפרופורציות לתיאור העיצוב. לאובייקט דמוי מוצר, בדקו אילו פרטים מיוצגים בגאומטריה ואילו מופיעים רק בעיצוב פני השטח. זהו את המאפיין שדורש תיקון לפני שינוי הפרומפט או תמונת הייחוס.</p><p>היצירה מתבצעת כמשימה אסינכרונית. שמרו את זהות המשימה המקורית לאורך בדיקת הסטטוס ושמרו יחד את המודל שהושלם, התצוגה המקדימה וכל קובץ אחר שהוחזר. התוצאה המתועדת כוללת שדות פלט הקשורים למודל ותמונות מרונדרות. שמרו את הקבצים עצמם לשלב הייצור הבא, במקום להסתמך על קישור זמני לתוצאה או להתייחס לתצוגה המקדימה כתוצר 3D שלם.</p><p>ייבאו את המודל לעורך או לסביבת הצפייה המיועדים ובדקו שם את הכיוון, קנה המידה, החומרים והגאומטריה שלו. לאביזר סצנה, לרינדור בתקריב ולדמות מוכנה להנפשה יש צורכי גימור שונים. שמרו עותק עבודה לעריכות ואת מודל המקור שנוצר לצד התיאור ותמונות הייחוס שלו. כשנדרשת פעולה אחרת, כגון עבודה על טקסטורות או בניית שלד להנפשה, בחרו בה במכוון ובדקו את המודל שהתקבל כשלב נפרד.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">זמין ב-Ailoot · קלט ושיטות</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · 3D</b> <code>POST /v1/3d/generations</code></summary><dl class=\"method-capabilities\"><div><dt>סוגי קלט</dt><dd><code>text</code></dd></div><div><dt>סוגי פלט</dt><dd><code>model_3d</code>, <code>image</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>שדה</th><th>סוג</th><th>דרישה</th><th>ערכים ומגבלות</th><th>ברירת מחדל</th></tr></thead><tbody><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>tripo3d</div><div>תנאים: יש להשתמש בבורר המודלים של Ailoot.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">type</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>text_to_model, image_to_model, multiview_to_model, texture_model, animate_prerigcheck, animate_rig, animate_retarget, stylize_model, convert_model</div><div>תנאים: הדוגמה המלאה משתמשת ב־text_to_model; סוגי משימות אחרים מחייבים את הקלט המתועד והייעודי לכל סוג משימה.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">model_version</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>v2.0-20240919, v1.4-20240625, v2.5-20250123, v3.0-20250812, Turbo-v1.0-20250506</div><div>תנאים: יש לבחור גרסה המתועדת במפורש; הדוגמה הזו משתמשת ב־v3.0-20250812.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>תנאים: תארו את האובייקט שברצונכם ליצור.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>פרמטרים ומחזור חיים של השיטה</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>פרמטר</th><th>מפרט</th></tr></thead><tbody><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>content_type</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>application/json</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>required</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>model, type, model_version, prompt</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>optional</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span></td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>material_types</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>text</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>conditions</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>יש להשתמש בבורר המודלים של Ailoot., הדוגמה המלאה משתמשת ב־text_to_model; סוגי משימות אחרים מחייבים את הקלט המתועד והייעודי לכל סוג משימה., יש לבחור גרסה המתועדת במפורש; הדוגמה הזו משתמשת ב־v3.0-20250812., תארו את האובייקט שברצונכם ליצור.</td></tr></tbody></table></div><p>מחזור חיים: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/3d/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">תעריפים</h3><div class=\"card-result-process\" data-billing-basis><h5>אופן חישוב החיוב הסופי</h5><p class=\"note-s\">התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.</p><dl data-price-conditions><dt>מצב מהיר</dt><dd>לא צוין <span class=\"note-s\">כאשר נבחר מצב מהיר</span></dd><dt>מצב Flex</dt><dd>לא צוין <span class=\"note-s\">כאשר נבחר מצב flex</span></dd><dt>מאמץ חשיבה מרבי</dt><dd>לא צוין <span class=\"note-s\">כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>תעריפים משוערים להשוואה</h4><h4>מחירים לפי תצורה</h4><p class=\"note-s\">התאימו כל חיוב לתנאים המוצגים. השתמשו בתעריף אחד לכל קבוצה של תצורות חלופיות.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>תצורה</th><th>טבלת תעריפים</th><th>כמות חזויה</th><th>חיוב</th></tr></thead><tbody><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>תעריפי בסיס לטוקנים</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>תעריף בסיס</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>—</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>קלט · טוקני קלט · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>פלט · טוקני פלט · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · קריאה מהמטמון · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · כתיבה למטמון · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · כתיבה למטמון, 1 שעה · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>עלות יצירה משוערת</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>—</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>אומדן ליצירה אחת</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · עלות יצירה משוערת · אומדן להשוואה בלבד</span> <b>$1.35</b> <span class=\"price-unit\">אומדן לפני היצירה</span></div><p class=\"note-s\">אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.</p></td></tr></tbody></table></div></div><p class=\"note-s\">לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. <a href=\"/docs/he/billing/reserve/\">איך פועלים שריון הסכום והסדרת החיוב →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">דוגמאות לבקשות</h3><h4>Ailoot Ultra · 3D</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"אפשרויות קוד\"><button class=\"cg-tab\" id=\"model-code-2793-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2793-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · צרו פעם אחת ושמרו את אישור הפעולה</button><button class=\"cg-tab\" id=\"model-code-2793-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2793-panel-1\" aria-selected=\"false\" tabindex=\"-1\">קראו את המשימה המקורית</button><button class=\"cg-tab\" id=\"model-code-2793-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2793-panel-2\" aria-selected=\"false\" tabindex=\"-1\">שמרו כל נכס שהושלם ונמצא בבעלותכם</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"העתקת הקוד\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2793-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2793-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON&#39;\n{\n  &quot;model&quot;: &quot;tripo3d&quot;,\n  &quot;type&quot;: &quot;text_to_model&quot;,\n  &quot;prompt&quot;: &quot;a cute pig&quot;,\n  &quot;model_version&quot;: &quot;v3.0-20250812&quot;\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/3d/generations \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Create once; retain id, polling_url, original task identifiers and every header.\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2793-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2793-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_STATUS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nu=urljoin(&quot;https://api.ailoot.ai&quot;,r[&quot;polling_url&quot;])\np=urlsplit(u)\nif p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or p.username or p.password:\n    raise SystemExit(&quot;Unexpected returned polling URL; preserve the response&quot;)\nsubprocess.run([&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,u,&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;],&quot;-D&quot;,&quot;status-headers.txt&quot;,&quot;-o&quot;,&quot;status.json&quot;],check=True)\n# Read this same original polling_url again while pending.\n# Preserve unknown/result_pending_check; do not repeat creation.\nPY_STATUS\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2793-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2793-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&quot;status.json&quot;).read_text())\nroles={}\ndef visit(v,path=&quot;&quot;):\n    if isinstance(v,dict):\n        for k,x in v.items(): visit(x,path+&quot;/&quot;+k)\n    elif isinstance(v,list):\n        for i,x in enumerate(v): visit(x,path+&quot;/&quot;+str(i))\n    elif isinstance(v,str):\n        u=urljoin(&quot;https://api.ailoot.ai&quot;,v); p=urlsplit(u)\n        if p.scheme==&quot;https&quot; and p.netloc==&quot;api.ailoot.ai&quot; and not p.username and not p.password and p.path.startswith(&quot;/v1/media/assets/&quot;) and p.path.endswith(&quot;/content&quot;):\n            roles.setdefault(u,[]).append(path)\nvisit(r)\nif not roles: raise SystemExit(&quot;No completed owned assets; retain the original status&quot;)\nmanifest=[]\nfor i,(u,paths) in enumerate(roles.items()):\n    target=Path(f&quot;asset-{i}.bin&quot;)\n    subprocess.run([&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,u,&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;],&quot;-o&quot;,str(target)],check=True)\n    raw=target.read_bytes()\n    if not raw: raise SystemExit(&quot;Empty asset; retain original status and metadata&quot;)\n    ext=&quot;glb&quot; if raw[:4]==b&quot;glTF&quot; else &quot;png&quot; if raw[:8]==b&quot;\\x89PNG\\r\\n\\x1a\\n&quot; else &quot;jpg&quot; if raw[:3]==b&quot;\\xff\\xd8\\xff&quot; else &quot;webp&quot; if raw[:4]==b&quot;RIFF&quot; and raw[8:12]==b&quot;WEBP&quot; else &quot;mp4&quot; if raw[4:8]==b&quot;ftyp&quot; else &quot;bin&quot;\n    name=f&quot;asset-{i}.{ext}&quot;\n    if target.name!=name: target.rename(name)\n    manifest.append({&quot;file&quot;:name,&quot;response_paths&quot;:paths,&quot;bytes&quot;:len(raw)})\nPath(&quot;asset-manifest.json&quot;).write_text(json.dumps(manifest,indent=2))\nprint(&quot;Saved&quot;,len(manifest),&quot;unique owned assets; every response role retained&quot;)\nPY_ASSETS\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">קבלה ושמירה של תוצאות</h3><h4>Ailoot Ultra · 3D</h4><p class=\"note-s\">הורידו כל תמונה שהוחזרה או שמרו את תוכן ה-Base64 שלה</p><ul class=\"card-result-paths\"><li><code>GET /v1/3d/generations/{request_id}</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>שמירת כל התוצאות שהושלמו</h5><p class=\"note-s\">שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.</p><p class=\"note-s\">יש לשמור את התגובה המלאה ואת הכותרות, המזהים המקוריים, כל פלט ממשי ואת כל שדות השימוש והחיוב. יש לשמור כל נכס ייחודי שבבעלותכם ואת כל התפקידים המפנים אליו.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>כשצריך לבדוק את התגובה המקורית</h5><p class=\"note-s\">יש לשמור את מזהה המשימה הציבורי או מזהה הפעולה שהוחזרו ואת כל הכותרות. יש לקרוא רק את המשימה המקורית; unknown או result_pending_check אינם מתירים יצירה נוספת.</p></div><details class=\"card-about\" data-output-fields><summary>שדות התגובה</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>שדה</th><th>סוג</th></tr></thead><tbody><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">polling_url</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">provider_task_id</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">code</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>integer</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">data.task_id</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">data.status</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">data.progress</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>integer</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">data.output.*</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">data.result.*.url</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">data.result.*.type</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">data.thumbnail</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">כינויים</h3><h4>כינויים למודל</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=tripo3d&amp;route=Ultra&amp;caller=tripo3d&amp;fmt=3d\"><code>tripo3d</code></a></span></p><h4>כינויים לנתיבי שיטות</h4><p class=\"note-s\">השתמשו בנתיבי השיטות המוצגים למעלה.</p><h4>מזהי מודלים קשורים IDs</h4><p class=\"note-s\"><a href=\"#m=tripo3d&amp;route=Ultra&amp;caller=tripo3d&amp;fmt=3d\"><code>tripo3d</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "tripo3d",
        "fmt": "3d",
        "http": "POST",
        "path": "/v1/3d/generations",
        "request_model_id": "tripo3d",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|3d|/v1/3d/generations|tripo3d",
      "ordinal": 0,
      "rawMethod": {
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "completed_states": [
                "success"
              ],
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/3d/generations"
              },
              "failed_states": [
                "failed",
                "banned",
                "expired",
                "cancelled"
              ],
              "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
              "mode": "submit_once_poll_original",
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "pending_states": [
                "queued",
                "running"
              ],
              "state_field": "data.status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/3d/generations/{request_id}"
                }
              ],
              "unknown": "יש לשמור את מזהה המשימה הציבורי או מזהה הפעולה שהוחזרו ואת כל הכותרות. יש לקרוא רק את המשימה המקורית; unknown או result_pending_check אינם מתירים יצירה נוספת.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "יש לשמור את התגובה המלאה ואת הכותרות, המזהים המקוריים, כל פלט ממשי ואת כל שדות השימוש והחיוב. יש לשמור כל נכס ייחודי שבבעלותכם ואת כל התפקידים המפנים אליו.",
              "every_actual_output": true,
              "family": "3d",
              "fields": [
                {
                  "name": "id",
                  "type": "string"
                },
                {
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "name": "code",
                  "type": "integer"
                },
                {
                  "name": "data.task_id",
                  "type": "string"
                },
                {
                  "name": "data.status",
                  "type": "string"
                },
                {
                  "name": "data.progress",
                  "type": "integer"
                },
                {
                  "name": "data.output.*",
                  "type": "string"
                },
                {
                  "name": "data.result.*.url",
                  "type": "string"
                },
                {
                  "name": "data.result.*.type",
                  "type": "string"
                },
                {
                  "name": "data.thumbnail",
                  "type": "string"
                }
              ],
              "formats": "Inspect actual asset bytes and preserve declared metadata; preview type labels do not determine file extensions.",
              "maximum_outputs": null
            },
            "parameters": [
              {
                "conditions": "יש להשתמש בבורר המודלים של Ailoot.",
                "default_known": false,
                "enum": [
                  "tripo3d"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "הדוגמה המלאה משתמשת ב־text_to_model; סוגי משימות אחרים מחייבים את הקלט המתועד והייעודי לכל סוג משימה.",
                "default_known": false,
                "enum": [
                  "text_to_model",
                  "image_to_model",
                  "multiview_to_model",
                  "texture_model",
                  "animate_prerigcheck",
                  "animate_rig",
                  "animate_retarget",
                  "stylize_model",
                  "convert_model"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "type",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "יש לבחור גרסה המתועדת במפורש; הדוגמה הזו משתמשת ב־v3.0-20250812.",
                "default_known": false,
                "enum": [
                  "v2.0-20240919",
                  "v1.4-20240625",
                  "v2.5-20250123",
                  "v3.0-20250812",
                  "Turbo-v1.0-20250506"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model_version",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "תארו את האובייקט שברצונכם ליצור.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "prompt",
                "required": true,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "model": {
                  "enum": [
                    "tripo3d"
                  ],
                  "type": "string"
                },
                "model_version": {
                  "enum": [
                    "v2.0-20240919",
                    "v1.4-20240625",
                    "v2.5-20250123",
                    "v3.0-20250812",
                    "Turbo-v1.0-20250506"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "type": {
                  "enum": [
                    "text_to_model",
                    "image_to_model",
                    "multiview_to_model",
                    "texture_model",
                    "animate_prerigcheck",
                    "animate_rig",
                    "animate_retarget",
                    "stylize_model",
                    "convert_model"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "type",
                "model_version",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "tripo3d",
                "model_version": "v3.0-20250812",
                "prompt": "a cute pig",
                "type": "text_to_model"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "יש להשתמש בבורר המודלים של Ailoot.",
              "הדוגמה המלאה משתמשת ב־text_to_model; סוגי משימות אחרים מחייבים את הקלט המתועד והייעודי לכל סוג משימה.",
              "יש לבחור גרסה המתועדת במפורש; הדוגמה הזו משתמשת ב־v3.0-20250812.",
              "תארו את האובייקט שברצונכם ליצור."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "type",
              "model_version",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "completed_states": [
              "success"
            ],
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/3d/generations"
            },
            "failed_states": [
              "failed",
              "banned",
              "expired",
              "cancelled"
            ],
            "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
            "mode": "submit_once_poll_original",
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "pending_states": [
              "queued",
              "running"
            ],
            "state_field": "data.status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/3d/generations/{request_id}"
              }
            ],
            "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/3d/generations"
          },
          "method_aliases": [],
          "output": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "every_actual_output": true,
            "family": "3d",
            "fields": [
              {
                "name": "id",
                "type": "string"
              },
              {
                "name": "polling_url",
                "type": "string"
              },
              {
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "name": "code",
                "type": "integer"
              },
              {
                "name": "data.task_id",
                "type": "string"
              },
              {
                "name": "data.status",
                "type": "string"
              },
              {
                "name": "data.progress",
                "type": "integer"
              },
              {
                "name": "data.output.*",
                "type": "string"
              },
              {
                "name": "data.result.*.url",
                "type": "string"
              },
              {
                "name": "data.result.*.type",
                "type": "string"
              },
              {
                "name": "data.thumbnail",
                "type": "string"
              }
            ],
            "formats": "Inspect actual asset bytes and preserve declared metadata; preview type labels do not determine file extensions.",
            "maximum_outputs": null
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "עלות יצירה משוערת",
            "units": [
              {
                "amount": "1.35",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.35",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"tripo3d\",\n  \"type\": \"text_to_model\",\n  \"prompt\": \"a cute pig\",\n  \"model_version\": \"v3.0-20250812\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/3d/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Create once; retain id, polling_url, original task identifiers and every header.\n",
            "label": "curl · create once and retain receipt",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_STATUS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\nu=urljoin(\"https://api.ailoot.ai\",r[\"polling_url\"])\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or p.username or p.password:\n    raise SystemExit(\"Unexpected returned polling URL; preserve the response\")\nsubprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-D\",\"status-headers.txt\",\"-o\",\"status.json\"],check=True)\n# Read this same original polling_url again while pending.\n# Preserve unknown/result_pending_check; do not repeat creation.\nPY_STATUS\n",
            "label": "Read the original task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nroles={}\ndef visit(v,path=\"\"):\n    if isinstance(v,dict):\n        for k,x in v.items(): visit(x,path+\"/\"+k)\n    elif isinstance(v,list):\n        for i,x in enumerate(v): visit(x,path+\"/\"+str(i))\n    elif isinstance(v,str):\n        u=urljoin(\"https://api.ailoot.ai\",v); p=urlsplit(u)\n        if p.scheme==\"https\" and p.netloc==\"api.ailoot.ai\" and not p.username and not p.password and p.path.startswith(\"/v1/media/assets/\") and p.path.endswith(\"/content\"):\n            roles.setdefault(u,[]).append(path)\nvisit(r)\nif not roles: raise SystemExit(\"No completed owned assets; retain the original status\")\nmanifest=[]\nfor i,(u,paths) in enumerate(roles.items()):\n    target=Path(f\"asset-{i}.bin\")\n    subprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-o\",str(target)],check=True)\n    raw=target.read_bytes()\n    if not raw: raise SystemExit(\"Empty asset; retain original status and metadata\")\n    ext=\"glb\" if raw[:4]==b\"glTF\" else \"png\" if raw[:8]==b\"\\x89PNG\\r\\n\\x1a\\n\" else \"jpg\" if raw[:3]==b\"\\xff\\xd8\\xff\" else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"mp4\" if raw[4:8]==b\"ftyp\" else \"bin\"\n    name=f\"asset-{i}.{ext}\"\n    if target.name!=name: target.rename(name)\n    manifest.append({\"file\":name,\"response_paths\":paths,\"bytes\":len(raw)})\nPath(\"asset-manifest.json\").write_text(json.dumps(manifest,indent=2))\nprint(\"Saved\",len(manifest),\"unique owned assets; every response role retained\")\nPY_ASSETS\n",
            "label": "Save every completed owned asset",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "3d",
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "3D",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": null,
        "output": [
          "model_3d",
          "image"
        ],
        "path": "/v1/3d/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.35",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.35",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "tripo3d",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/3d/generations/{request_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "1.35",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.35",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "tripo3d",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "1121b6f79f008dec1bc086016497401196da434b495681988b718d1388777326",
    "input_html_sha256": "bf6db8775e23b5690469aac149cafb2bcacd123a33587668f08793917ecf074f",
    "private_audit_sha256": "ad3254063e241b7ef7944c11018d9eee1e4adfe326bd69b62bc56453dcd1fdb4",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/he/tripo3d/",
    "description": "Tripo יוצר מודל תלת-ממדי (3D) מתוך תיאור כתוב של אובייקט. תהליכי העבודה הרחבים יותר של היצרן מפרידים בין גאומטריה, טקסטורות ועיבוד מודל מאוחר יותר; בדקו את הרשת הגאומטרית שהושלמה מכמה זוויות ושמרו את הקבצים בפועל עבור הסצנה או העורך המיועדים.",
    "locale": "he",
    "md_url": "https://ailoot.ai/models/he/tripo3d/index.md",
    "title": "Tripo: 3D Generation — Ailoot",
    "url": "https://ailoot.ai/models/he/tripo3d/"
  },
  "rawModel": {
    "about": "Tripo יוצר מודלים תלת-ממדיים (3D) מתוך תיאור או תמונת ייחוס. תהליכי העבודה שלו מפרידים בין יצירת אובייקט לבין שלבים מאוחרים יותר כגון הוספת טקסטורות, בניית שלד להנפשה והמרה. התחילו בזיהוי המודל המיועד והפעולה שמפיקה אותו: רשת גאומטרית סטטית לסצנה, אובייקט עם טקסטורות לרינדור או מודל שיעבור הכנה נוספת בעורך 3D.\n\nבתיאור ליצירת מודל מטקסט, תארו את צורת האובייקט ואת החלקים החשובים שלו. אפשר להגדיר פנס קטן לפי הגוף, הידית, הפתחים והפרופורציות שלו; יצור לפי הצללית, הגפיים והתנוחה. ציינו את החומר או את העיצוב החזותי כשהם משפיעים על התוצאה. השאירו את התיאור ממוקד באובייקט עצמו, כדי שיהיה אפשר להעריך את הגאומטריה שנוצרה מול עיצוב ברור.\n\nלתהליך של היצרן המבוסס על תמונות ייחוס, הכינו תמונות שמראות את קווי המתאר של הנושא ואת המאפיינים המבדילים שלו. כמה מבטים צריכים לתאר את אותו אובייקט עם פרופורציות ואביזרים עקביים. בדקו לאחר היצירה חלקים שמוסתרים בתמונת הייחוס, משום שמבט קדמי משכנע אינו מוכיח שהגב, הצד התחתון או החיבורים בין רכיבים תואמים את העיצוב המיועד.\n\nשמרו את גרסת המודל שנבחרה לצד הבקשה. ממשק היצירה של Tripo מזהה את הפעולה בנפרד מהגדרת גרסת המודל, והדוגמה המתועדת ליצירת מודל מטקסט בוחרת גרסה מפורשת. שמרו את הגרסה והבקרות המדויקות כשמשווים מודלים, כדי שלא לבלבל בין שינוי בתיאור האובייקט לבין שינוי בתצורת היצירה.\n\nגאומטריה ומראה פני השטח הם החלטות ייצור נפרדות. תהליך העבודה הבסיסי של היצרן מבדיל בין מודל ללא טקסטורות לבין פלט עם טקסטורות וחומרים לרינדור המבוסס על פיזיקה. בחרו את צורת המודל הדרושה לשלב הבא, ולאחר מכן בדקו גם את הרשת הגאומטרית וגם את קובצי החומרים הנלווים, אם ישנם. תמונת תצוגה מקדימה מועילה להתמצאות, ואילו המודל בפועל הוא התוצר הדרוש להרכבת סצנה ולעריכה נוספת.\n\nבחנו את האובייקט שהושלם מכמה זוויות. הסתכלו על הצללית, ההפרדה בין החלקים, פרטים דקים, פתחים ומשטחים שבהם רכיבים נפגשים. לאביזר מסוגנן, השוו את הפרופורציות לתיאור העיצוב. לאובייקט דמוי מוצר, בדקו אילו פרטים מיוצגים בגאומטריה ואילו מופיעים רק בעיצוב פני השטח. זהו את המאפיין שדורש תיקון לפני שינוי הפרומפט או תמונת הייחוס.\n\nהיצירה מתבצעת כמשימה אסינכרונית. שמרו את זהות המשימה המקורית לאורך בדיקת הסטטוס ושמרו יחד את המודל שהושלם, התצוגה המקדימה וכל קובץ אחר שהוחזר. התוצאה המתועדת כוללת שדות פלט הקשורים למודל ותמונות מרונדרות. שמרו את הקבצים עצמם לשלב הייצור הבא, במקום להסתמך על קישור זמני לתוצאה או להתייחס לתצוגה המקדימה כתוצר 3D שלם.\n\nייבאו את המודל לעורך או לסביבת הצפייה המיועדים ובדקו שם את הכיוון, קנה המידה, החומרים והגאומטריה שלו. לאביזר סצנה, לרינדור בתקריב ולדמות מוכנה להנפשה יש צורכי גימור שונים. שמרו עותק עבודה לעריכות ואת מודל המקור שנוצר לצד התיאור ותמונות הייחוס שלו. כשנדרשת פעולה אחרת, כגון עבודה על טקסטורות או בניית שלד להנפשה, בחרו בה במכוון ובדקו את המודל שהתקבל כשלב נפרד.",
    "about_sha256": "3d88be548916d6dfe1ba3f7f45529658d642c81e978ab85ab1e500c4038154fc",
    "alias_of": null,
    "aliases": [],
    "author": "Tripo",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "3d"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "1.35",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.35",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "התמחור המלא של התצורה מופיע בפרטים."
      }
    ],
    "ctx": null,
    "display_name": "Tripo: 3D Generation",
    "formats": [
      "3d"
    ],
    "id": "tripo3d",
    "input": [
      "text"
    ],
    "kind": "3d",
    "locale": "en",
    "max_out": null,
    "methods": [
      {
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "completed_states": [
                "success"
              ],
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/3d/generations"
              },
              "failed_states": [
                "failed",
                "banned",
                "expired",
                "cancelled"
              ],
              "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
              "mode": "submit_once_poll_original",
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "pending_states": [
                "queued",
                "running"
              ],
              "state_field": "data.status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/3d/generations/{request_id}"
                }
              ],
              "unknown": "יש לשמור את מזהה המשימה הציבורי או מזהה הפעולה שהוחזרו ואת כל הכותרות. יש לקרוא רק את המשימה המקורית; unknown או result_pending_check אינם מתירים יצירה נוספת.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "יש לשמור את התגובה המלאה ואת הכותרות, המזהים המקוריים, כל פלט ממשי ואת כל שדות השימוש והחיוב. יש לשמור כל נכס ייחודי שבבעלותכם ואת כל התפקידים המפנים אליו.",
              "every_actual_output": true,
              "family": "3d",
              "fields": [
                {
                  "name": "id",
                  "type": "string"
                },
                {
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "name": "code",
                  "type": "integer"
                },
                {
                  "name": "data.task_id",
                  "type": "string"
                },
                {
                  "name": "data.status",
                  "type": "string"
                },
                {
                  "name": "data.progress",
                  "type": "integer"
                },
                {
                  "name": "data.output.*",
                  "type": "string"
                },
                {
                  "name": "data.result.*.url",
                  "type": "string"
                },
                {
                  "name": "data.result.*.type",
                  "type": "string"
                },
                {
                  "name": "data.thumbnail",
                  "type": "string"
                }
              ],
              "formats": "Inspect actual asset bytes and preserve declared metadata; preview type labels do not determine file extensions.",
              "maximum_outputs": null
            },
            "parameters": [
              {
                "conditions": "יש להשתמש בבורר המודלים של Ailoot.",
                "default_known": false,
                "enum": [
                  "tripo3d"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "הדוגמה המלאה משתמשת ב־text_to_model; סוגי משימות אחרים מחייבים את הקלט המתועד והייעודי לכל סוג משימה.",
                "default_known": false,
                "enum": [
                  "text_to_model",
                  "image_to_model",
                  "multiview_to_model",
                  "texture_model",
                  "animate_prerigcheck",
                  "animate_rig",
                  "animate_retarget",
                  "stylize_model",
                  "convert_model"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "type",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "יש לבחור גרסה המתועדת במפורש; הדוגמה הזו משתמשת ב־v3.0-20250812.",
                "default_known": false,
                "enum": [
                  "v2.0-20240919",
                  "v1.4-20240625",
                  "v2.5-20250123",
                  "v3.0-20250812",
                  "Turbo-v1.0-20250506"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model_version",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "תארו את האובייקט שברצונכם ליצור.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "prompt",
                "required": true,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "model": {
                  "enum": [
                    "tripo3d"
                  ],
                  "type": "string"
                },
                "model_version": {
                  "enum": [
                    "v2.0-20240919",
                    "v1.4-20240625",
                    "v2.5-20250123",
                    "v3.0-20250812",
                    "Turbo-v1.0-20250506"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "type": {
                  "enum": [
                    "text_to_model",
                    "image_to_model",
                    "multiview_to_model",
                    "texture_model",
                    "animate_prerigcheck",
                    "animate_rig",
                    "animate_retarget",
                    "stylize_model",
                    "convert_model"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "type",
                "model_version",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "tripo3d",
                "model_version": "v3.0-20250812",
                "prompt": "a cute pig",
                "type": "text_to_model"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "יש להשתמש בבורר המודלים של Ailoot.",
              "הדוגמה המלאה משתמשת ב־text_to_model; סוגי משימות אחרים מחייבים את הקלט המתועד והייעודי לכל סוג משימה.",
              "יש לבחור גרסה המתועדת במפורש; הדוגמה הזו משתמשת ב־v3.0-20250812.",
              "תארו את האובייקט שברצונכם ליצור."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "type",
              "model_version",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "completed_states": [
              "success"
            ],
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/3d/generations"
            },
            "failed_states": [
              "failed",
              "banned",
              "expired",
              "cancelled"
            ],
            "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
            "mode": "submit_once_poll_original",
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "pending_states": [
              "queued",
              "running"
            ],
            "state_field": "data.status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/3d/generations/{request_id}"
              }
            ],
            "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/3d/generations"
          },
          "method_aliases": [],
          "output": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "every_actual_output": true,
            "family": "3d",
            "fields": [
              {
                "name": "id",
                "type": "string"
              },
              {
                "name": "polling_url",
                "type": "string"
              },
              {
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "name": "code",
                "type": "integer"
              },
              {
                "name": "data.task_id",
                "type": "string"
              },
              {
                "name": "data.status",
                "type": "string"
              },
              {
                "name": "data.progress",
                "type": "integer"
              },
              {
                "name": "data.output.*",
                "type": "string"
              },
              {
                "name": "data.result.*.url",
                "type": "string"
              },
              {
                "name": "data.result.*.type",
                "type": "string"
              },
              {
                "name": "data.thumbnail",
                "type": "string"
              }
            ],
            "formats": "Inspect actual asset bytes and preserve declared metadata; preview type labels do not determine file extensions.",
            "maximum_outputs": null
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "עלות יצירה משוערת",
            "units": [
              {
                "amount": "1.35",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.35",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"tripo3d\",\n  \"type\": \"text_to_model\",\n  \"prompt\": \"a cute pig\",\n  \"model_version\": \"v3.0-20250812\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/3d/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Create once; retain id, polling_url, original task identifiers and every header.\n",
            "label": "curl · create once and retain receipt",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_STATUS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\nu=urljoin(\"https://api.ailoot.ai\",r[\"polling_url\"])\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or p.username or p.password:\n    raise SystemExit(\"Unexpected returned polling URL; preserve the response\")\nsubprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-D\",\"status-headers.txt\",\"-o\",\"status.json\"],check=True)\n# Read this same original polling_url again while pending.\n# Preserve unknown/result_pending_check; do not repeat creation.\nPY_STATUS\n",
            "label": "Read the original task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nroles={}\ndef visit(v,path=\"\"):\n    if isinstance(v,dict):\n        for k,x in v.items(): visit(x,path+\"/\"+k)\n    elif isinstance(v,list):\n        for i,x in enumerate(v): visit(x,path+\"/\"+str(i))\n    elif isinstance(v,str):\n        u=urljoin(\"https://api.ailoot.ai\",v); p=urlsplit(u)\n        if p.scheme==\"https\" and p.netloc==\"api.ailoot.ai\" and not p.username and not p.password and p.path.startswith(\"/v1/media/assets/\") and p.path.endswith(\"/content\"):\n            roles.setdefault(u,[]).append(path)\nvisit(r)\nif not roles: raise SystemExit(\"No completed owned assets; retain the original status\")\nmanifest=[]\nfor i,(u,paths) in enumerate(roles.items()):\n    target=Path(f\"asset-{i}.bin\")\n    subprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-o\",str(target)],check=True)\n    raw=target.read_bytes()\n    if not raw: raise SystemExit(\"Empty asset; retain original status and metadata\")\n    ext=\"glb\" if raw[:4]==b\"glTF\" else \"png\" if raw[:8]==b\"\\x89PNG\\r\\n\\x1a\\n\" else \"jpg\" if raw[:3]==b\"\\xff\\xd8\\xff\" else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"mp4\" if raw[4:8]==b\"ftyp\" else \"bin\"\n    name=f\"asset-{i}.{ext}\"\n    if target.name!=name: target.rename(name)\n    manifest.append({\"file\":name,\"response_paths\":paths,\"bytes\":len(raw)})\nPath(\"asset-manifest.json\").write_text(json.dumps(manifest,indent=2))\nprint(\"Saved\",len(manifest),\"unique owned assets; every response role retained\")\nPY_ASSETS\n",
            "label": "Save every completed owned asset",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "3d",
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "3D",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": null,
        "output": [
          "model_3d",
          "image"
        ],
        "path": "/v1/3d/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.35",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.35",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "tripo3d",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/3d/generations/{request_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "1.35",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.35",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "tripo3d",
        "request_model_id": "tripo3d",
        "route_label": "Ultra"
      }
    ],
    "name": "Tripo: 3D Generation",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 1.35,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 1.35,
      "varies": false
    },
    "short": "Tripo יוצר מודל תלת-ממדי (3D) מתוך תיאור כתוב של אובייקט. תהליכי העבודה הרחבים יותר של היצרן מפרידים בין גאומטריה, טקסטורות ועיבוד מודל מאוחר יותר; בדקו את הרשת הגאומטרית שהושלמה מכמה זוויות ושמרו את הקבצים בפועל עבור הסצנה או העורך המיועדים.",
    "short_sha256": "0e9752112cce15b72a6c69cb4fa8f88d6c7680bd4fa7b5979e885dd64f1ebe71"
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Tripo יוצר מודל תלת-ממדי (3D) מתוך תיאור כתוב של אובייקט. תהליכי העבודה הרחבים יותר של היצרן מפרידים בין גאומטריה, טקסטורות ועיבוד מודל מאוחר יותר; בדקו את הרשת הגאומטרית שהושלמה מכמה זוויות ושמרו את הקבצים בפועל עבור הסצנה או העורך המיועדים.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "3c85944f6df4c3b41b2662fc8498f47bcbf893dbccff50486730dc7839df4ce4",
    "renderer_sha256": "c36bd89b8b0dac234af52bf68530df83530b908ec7a9f2e1de2483fe236ae910"
  },
  "sourceRevision": "c8c3489e44ccdfac0c18419c23a4b9357fface568cc1eb744d55bc007ce41cb8"
}
