[{"id":"117331948008853690","created_at":"2026-09-25T13:37:24.959Z","in_reply_to_id":"117331947991688269","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117331948008853690","url":"https://uwyn.net/@glaforge/117331948008853690","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eFor more information and details, I explained how to use Google Gemma\u0026#39;s diffusion model with @LangChain4j in \u003ca href=\"https://uwyn.net/tags/Java\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eJava\u003c/span\u003e\u003c/a\u003e here: \u003c/p\u003e\u003cp\u003e\u003ca href=\"https://glaforge.dev/posts/2026/09/24/multimodal-decision-models-with-diffusiongemma-jev-and-langchain4j/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003eglaforge.dev/posts/2026/09/24/\u003c/span\u003e\u003cspan class=\"invisible\"\u003emultimodal-decision-models-with-diffusiongemma-jev-and-langchain4j/\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[{"name":"java","url":"https://uwyn.net/tags/java"}],"emojis":[],"card":{"url":"https://glaforge.dev/posts/2026/09/24/multimodal-decision-models-with-diffusiongemma-jev-and-langchain4j/","title":"Multimodal Decision Models: From DiffusionGemma and Jev to LangChain4j","description":"How I adapted Matt Mastracci's djev and Daniel Lee's Cloud Run deployment to run multimodal visual classification on Blackwell GPUs, and proposed multimodal extensions to LangChain4j's StructuredDecisionModel.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":1376,"height":768,"image":null,"image_description":"","embed_url":"","blurhash":"UFO:^W~oI9x[%#8^-mS$EO-pMxWES$IVo~Vs","published_at":null,"authors":[]},"poll":null},{"id":"117331947991688269","created_at":"2026-09-25T13:37:24.697Z","in_reply_to_id":"117331947909356147","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117331947991688269","url":"https://uwyn.net/@glaforge/117331947991688269","replies_count":1,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eOnce you\u0026#39;ve picked up a picture or uploaded your own, the \u003ca href=\"https://uwyn.net/tags/DiffusionGemma\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eDiffusionGemma\u003c/span\u003e\u003c/a\u003e model running on \u003ca href=\"https://uwyn.net/tags/NVidia\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eNVidia\u003c/span\u003e\u003c/a\u003e GPUs will tell you if the photo contains a cat, what kind of fur pattern it has, and how fluffy it is:\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[{"id":"117331947979602956","type":"image","url":"https://uwyn.net/system/media_attachments/files/117/331/947/979/602/956/original/10c7325adfc5d400.png","preview_url":"https://uwyn.net/system/media_attachments/files/117/331/947/979/602/956/small/10c7325adfc5d400.png","remote_url":null,"preview_remote_url":null,"text_url":null,"meta":{"original":{"width":958,"height":959,"size":"958x959","aspect":0.9989572471324296},"small":{"width":479,"height":480,"size":"479x480","aspect":0.9979166666666667}},"description":null,"blurhash":"U2Sr[rVV9G^+W58zt3-:PBabwNxb*JE0wLt7"}],"mentions":[],"tags":[{"name":"diffusiongemma","url":"https://uwyn.net/tags/diffusiongemma"},{"name":"nvidia","url":"https://uwyn.net/tags/nvidia"}],"emojis":[],"card":null,"poll":null},{"id":"117331947909356147","created_at":"2026-09-25T13:37:23.443Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117331947909356147","url":"https://uwyn.net/@glaforge/117331947909356147","replies_count":1,"reblogs_count":0,"favourites_count":1,"edited_at":null,"content":"\u003cp\u003eIs it a 😺 or not?\u003c/p\u003e\u003cp\u003eSystem 1 models like Typesafe AI\u0026#39;s \u003ca href=\"https://uwyn.net/tags/jev\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003ejev\u003c/span\u003e\u003c/a\u003e model classify, evaluate truthiness, or give a score.\u003c/p\u003e\u003cp\u003eI built an app in \u003ca href=\"https://uwyn.net/tags/java\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003ejava\u003c/span\u003e\u003c/a\u003e with \u003ca href=\"https://uwyn.net/tags/micronautfw\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003emicronautfw\u003c/span\u003e\u003c/a\u003e \u0026amp; \u003ca href=\"https://uwyn.net/tags/langchain4j\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003elangchain4j\u003c/span\u003e\u003c/a\u003e hosted on \u003ca href=\"https://uwyn.net/tags/CloudRun\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eCloudRun\u003c/span\u003e\u003c/a\u003e to discover if a picture depicts a cat or not, thanks to \u003ca href=\"https://uwyn.net/tags/DiffusionGemma\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eDiffusionGemma\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://purrfect-match.cloud.run/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003epurrfect-match.cloud.run/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[{"id":"117331947897044738","type":"image","url":"https://uwyn.net/system/media_attachments/files/117/331/947/897/044/738/original/86f758e0e64a1684.png","preview_url":"https://uwyn.net/system/media_attachments/files/117/331/947/897/044/738/small/86f758e0e64a1684.png","remote_url":null,"preview_remote_url":null,"text_url":null,"meta":{"original":{"width":960,"height":705,"size":"960x705","aspect":1.3617021276595744},"small":{"width":560,"height":411,"size":"560x411","aspect":1.362530413625304}},"description":null,"blurhash":"UYQ]i~aLt7ofsmaeWBoL~qoJRjjZD$jbayae"}],"mentions":[],"tags":[{"name":"jev","url":"https://uwyn.net/tags/jev"},{"name":"java","url":"https://uwyn.net/tags/java"},{"name":"micronautfw","url":"https://uwyn.net/tags/micronautfw"},{"name":"langchain4j","url":"https://uwyn.net/tags/langchain4j"},{"name":"cloudrun","url":"https://uwyn.net/tags/cloudrun"},{"name":"diffusiongemma","url":"https://uwyn.net/tags/diffusiongemma"}],"emojis":[],"card":{"url":"https://purrfect-match.cloud.run/","title":"🐱 Purrfect Match - DiffusionGemma Cat Classifier","description":"","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":0,"height":0,"image":null,"image_description":"","embed_url":"","blurhash":null,"published_at":null,"authors":[]},"poll":null},{"id":"117327760719170783","created_at":"2026-09-24T19:52:31.988Z","in_reply_to_id":"117327760703607346","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117327760719170783","url":"https://uwyn.net/@glaforge/117327760719170783","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eFull story, architecture \u0026amp; code:\u003cbr /\u003e👉 \u003ca href=\"https://glaforge.dev/posts/2026/09/24/multimodal-decision-models-with-diffusiongemma-jev-and-langchain4j/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003eglaforge.dev/posts/2026/09/24/\u003c/span\u003e\u003cspan class=\"invisible\"\u003emultimodal-decision-models-with-diffusiongemma-jev-and-langchain4j/\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eKudos to @mmastrac, @kweinmeister \u0026amp; Daniel Lee!\u003c/p\u003e\u003cp\u003eWhere could you use instant decision models instead of heavy LLMs? Let me know!\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":{"url":"https://glaforge.dev/posts/2026/09/24/multimodal-decision-models-with-diffusiongemma-jev-and-langchain4j/","title":"Multimodal Decision Models: From DiffusionGemma and Jev to LangChain4j","description":"How I adapted Matt Mastracci's djev and Daniel Lee's Cloud Run deployment to run multimodal visual classification on Blackwell GPUs, and proposed multimodal extensions to LangChain4j's StructuredDecisionModel.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":1376,"height":768,"image":null,"image_description":"","embed_url":"","blurhash":"UFO:^W~oI9x[%#8^-mS$EO-pMxWES$IVo~Vs","published_at":null,"authors":[]},"poll":null},{"id":"117327760703607346","created_at":"2026-09-24T19:52:31.751Z","in_reply_to_id":"117327760687397792","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117327760703607346","url":"https://uwyn.net/@glaforge/117327760703607346","replies_count":1,"reblogs_count":0,"favourites_count":1,"edited_at":"2026-09-24T20:12:08.489Z","content":"\u003cp\u003eBringing it to \u003ca href=\"https://uwyn.net/tags/Java\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eJava\u003c/span\u003e\u003c/a\u003e with \u003ca href=\"https://uwyn.net/tags/langchain4J\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003elangchain4J\u003c/span\u003e\u003c/a\u003e \u003c/p\u003e\u003cp\u003eLangChain4j was adding StructuredDecisionModel for text. I proposed \u0026amp; implemented native multimodal support.\u003c/p\u003e\u003cp\u003eIn Java, pass ImageContent with typed Question models (Choice, Noul, Score) for clean, zero-shot visual classification!\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[{"name":"java","url":"https://uwyn.net/tags/java"},{"name":"langchain4j","url":"https://uwyn.net/tags/langchain4j"}],"emojis":[],"card":null,"poll":null},{"id":"117327760687397792","created_at":"2026-09-24T19:52:31.503Z","in_reply_to_id":"117327760672638387","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117327760687397792","url":"https://uwyn.net/@glaforge/117327760687397792","replies_count":1,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eWhat about images?\u003c/p\u003e\u003cp\u003eDiffusionGemma includes a SigLIP vision tower. I turned vision back on in Cloud Run and sent a photo of my cat:\u003c/p\u003e\u003cp\u003e🐱 Is it a cat? (99.99%)\u003cbr /\u003e👁️ Eye color: Blue (99.99%)\u003cbr /\u003e☁️ Fluffiness: Extra fluffy\u003c/p\u003e\u003cp\u003eAll three questions evaluated concurrently in just 129 ms! 🕑\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"117327760672638387","created_at":"2026-09-24T19:52:31.277Z","in_reply_to_id":"117327760656664478","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117327760672638387","url":"https://uwyn.net/@glaforge/117327760672638387","replies_count":1,"reblogs_count":0,"favourites_count":1,"edited_at":null,"content":"\u003cp\u003eThe open-source foundation:\u003c/p\u003e\u003cp\u003eMatt Mastracci (\u003ca href=\"https://github.com/mmastrac\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/mmastrac\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e) built djev on Google\u0026#39;s DiffusionGemma.\u003c/p\u003e\u003cp\u003eUsing Daniel Lee\u0026#39;s recipe (\u003ca href=\"https://github.com/taeold\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/taeold\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e), I deployed it on Cloud Run with NVIDIA Blackwell GPUs.\u003c/p\u003e\u003cp\u003eWith min-instances=0, it scales to zero idle (answering in ~140 ms!)\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":{"url":"https://github.com/mmastrac","title":"mmastrac - Overview","description":"I love to code.\n\nEx @denoland, StumbleUpon, FullStory - mmastrac","language":"en","type":"link","author_name":"","author_url":"","provider_name":"GitHub","provider_url":"","html":"","width":460,"height":460,"image":null,"image_description":"I love to code.\n\nEx @denoland, StumbleUpon, FullStory - mmastrac","embed_url":"","blurhash":"UTExnS-U5SEM~Ut7NaWWKPNe-T%0%MogxZt6","published_at":null,"authors":[]},"poll":null},{"id":"117327760656664478","created_at":"2026-09-24T19:52:31.038Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117327760656664478","url":"https://uwyn.net/@glaforge/117327760656664478","replies_count":1,"reblogs_count":0,"favourites_count":1,"edited_at":null,"content":"\u003cp\u003eInstead of generating text token by token, \u0026quot;System 1\u0026quot; decision models (like \u003ca href=\"https://uwyn.net/tags/Jev\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eJev\u003c/span\u003e\u003c/a\u003e) act as fast, deterministic decision engines. In a single forward pass, they output calibrated probabilities.\u003c/p\u003e\u003cp\u003eHere\u0026#39;s how I turned \u003ca href=\"https://uwyn.net/tags/DiffusionGemma\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eDiffusionGemma\u003c/span\u003e\u003c/a\u003e into a multimodal visual classifier in \u003ca href=\"https://uwyn.net/tags/Java\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eJava\u003c/span\u003e\u003c/a\u003e! 🧵👇\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[{"id":"117327760644988930","type":"image","url":"https://uwyn.net/system/media_attachments/files/117/327/760/644/988/930/original/d1fa50585165104d.jpeg","preview_url":"https://uwyn.net/system/media_attachments/files/117/327/760/644/988/930/small/d1fa50585165104d.jpeg","remote_url":null,"preview_remote_url":null,"text_url":null,"meta":{"original":{"width":1376,"height":768,"size":"1376x768","aspect":1.7916666666666667},"small":{"width":642,"height":358,"size":"642x358","aspect":1.7932960893854748}},"description":null,"blurhash":"UFOW+-~oIAx[.88^-TW?EO%MMxWCS$IVo~V?"}],"mentions":[],"tags":[{"name":"jev","url":"https://uwyn.net/tags/jev"},{"name":"diffusiongemma","url":"https://uwyn.net/tags/diffusiongemma"},{"name":"java","url":"https://uwyn.net/tags/java"}],"emojis":[],"card":null,"poll":null},{"id":"117325931213540160","created_at":"2026-09-24T12:07:15.946Z","in_reply_to_id":"117325931198349466","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117325931213540160","url":"https://uwyn.net/@glaforge/117325931213540160","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eWalkthrough \u0026amp; code:\u003cbr /\u003e👉 \u003ca href=\"https://glaforge.dev/posts/2026/09/24/gemini-3-8-flash-tts-and-custom-voices-with-the-interactions-java-sdk/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003eglaforge.dev/posts/2026/09/24/\u003c/span\u003e\u003cspan class=\"invisible\"\u003egemini-3-8-flash-tts-and-custom-voices-with-the-interactions-java-sdk/\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eRelease notes:\u003cbr /\u003e👉 \u003ca href=\"https://github.com/glaforge/gemini-interactions-api-sdk/releases/tag/v2.0.2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003egithub.com/glaforge/gemini-int\u003c/span\u003e\u003cspan class=\"invisible\"\u003eeractions-api-sdk/releases/tag/v2.0.2\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eWhat creative voice applications would you build? Let me know!\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":{"url":"https://glaforge.dev/posts/2026/09/24/gemini-3-8-flash-tts-and-custom-voices-with-the-interactions-java-sdk/","title":"Gemini 3.8 Flash TTS, Voice Design, and Custom Voices with the Gemini Interactions Java SDK","description":"How to use the newly released Gemini 3.8 Flash TTS models, design custom voices, clone voices, and synthesize speech using the Gemini Interactions Java SDK v2.0.2.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":1376,"height":768,"image":null,"image_description":"","embed_url":"","blurhash":"UAQ9yE8{8^M{IpxusmjEIUo}9btR9aXAE2X5","published_at":null,"authors":[]},"poll":null},{"id":"117325931198349466","created_at":"2026-09-24T12:07:15.716Z","in_reply_to_id":"117325931184114854","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117325931198349466","url":"https://uwyn.net/@glaforge/117325931198349466","replies_count":1,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eDesigning a custom voice in Java takes just a few lines:\u003c/p\u003e\u003cp\u003eVoice voice = client.createVoice(Voice.prompted(\u003cbr /\u003e    \u0026quot;A calm, deep French voice, speaking slowly\u0026quot;,\u003cbr /\u003e    \u0026quot;French Philosopher\u0026quot;,\u003cbr /\u003e    \u0026quot;Gemini 3.8 Flash TTS\u0026quot;\u003cbr /\u003e));\u003c/p\u003e\u003cp\u003ePass voice.id() to VoiceConfig. Done.\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"117325931184114854","created_at":"2026-09-24T12:07:15.498Z","in_reply_to_id":"117325931169011055","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117325931184114854","url":"https://uwyn.net/@glaforge/117325931184114854","replies_count":1,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eI just released v2.0.2 of my Gemini Interactions Java SDK to support these new TTS capabilities:\u003c/p\u003e\u003cp\u003e• Voice.prompted(...) for prompt-based voice design\u003cbr /\u003e• Voice.replicated(...) for voice cloning\u003cbr /\u003e• Content.speech(text, style) for emotional steering\u003cbr /\u003e• Direct audio preview access\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"117325931169011055","created_at":"2026-09-24T12:07:15.268Z","in_reply_to_id":"117325931152390572","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117325931169011055","url":"https://uwyn.net/@glaforge/117325931169011055","replies_count":1,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eTo hear what this sounds like in practice, watch this demo video:\u003cbr /\u003e👉 \u003ca href=\"https://www.youtube.com/watch?v=FL6mI_Br-mc\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003eyoutube.com/watch?v=FL6mI_Br-m\u003c/span\u003e\u003cspan class=\"invisible\"\u003ec\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eIt gives a great taste of how natural the voice quality is, and how prompt-based voice design lets you shape distinct vocal personas with realistic cadence.\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":{"url":"https://www.youtube.com/watch?v=FL6mI_Br-mc","title":"Create your own voices with Gemini 3.8 text-to-speech","description":"","language":null,"type":"video","author_name":"Google DeepMind","author_url":"https://www.youtube.com/@googledeepmind","provider_name":"YouTube","provider_url":"https://www.youtube.com/","html":"\u003ciframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/FL6mI_Br-mc?feature=oembed\" frameborder=\"0\" allowfullscreen=\"\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox allow-forms\"\u003e\u003c/iframe\u003e","width":200,"height":113,"image":null,"image_description":"","embed_url":"","blurhash":"UREV]Ds:t2IV-oWBW=oJ00Rje?t6Irj[nga~","published_at":null,"authors":[{"name":"Google DeepMind","url":"https://www.youtube.com/@googledeepmind","account":null}]},"poll":null},{"id":"117325931152390572","created_at":"2026-09-24T12:07:15.016Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117325931152390572","url":"https://uwyn.net/@glaforge/117325931152390572","replies_count":1,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eText-to-speech has reached a whole new level of quality and personalization.\u003c/p\u003e\u003cp\u003eWith Google\u0026#39;s Gemini 3.8 Flash TTS, you can design custom voices from text prompts, steer delivery nuances (whispers, pacing, emotion), and clone voices.\u003c/p\u003e\u003cp\u003eAnd you can do it all in \u003ca href=\"https://uwyn.net/tags/Java\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eJava\u003c/span\u003e\u003c/a\u003e! 🧵👇\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[{"id":"117325931140966527","type":"image","url":"https://uwyn.net/system/media_attachments/files/117/325/931/140/966/527/original/f6bb8478389d614a.jpeg","preview_url":"https://uwyn.net/system/media_attachments/files/117/325/931/140/966/527/small/f6bb8478389d614a.jpeg","remote_url":null,"preview_remote_url":null,"text_url":null,"meta":{"original":{"width":1376,"height":768,"size":"1376x768","aspect":1.7916666666666667},"small":{"width":642,"height":358,"size":"642x358","aspect":1.7932960893854748}},"description":null,"blurhash":"UAPsqv8{8^M{Ipxus-jEMxo}9atR9aXAE2W-"}],"mentions":[],"tags":[{"name":"java","url":"https://uwyn.net/tags/java"}],"emojis":[],"card":null,"poll":null},{"id":"117322662324967359","created_at":"2026-09-23T22:15:56.666Z","in_reply_to_id":"117322662309703365","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117322662324967359","url":"https://uwyn.net/@glaforge/117322662324967359","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eFull guide \u0026amp; code walkthrough:\u003cbr /\u003e👉 \u003ca href=\"https://glaforge.dev/posts/2026/09/23/running-local-gemma-models-with-litert-and-antigravity-java-sdk/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003eglaforge.dev/posts/2026/09/23/\u003c/span\u003e\u003cspan class=\"invisible\"\u003erunning-local-gemma-models-with-litert-and-antigravity-java-sdk/\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eJava SDK v0.2.17 on GitHub:\u003cbr /\u003e👉 \u003ca href=\"https://github.com/glaforge/antigravity-java-sdk/releases/tag/v0.2.17\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003egithub.com/glaforge/antigravit\u003c/span\u003e\u003cspan class=\"invisible\"\u003ey-java-sdk/releases/tag/v0.2.17\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eWhat local agent workflows would you build with Antigravity in Java? Let me know!\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":{"url":"https://glaforge.dev/posts/2026/09/23/running-local-gemma-models-with-litert-and-antigravity-java-sdk/","title":"Running Agents Powered by Local Gemma Models with LiteRT-LM and the Antigravity Java SDK","description":"How to run local Gemma models on-device using LiteRT-LM and connect to them with the newly released Antigravity Java SDK v0.2.17, reaching full parity with Python SDK v0.1.18.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":1200,"height":675,"image":null,"image_description":"","embed_url":"","blurhash":"U6R:HI9#Mvt88*11nhjtD$nhIUoc^+tRohWB","published_at":null,"authors":[]},"poll":null},{"id":"117322662309703365","created_at":"2026-09-23T22:15:56.433Z","in_reply_to_id":"117322662294388041","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117322662309703365","url":"https://uwyn.net/@glaforge/117322662309703365","replies_count":1,"reblogs_count":0,"favourites_count":1,"edited_at":null,"content":"\u003cp\u003eAntigravity Java SDK v0.2.17 also brings:\u003c/p\u003e\u003cp\u003e• Subagents with dedicated model targeting (route subtasks to smaller models)\u003cbr /\u003e• Task scheduling tools (schedule \u0026amp; manage_task)\u003cbr /\u003e• Tool argument rewriting via hooks\u003cbr /\u003e• Synchronized native harness across macOS, Linux \u0026amp; Windows\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"117322662294388041","created_at":"2026-09-23T22:15:56.199Z","in_reply_to_id":"117322662111044545","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117322662294388041","url":"https://uwyn.net/@glaforge/117322662294388041","replies_count":1,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eStep 2: Connect from Java\u003c/p\u003e\u003cp\u003eConfigure your agent with LiteRTAgentConfig pointing to your local model path and port 9379.\u003c/p\u003e\u003cp\u003eThe SDK manages the harness lifecycle and connects to LiteRT-LM\u0026#39;s local endpoint.\u003c/p\u003e\u003cp\u003eCall agent.chat() as usual, but completely on-device!\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[{"id":"117322662282353650","type":"image","url":"https://uwyn.net/system/media_attachments/files/117/322/662/282/353/650/original/5cf45b6aec98b797.png","preview_url":"https://uwyn.net/system/media_attachments/files/117/322/662/282/353/650/small/5cf45b6aec98b797.png","remote_url":null,"preview_remote_url":null,"text_url":null,"meta":{"original":{"width":1738,"height":1286,"size":"1738x1286","aspect":1.3514774494556765},"small":{"width":558,"height":413,"size":"558x413","aspect":1.3510895883777239}},"description":null,"blurhash":"UARfnK01-pxu9GkCRjRjIVj[ofayE1WAxaj["}],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"117322662111044545","created_at":"2026-09-23T22:15:53.401Z","in_reply_to_id":"117322662096271305","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117322662111044545","url":"https://uwyn.net/@glaforge/117322662111044545","replies_count":1,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eStep 1: LiteRT-LM setup\u003c/p\u003e\u003cp\u003eInstall the on-device runtime:\u003cbr /\u003epip install litert-lm\u003c/p\u003e\u003cp\u003eDownload a Gemma model:\u003cbr /\u003elitert-lm import   --model-id litert-community/gemma-4-E2B-it-litert-lm   --output-dir ~/.litert-lm/models/gemma4-e2b/\u003c/p\u003e\u003cp\u003eServe locally:\u003cbr /\u003elitert-lm serve --port 9379\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"117322662096271305","created_at":"2026-09-23T22:15:53.175Z","in_reply_to_id":"117322662078482648","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117322662096271305","url":"https://uwyn.net/@glaforge/117322662096271305","replies_count":1,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eWhy run local models for agents?\u003c/p\u003e\u003cp\u003e• Zero API costs: run repetitive tasks and test assertions without racking up tokens\u003cbr /\u003e• Data privacy: proprietary code and docs stay on your machine\u003cbr /\u003e• Offline capable: build and test without internet\u003cbr /\u003e• Low latency: no roundtrips over the wire\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"117322662078482648","created_at":"2026-09-23T22:15:52.907Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117322662078482648","url":"https://uwyn.net/@glaforge/117322662078482648","replies_count":1,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eThe \u003ca href=\"https://uwyn.net/tags/antigravity\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eantigravity\u003c/span\u003e\u003c/a\u003e team announced running local Gemma models on-device with LiteRT.\u003c/p\u003e\u003cp\u003eGood news for \u003ca href=\"https://uwyn.net/tags/Java\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eJava\u003c/span\u003e\u003c/a\u003e developers: you can do this in Java too!\u003c/p\u003e\u003cp\u003eAntigravity Java SDK v0.2.17 is out, reaching full parity with Python SDK v0.1.18.\u003c/p\u003e\u003cp\u003eWalkthrough 🧵👇\u003cbr /\u003e\u003ca href=\"https://glaforge.dev/posts/2026/09/23/running-local-gemma-models-with-litert-and-antigravity-java-sdk/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003eglaforge.dev/posts/2026/09/23/\u003c/span\u003e\u003cspan class=\"invisible\"\u003erunning-local-gemma-models-with-litert-and-antigravity-java-sdk/\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://x.com/antigravity/status/2102826735880331660\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ex.com/antigravity/status/21028\u003c/span\u003e\u003cspan class=\"invisible\"\u003e26735880331660\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[{"name":"antigravity","url":"https://uwyn.net/tags/antigravity"},{"name":"java","url":"https://uwyn.net/tags/java"}],"emojis":[],"card":{"url":"https://glaforge.dev/posts/2026/09/23/running-local-gemma-models-with-litert-and-antigravity-java-sdk/","title":"Running Agents Powered by Local Gemma Models with LiteRT-LM and the Antigravity Java SDK","description":"How to run local Gemma models on-device using LiteRT-LM and connect to them with the newly released Antigravity Java SDK v0.2.17, reaching full parity with Python SDK v0.1.18.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":1200,"height":675,"image":null,"image_description":"","embed_url":"","blurhash":"U6R:HI9#Mvt88*11nhjtD$nhIUoc^+tRohWB","published_at":null,"authors":[]},"poll":null},{"id":"117320934719644987","created_at":"2026-09-23T14:56:35.501Z","in_reply_to_id":"117320934704931372","in_reply_to_account_id":"109314675907601286","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://uwyn.net/users/glaforge/statuses/117320934719644987","url":"https://uwyn.net/@glaforge/117320934719644987","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"content":"\u003cp\u003eAll 8 samples:\u003cbr /\u003e👉 \u003ca href=\"https://github.com/glaforge/agy-java-sdk-samples\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003egithub.com/glaforge/agy-java-s\u003c/span\u003e\u003cspan class=\"invisible\"\u003edk-samples\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eSDK repo:\u003cbr /\u003e👉 \u003ca href=\"https://github.com/glaforge/antigravity-java-sdk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003egithub.com/glaforge/antigravit\u003c/span\u003e\u003cspan class=\"invisible\"\u003ey-java-sdk\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eWhat use cases would you build with Antigravity (Java or Python)? PR review bots in GitHub Actions, CI audits, internal tools? Let me know!\u003c/p\u003e","reblog":null,"application":{"name":"Typefully","website":"https://typefully.com"},"account":{"id":"109314675907601286","username":"glaforge","acct":"glaforge","display_name":"Guillaume Laforge","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-09T00:00:00.000Z","note":"\u003cp\u003e🥑 Developer Advocate for Google Cloud ☁️\u003cbr /\u003e🧠 Focusing on Generative AI 🤖\u003cbr /\u003e⭐ Co-founder of the 🪶 Apache Groovy programming language\u003cbr /\u003e☕ Java Champion 🏆\u003cbr /\u003e🦋 @glaforge.dev\u003cbr /\u003e📣 Co-host of Les Cast Codeurs Podcast\u003c/p\u003e","url":"https://uwyn.net/@glaforge","uri":"https://uwyn.net/users/glaforge","avatar":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","avatar_static":"https://uwyn.net/system/accounts/avatars/109/314/675/907/601/286/original/ae8293f6d838cdaf.jpg","header":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","header_static":"https://uwyn.net/system/accounts/headers/109/314/675/907/601/286/original/028d8e3802c3ac3f.jpg","followers_count":1408,"following_count":564,"statuses_count":1078,"last_status_at":"2026-09-25","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"✒️ Blog","value":"\u003ca href=\"https://glaforge.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eglaforge.dev/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2023-03-06T12:36:44.212+00:00"},{"name":"🔗 LinkedIn","value":"\u003ca href=\"https://www.linkedin.com/in/glaforge/\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"\"\u003elinkedin.com/in/glaforge/\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐦 Twitter","value":"\u003ca href=\"https://twitter.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"🐙 Github","value":"\u003ca href=\"https://github.com/glaforge\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/glaforge\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-13T15:02:34.818+00:00"}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":{"url":"https://github.com/glaforge/agy-java-sdk-samples","title":"GitHub - glaforge/agy-java-sdk-samples: Antigravity Java SDK samples","description":"Antigravity Java SDK samples. Contribute to glaforge/agy-java-sdk-samples development by creating an account on GitHub.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"GitHub","provider_url":"","html":"","width":0,"height":0,"image":null,"image_description":"Antigravity Java SDK samples. Contribute to glaforge/agy-java-sdk-samples development by creating an account on GitHub.","embed_url":"","blurhash":null,"published_at":null,"authors":[]},"poll":null}]