היה חסר לי פיצ'ר בבלנדר, כתבתי אותו

מסתבר שלהציע שיפורי קוד לתוכנה האהובה עלי זה לא כזה קשה

קצת על בלנדר

בלנדר היא תוכנה חופשית בקוד פתוח לגרפיקה תלת מימדית. יוצרים בה אנימציה, הדמיות, אפקטים לסרטים, סרטים שלמים ועוד. התוכנה נוצרה על ידי המתכנת ההולנדי טון רוזנדל בשנות ה-90 עבור חברת אנימציה שנכשלה. ב-2002, כשהחברה נסגרה, הוא גייס כספים במימון המונים לקניית הזכויות ופרסום התוכנה כקוד פתוח. הקמפיין הצליח, והעולם קיבל את בלנדר ואת קוד המקור שלה. משם הקהילה צמחה ויותר ויותר אמנים ומפתחים אימצו אותה, עד לרמה שבה היא עומדת כיום ראש בראש עם תוכנות אנימציה תלת מימדית מסחריות כמו מאיה, מקס וסינמה.


קצת עלי

מצאתי את בלנדר ואת תחום האנימציה התלת מימדית כולו ב-2015, גיליתי שאני אוהב את זה ממש, שיחקתי עם זה כמה שנים לא ברצינות, ואז כן ברצינות, ואז מצאתי עבודה כאמן תלת מימד בחברת שתלים דנטליים. בהמשך הלכתי ללמוד במכללה הישראלית לאנימציה, וכיום אני עובד כמפתח בחברת הדמיות עיצוב פנים. משתמש בבלנדר ומקס על בסיס יומי וכותב קוד פייתון לאוטומציה של תהליכים שונים בסביבות התלת מימד האלה.


למה זה בבלוג של מעקף

הרבה דברים בבלנדר עובדים כיום באמצעות נוודים (Nodes). אחת הפעולות הנפוצות שעושים עם הנוודים האלה היא לחבר שניים. שני מספרים? ctrl+shift+drag מאחד לשני, וזה מחבר אותם. שני צבעים? אותו דבר, רק עושה מיקס ביניהם. לפני כמה שנים נוסף סוג חדש של נווד שהאאוטפוט שלו הוא בוליאן, ודרכים לשלב ביניהם עם שערים לוגיים כמו AND, OR, NOT וכו'.

אני, ואולי עוד הרבה יוזרים, עשינו אינטואיטיבית את אותו הקיצור שהיה, ctrl+shift+drag, רק שעל בוליאנז זה לא עבד. אותי באופן אישי זה תסכל, אבל לא היה מה לעשות.


ואז כן היה מה לעשות

לפני שלוש שנים בערך התחלתי ללמוד פייתון. אחת הסיבות שבחרתי בפייתון הייתה שיש בבלנדר API שמאפשר לעשות כל פעולה שעושים בתוכנה באמצעות ספריית הפייתון שלה. התחלתי לתהות אם הפיצ’ר הקטן הזה שהייתי רוצה שייכנס לבלנדר הוא אולי משהו שאני יכול ליצור בעצמי.

התבשלתי עם הרעיון הזה הרבה זמן. בסופו של דבר ניסיתי, ולא הצלחתי. הקוד היה כתוב בצורה שלא הייתה ברורה לי מספיק, ונטשתי את זה.

אבל זה המשיך להציק לי, ובסופו של דבר, יותר משנה מאוחר יותר, ניסיתי שוב. הוספתי המון פרינטים בכל מקום עד שהבנתי מה קורא למה, ומה אני צריך לשנות כדי שהתוכנה תעשה מה שאני רוצה. זה עבד.

הלכתי לגיטהאב של בלנדר לראות מה הצעדים להגשת הצעה, גם הם היו כתובים בצורה מבלבלת, עזבתי את זה.

זמן לא ארוך אחר כך, שמעתי את הפרק של אוריאל בפודקאסט “עושים תוכנה” והוא נתן לי את המוטיבציה לנסות שוב.

הצטרפתי לדיסקורד מעקף, שאלתי אם מישהו מכיר את הנורמות בקהילת הפיתוח של בלנדר, אוריאל ענה לי ממש ממש מהר והראה לי שזה בכלל לא הגיטהאב שלהם, אלא יש להם שרת gitea מיוחד משלהם, ג’יפיטי עזר לי להבין ש-gitea זו פשוט פלטפורמה דומה לגיטהאב שהיא self-hostable.

נרשמתי לזה, עשיתי PR. החבר’ה ענו די מהר, היו להם הערות, עשיתי כמה תיקונים, היו עוד הערות, ככה כמה פעמים, ובסופו של דבר הפיצ’ר שלי נכנס אתמול, ויופיע בגרסה הבאה של בלנדר.

מעבר לתחושת “אני עשיתי את זה בזכותי זה שם” שהיא נהדרת בפני עצמה, זה גם באמת משהו שרציתי שיהיה אפשר לעשות בבלנדר הרבה זמן, ואני מאוד מרוצה וללא ספק אעשה את זה שוב. אז תודה לאוריאל ולקהילה הזאת על הדחיפה! 🙌

למי שרוצה לנסות את בלנדר

אפשר להוריד אותה בחינם כאן, ואם מעולם לא נגעתם בתוכנת תלת מימד, אני ממליץ על סדרת הסרטונים הזאת, זה מכסה את רוב הבייסיקס. בהצלחה!