shinshin86

Stars and mentions

Last 30 days, Oct 5 – Nov 3

GitHub stars0
mentions42
02468Oct 5Oct 19Nov 3
UTC days · repositories shinshin86 owns0 repositories

Package downloads

No package download history available yet.

Top repositories

shinshin86’s repositories ranked by new stars, as on trending.

Loading

Contributes to

Repositories outside shinshin86’s account where shinshin86 opened or reviewed pull requests in the past 365 days.

Who noticed shinshin86

Everyone who starred or forked shinshin86’s repositories since the archive began in 2011.

Notable accounts

Ordered by the stars their own repositories have received.

Biggest fans

Accounts that starred the most of these repositories.

Breakout weeks

Each repository’s best week of new stars, with the release published around it.

Mentions

39posts
Nov 40 posts
  1. Muse × Claude Code で、絵を描かずに動くアバターを iOS アプリに載せた はじめに Swift で作っている iOS アプリに、キャラクターのアバターを置きたくなりました。静止画では寂しいので、まばたきをしたり、少し揺れたりする程度には動いてほしいところです。とはいえ、Live2D や Spine を入れてパーツ分けから始めるほどの工数はかけたくありませんし、そもそも自分では絵が描けません。 そこで、絵は画像を描ける AI エージェントの Muse に、リグ(絵のどこをどう動かすかの設定)と書き出しは Claude Code に任せ、1枚絵を動かすツール Mesh Avatar Studio でつなぐ分担を試しました。人がやったのは、絵と動きの良し悪しを判断することだけです。 shinshin86/mesh-avatar-studio この記事では原画の依頼からアプリへの組み込みまでの流れと、途中でぶつかった問題を紹介します。本当は動いている様子をお見せしたいのですが、原画はアプリのアイデアに関わるため、この記事には載せていません。 この記事でできるようになること 1枚の絵から、まばたき・口の開閉・首かしげ・呼吸・髪の揺れをする女の子のアバターを作れる 閉じ目のような差分を AI に描いてもらい、崩れていないことを確かめて取り込める 作ったアバターを SwiftUI のアプリに置き、止まって見えないように動かし続けられる 対象読者 アプリにキャラクターを出したいが、絵もアニメーションも専門ではない方 Live2D や Spine を入れるほどではなく、軽く動けばよい方 画像生成 AI とコーディングエージェントに作業を分けて任せたい方 SwiftUI のアプリに Web のランタイムを閉じた形で組み込みたい方 話さないこと Mesh Avatar Studio の内部実装(メッシュ変形のアルゴリズム) 走る・食べるといった大きなポーズや、着せ替えの実装 Muse 以外の画像生成サービスとの比較 描画負荷やメモリの厳密な計測(今回は計測していません) ! この記事の内容は2026年11月時点のものです。Mesh Avatar Studio はコミット ac76b84f、アプリに同梱したランタイム mesh-avatar-element.js は 0.4.1 で確かめました。最新の手順は Studio のリポジトリをご確認ください。 全体像:誰が何をするか Mesh Avatar Studio は1枚のイラストをパーツに分けず、メッシュ(細かい三角形の網)をかぶせて少しずつ曲げることで動かすツールです。まばたき・口の開閉・頭の傾き・呼吸・髪の揺れくらいなら、1枚絵のまま表現できます。書き出した .mavatar ファイルは Web Components のランタイム <mesh-avatar> で再生します。 Studio はもともとコーディングエージェントが作業する前提で作られていて、リポジトリにエージェント向けの手順書(docs/agent-guide.md)があります。Claude Code にはこの手順書を読ませれば、リグ作りから書き出しまでを進めてもらえます。 足りないのは絵を描く手です。ここを Muse に任せました。Claude Code は Claude in Chrome で Muse の画面を操作してやりとりします。 担当 やること Muse 原画を描く。閉じ目などの差分を描く。ポーズ確認の画像を見て崩れを指摘する Claude Code Muse とやりとりする。Studio でリグを作り、ポーズ確認・差分の取り込み・書き出しをする。アプリ用の静止画を作る 人 実機で見た目を判断する 1. 原画を Muse に頼む Muse には次の条件を伝えて原画を描いてもらいました。 PNG・RGBA・背景透過で、全身が入っている 顔に手・物・髪が大きくかからない。目ははっきり開いている 線と塗りがはっきりした、シンプルな絵柄(細かい装飾や半透明の重なりが多いほど、曲げたときに崩れやすい) 小さく表示しても判別できる形にする 2. Studio でリグを作る リグ(rig.json)は、絵のどこが何かを座標で書いたものです。主な部位は次のとおりです。 部位 書くこと head 頭の範囲、回転の中心、傾きの最大値、横・縦にずらす量 body 体の回転の中心、呼吸で膨らむ範囲、胸・肩の位置 eyes 目の開いた範囲(opening)と、まぶたのレイヤーにする範囲(roi) mouth 口の中心と幅 cheeks 頬の赤みの位置 strands 揺らす髪の束(前髪・横髪・ポニーテールなど)と揺れの最大値 mesh メッシュを細かくする範囲 Claude Code は Studio の手順書に沿って次のように進めます。 リグ作りのコマンド# 画像から座標を読む精度を先に測る uv run tools/vision-check.py make work/vision-check uv run tools/vision-check.py score work/vision-check answer.json uv run tools/new-project.py <原画.png> <name> uv run tools/grid.py projects/<name> --step 50 --out projects/<name>/work/grid-full.png ここで rig.draft.json を書く(目・口は --region で拡大したグリッドから座標を読む) npm run validate-rig -- projects/<name>/rig.draft.json uv run tools/overlay.py projects/<name> --rig rig.draft.json --part eyes --zoom \ --out projects/<name>/work/overlay-eyes.png uv run --with numpy --with pillow --with opencv-python-headless \ tools/build-layers.py projects/<name> --rig rig.draft.json npm run render-poses -- projects/<name> 座標を読むのはモデルの目です。最初に vision-check で読み取りの精度を測り、拡大したグリッドや重ね合わせの画像で、目の範囲がずれていないかを確かめながら進めます。 リグで気をつけたことは次のとおりです。 目の開いた範囲に、まつ毛や肌を入れません。入れると、まばたきのたびにまつ毛ごと動いてしまいます。 下まぶたの範囲は頬の赤みから離します。roi の下端が頬の赤みにかかっていて、まばたきのたびに赤みが動きました。下端を10px 上げて直しています。 細かいメッシュは頭から胸にかけます。全身の絵では動きの大きい頭まわりだけを細かくすれば足ります。 render-poses は、傾き・まばたき・口の開閉などのポーズを並べた一覧画像を出します。Claude Code が自分で見てから、Muse にも送って崩れを指摘してもらいました。画像を見ずに「崩れていない」と報告させないことは、手順として明示しておくのが安全です。 3. 閉じ目は Muse に描いてもらう Studio は目の範囲のメッシュをつぶして閉じ目を作ることもできます。ただ、この方法ではまつ毛の弧が反って波線のように見えました。絵として描かれていないものを、変形だけで作るのには限界があります。 そこで、閉じ目だけは Muse に描いてもらいました。Studio には、描き替えてよい範囲を示すマスクを書き出すコマンドがあります。 閉じ目のマスクを書き出すコマンドuv run tools/variant-requests.py projects/<name> マスクとポーズ確認の画像を送り、次の条件を伝えました。 原画と同じ寸法の RGBA の全体画像で返す(切り抜きではない) マスクの外はアルファも含めて1画素も変えない 描き替えはマスクの縁から 4px 以上内側に収める 各目に下向きの弧を1本描く。笑い目(上向きの弧)にしない 眉は変えない(リグが表情ごとに眉を動かすので、描くと二重になる) 画像生成 AI は頼んでいない場所もわずかに描き変えることがあります。届いた画像はマスクの外が原画と1画素も違わないことを確かめてから取り込みます。 マスクの外の差分を確かめるコードimport numpy as np from PIL import Image original = np.array(Image.open("original.png").convert("RGBA")).astype(int) closed = np.array(Image.open("eyes_closed.png").convert("RGBA")).astype(int) マスクは RGB が全面白で、描き替えてよい範囲をアルファ 0 で表している editable = np.array(Image.open("mask.png").convert("RGBA"))[..., 3] == 0 changed = (original != closed).any(-1) print("changed", changed.sum(), "outside mask", (changed & ~editable).sum()) 最初はマスクを明るさで判定していたため、判定がいつも「差分 0」を返していました。マスクの RGB は全面が白なので、明るさでは範囲を区別できません。アルファで判定し直しても差分は 0 で、Studio の build-sprites の検査も同じ結果だったので実害はありませんでした。とはいえ、検証コードは一度、わざと崩した画像で落ちることを確かめておくべきでした。 outside mask が 0 なら、variants/eyes_closed.png に置いて取り込み、ポーズ確認を出し直します。 4. .mavatar と静止画を書き出す 書き出しのコマンドnpm run pack-avatar -- projects/<name> --no-source -o projects/<name>-v2.mavatar npm run validate-avatar -- projects/<name>-v2.mavatar --no-source を付けないと、原画の元データまで .mavatar に入ります。また、出力先に同じ名前のファイルがあると EEXIST で止まるので、版ごとに別の名前で書き出します。今回は閉じ目入りで 650KB ほどでした。 アプリには動く絵とは別に静止画も入れます。読み込みが終わるまでの間、読み込みに失敗したとき、「視差効果を減らす」がオンのときに出すためです。 静止画を作るコードfrom PIL import Image im = Image.open("original.png").convert("RGBA") h = 252 # 表示する高さ(pt)× 3 w = round(im.width * h / im.height) im.convert("RGBa").resize((w, h), Image.LANCZOS, reducing_gap=3.0) \ .convert("RGBA").save("avatar-still@3x.png", optimize=True) ポイントは2つです。 切り抜かずに、原画の余白のまま縮めます。動く絵と、足元や頭の位置を揃えるためです。 アルファを乗算済みにして(RGBa)縮め、透過の縁が黒ずむのを防ぎます。 5. iOS アプリに組み込む ランタイムは JavaScript の Web Components なので、WKWebView で再生します。アプリには index.html・mesh-avatar-element.js・bridge.js・.mavatar の4つを同梱しました。index.html の中身は次のとおりです。 index.html<!-- index.html --> <script type="module" src="mesh-avatar-element.js"></script> <script type="module" src="bridge.js"></script> <mesh-avatar src="avatar.mavatar" label="Avatar" paused></mesh-avatar> bridge.js はネイティブとランタイムの間をつなぐ自前の小さなスクリプトです。設計で気をつけたことは次のとおりです。 同梱したファイルだけで動かします。独自のスキーム meshavatar:// で同梱フォルダを返し、http(s) はコンテンツルールで全て遮断しました。データストアも保存しない設定(.nonPersistent())にしています。 再生のタイミングはネイティブが決めます。ランタイムは paused で置き、bridge.js のループが advance(dt) で進めます。表示されていないときは、ネイティブからループを止めます。 ネイティブとの境界を2つの通知に絞ります。Web 側からネイティブへ送るのは「最初のコマが描けた」と「失敗した」の2つだけで、ユーザーのデータは Web 側に渡しません。 タップは受けません。WKWebView は isUserInteractionEnabled = false にして、操作は SwiftUI 側で受けます。 独自スキームで同梱ファイルを返す loadFileURL で読ませずに独自スキームにしたのは、ランタイムが .mavatar を fetch で読むためです。ページと同じオリジンから HTTP の応答として返せば、ランタイムを書き換えずに済みます。 MeshAvatarSchemeHandler.swiftfinal class MeshAvatarSchemeHandler: NSObject, WKURLSchemeHandler { static let scheme = "meshavatar" static let entryURL = URL(string: "(scheme)://bundle/index.html")! private let root: URL? = Bundle.main .url(forResource: "MeshAvatar", withExtension: nil)?.standardizedFileURL func webView(_ webView: WKWebView, start urlSchemeTask: WKURLSchemeTask) { guard let url = urlSchemeTask.request.url, let fileURL = resolve(url), let data = try? Data(contentsOf: fileURL), let response = HTTPURLResponse( url: url, statusCode: 200, httpVersion: "HTTP/1.1", headerFields: [ "Content-Type": Self.contentType(for: fileURL.pathExtension), "Content-Length": String(data.count), ]) else { urlSchemeTask.didFailWithError(URLError(.fileDoesNotExist)) return } urlSchemeTask.didReceive(response) urlSchemeTask.didReceive(data) urlSchemeTask.didFinish() } func webView(_ webView: WKWebView, stop urlSchemeTask: WKURLSchemeTask) {} // 同梱フォルダの外(../ など)は返さない private func resolve(_ url: URL) -> URL? { guard let root else { return nil } let candidate = root.appending(path: url.path(percentEncoded: false)).standardizedFileURL guard candidate.path.hasPrefix(root.path + "/") else { return nil } return candidate } private static func contentType(for ext: String) -> String { switch ext.lowercased() { case "html": "text/html; charset=utf-8" case "js": "text/javascript; charset=utf-8" default: "application/octet-stream" } } } WKWebView の設定では、遮断ルールのコンパイルが終わってから読み込みます。先に読み込むと、ルールが有効になる前に通信が出る余地が残るためです。 WKWebView の設定let configuration = WKWebViewConfiguration() configuration.websiteDataStore = .nonPersistent() configuration.setURLSchemeHandler(MeshAvatarSchemeHandler(), forURLScheme: MeshAvatarSchemeHandler.scheme) configuration.userContentController.add(coordinator, name: "meshAvatar") let webView = WKWebView(frame: .zero, configuration: configuration) webView.isOpaque = false webView.backgroundColor = .clear webView.scrollView.isScrollEnabled = false webView.isUserInteractionEnabled = false let rules = #"[{"trigger":{"url-filter":"^https?://"},"action":{"type":"block"}}]"# WKContentRuleListStore.default().compileContentRuleList( forIdentifier: "meshAvatarBlockNetwork", encodedContentRuleList: rules ) { ruleList, _ in DispatchQueue.main.async { guard let ruleList else { return coordinator.fail() } webView.configuration.userContentController.add(ruleList) webView.load(URLRequest(url: MeshAvatarSchemeHandler.entryURL)) } } 静止画と重ねて、準備ができたら切り替える SwiftUI 側では静止画と WKWebView を重ね、最初のコマが描けたらクロスフェードで切り替えます。失敗したときや「視差効果を減らす」がオンのときは、静止画のままにします。 静止画と動く絵を重ねるビューstruct AvatarVisual: View { let isAnimating: Bool @Environment(.accessibilityReduceMotion) private var reduceMotion @State private var isMotionReady = false @State private var motionFailed = false private var showsMotion: Bool { !reduceMotion && !motionFailed } private var isMotionVisible: Bool { showsMotion && isMotionReady } var body: some View { ZStack { Image("AvatarStill") .resizable() .opacity(isMotionVisible ? 0 : 1) if showsMotion { MeshAvatarView( isRunning: isAnimating, onFirstFrame: { isMotionReady = true }, onFailure: { motionFailed = true } ) .opacity(isMotionVisible ? 1 : 0) } } .animation(.easeInOut(duration: 0.2), value: isMotionVisible) } } isRunning が変わると、ネイティブは window.meshAvatarRunning を書き換えて window.meshAvatarSync() を呼びます。bridge.js はそれを見て、requestAnimationFrame のループを始めたり止めたりします。ループは 50ms ごとにだけ advance を呼び、20fps 程度に抑えました。小さく表示するアバターなら、これで十分滑らかに見えます。 6. 「ほぼ止まって見える」を直す 組み込んで実機で見たところ、アバターはほぼ止まって見えました。原因は2つありました。 待機中の動きがまばらでした。ランタイムは待機中に5〜10秒に1回だけ短い動き(体を揺らす・あたりを見回すなど)を再生する作りで、動きと動きの間はまばたきと呼吸だけになります。 リグの振れ幅が小さく、線のゆがみを恐れて頭の傾きを最大 0.08(約4.5度)に抑えていました。 1つ目は bridge.js で待機用の動きを途切れなく続けて再生させて解決しました。 bridge.js(待機の動きを続けて再生する部分)const idleMotions = [ { id: 'sway', seconds: 7.0 }, { id: 'lookAround', seconds: 5.2 }, { id: 'glance', seconds: 4.6 }, { id: 'hum', seconds: 5.6 }, { id: 'lean', seconds: 4.8 }, ]; let currentMotion = null; let motionElapsed = 0; function playNextMotion() { const candidates = idleMotions.filter((motion) => motion !== currentMotion); currentMotion = candidates[Math.floor(Math.random() * candidates.length)]; motionElapsed = 0; element.avatar.play(currentMotion.id); } function tick(now) { // ...50ms ごとに dt を求める element.avatar.advance(dt, 1 / dt); motionElapsed += dt; if (currentMotion === null || motionElapsed >= currentMotion.seconds) playNextMotion(); } 直前と違う動きをランダムに選び、その長さだけ再生したら次へ進みます。経過時間は setTimeout などのタイマーではなく、advance に渡した dt を足し上げて測ります。表示していない間はループごと止まるので、再開したときに動きの途中から続きます。 ただし、動きの長さはランタイムの中の値を書き写したものです。ランタイムを更新したら、長さがずれていないかを確かめる必要があります。 2つ目については Studio のドキュメント(docs/rig-fields.md)にある推奨値まで振れ幅を広げました。 項目 変更前 変更後 頭の傾きの最大(head.maxRoll) 0.08 0.15(約8.6度) 頭を横にずらす量(shiftX) 画像の幅の約2.4% 画像の幅の約3.9% 頭を縦にずらす量(shiftY) 画像の高さの約1.0% 画像の高さの約1.7% 体の傾きの最大(body.maxRoll) 0.035 0.05 髪の揺れの最大(strands[].max) 4〜8 前髪 7・横髪 12・ポニーテール 26 小さく表示するアバターなら、この程度まで広げても線のゆがみは目立ちませんでした。 トラブルシューティング 症状 原因と対処 Python で PIL や numpy が読み込めない システムの Python とライブラリのアーキテクチャが合っていなかった。uv が管理する Python 3.12 を UV_PYTHON_PREFERENCE=only-managed で使う まばたきで頬の赤みが動く 下まぶたの roi が頬にかかっていた。下端を上げて build-layers からやり直す 閉じ目が波線になる メッシュをつぶして作る閉じ目の限界。Muse に描いてもらう マスクの外の差分がいつも 0 になる マスクを明るさで判定していた。アルファ 0 で判定する pack-avatar が EEXIST で止まる 出力先に同じ名前のファイルがある。別の名前で書き出す アバターがほぼ止まって見える 待機の動きが5〜10秒に1回だけ。動きを続けて再生させ、リグの振れ幅を広げる まとめ 絵は Muse、リグと書き出しは Claude Code、判断は人という分担で、絵を描かずに動くアバターを作れました 1枚絵をメッシュで曲げる方式なら、パーツ分けなしで、まばたき・傾き・呼吸・髪の揺れまでは表現できます。変形で作れない閉じ目だけは、描いてもらうのが確実でした AI が描いた差分は、「マスクの外が1画素も変わっていない」ことを機械的に確かめてから取り込みます アプリ側は WKWebView を同梱ファイルだけで閉じ、ネイティブとの境界を2つの通知に絞ると、扱いやすくなりました 自分では絵を1枚も描いていませんが、実機で揺れているアバターを見るとちゃんと愛着が湧きます。表情の差分も同じ手順で足せるので、次は笑顔や口の形を増やしてみたいと考えています。

  2. ハロウィンなので、魔女のアバターにホラー風のライティングを当ててみました🎃 Mesh Avatar Studioでは光の当て方を8つまでプリセットに保存できて、Shift+数字キーで切り替えられます 配信中にホラーゲームを始めたら下から赤い光、みたいな使い方もできます shinshin86/mesh-avatar-studio ブラウザ版なら、インストールせずにすぐ動画のライティング含め試せるので、興味ある方はこの機会に触ってみていただけたら嬉しいです! shinshin86.github.io

    10 likes · 1 repost · 567 views
  3. Mesh Avatar Studioのアバターに、メガネを掛けられるようになりました! メガネの付け外しを切り替えられて、まばたきしてもフレームが消えません😊 アプリで実際に使っている方からPRをいただいて入った機能です。ありがとうございます! shinshin86/mesh-avatar-studio t.co

    33 likes · 4 reposts · 1,322 views
  4. Still2Rig PSD に、ほかのアプリから表情を切り替える機能を入れました OBS を操作したままでも、Stream Deck や macOSのショートカットから、笑顔・照れ・怒りなど9つの表情に切り替えられます PSDアバターで配信などされている方はチェックしてみてください shinshin86/still2rig-psd t.co

    10 likes · 1 repost · 561 views
  5. Turn a single illustration into an animated 2D avatar: Mesh Avatar Studio

    2 points
  6. 1枚の絵から動くアバターを作るツールを2つ公開していて、どっちを使えばいいか聞かれることがあるので、違いをまとめました ・Mesh Avatar Studio(動画1本目) 絵をそのまま動かして、1つのファイル(.mavatar)にまとめる。ブラウザやWebサイト、アプリにそのまま置ける shinshin86/mesh-avatar-studio ・Still2Rig PSD(動画2本目) 絵をパーツごとのレイヤーに分けてPSDにする。レイヤーをあとから描き直したり、PSDを読めるツールで使える shinshin86/still2rig-psd どちらもClaude CodeやCodexに絵を渡して頼むだけで、カメラで動かしてOBSにも出せます😊

    21 likes · 3 reposts · 533 views
  7. AITuber OnAirで「biimシステムのゆっくり動画を作って」とClaude CodeやCodexに伝えたらこんな動画ができるようになりました! 以下のサンプルで試せます github.com/shinshin86/aituber-onair/tree/main/pac… 他にも『ゆっくり解説動画』も作れるので、そちらに興味ある方は引用もチェックしてみてください😊 t.co

    5 likes · 332 views
  8. YouTube · · YouTube description · Eddwan Hallen · shinshin86/mesh-avatar-studio

    Open source do GitHub: #15 a #11 | Vol. 11 #shorts Os projetos #15 a #11 do Top 15 open source do GitHub, Vol. 11, 10 segundos para cada um. #15 tapflow: jo-duchan/tapflow #14 Mesh Avatar Studio: shinshin86/mesh-avatar-studio #13 openGym: DuarteSantos8/openGym #12 SCSKiller: BlueHeisenberg/SCSKiller #11 OpenFilm: openfilm/openfilm Vídeo completo com os 15: youtu.be Oferecimento: Hallen Tech, hallentech.com #shorts #opensource #github

    6 likes · 151 views
  9. YouTube · · YouTube description · Eddwan Hallen · shinshin86/mesh-avatar-studio

    Mais 15 projetos open source do GitHub que valem o seu tempo | Vol. 11 Mais 15 projetos open source do GitHub que valem o seu tempo, em contagem regressiva e com 10 segundos para cada um: de uma placa de US$ 7 que deixa a IA usar um iPhone a um painel para operar agentes de IA, passando por avatar animado, casa 3D no Home Assistant e o fim das travadas de shader nos jogos. 📺 Décimo primeiro volume da série Open source do GitHub. Escolhidos pela análise da lista inteira (estrelas, frequência de commits, último commit, README, documentação, capturas e site), conferida em 21/10/2026. Qual desses você vai testar primeiro? Conta nos comentários! ⏱️ CAPÍTULOS E LINKS 0:00 Abertura 0:10 #15 tapflow: simuladores de iPhone e emuladores Android no navegador, no seu servidor (1,2 mil estrelas) jo-duchan/tapflow 0:20 #14 Mesh Avatar Studio: transforma uma ilustração num avatar 2D animado que pisca, fala e mexe a cabeça shinshin86/mesh-avatar-studio 0:30 #13 openGym: treinos guiados, séries e peso no celular, com os dados no seu servidor (14,5 mil estrelas) DuarteSantos8/openGym 0:40 #12 SCSKiller: compila os shaders antes do jogo para acabar com as travadas no PC (Windows) (3,3 mil estrelas) BlueHeisenberg/SCSKiller 0:50 #11 OpenFilm: o seu agente de código faz o vídeo como páginas web e você edita no navegador (1,9 mil estrelas) openfilm/openfilm 1:00 #10 Humanizer: skill que faz texto de IA soar escrito por gente, com base no guia da Wikipédia (59,3 mil estrelas) blader/humanizer 1:10 #9 NeonPlan 3D: planta 3D neon da sua casa dentro do Home Assistant, com luzes e câmeras ao vivo Mastershort/neonplan3d 1:20 #8 MangoDisk: limpeza de disco, análise de armazenamento e privacidade para macOS, Windows e Linux (4,5 mil estrelas) harry0703/MangoDisk 1:30 #7 OpenUsage: uso das assinaturas de IA de código na barra de menu do Mac (4,4 mil estrelas) robinebers/openusage 1:40 #6 Finder Menu: as opções que faltam no clique direito do Finder: novo arquivo, terminal aqui, copiar caminho nikgrbn/finder-menu 1:50 #5 Rustrak: rastreador de erros self-hosted compatível com os SDKs do Sentry rustrak/rustrak 2:00 #4 Codewhale: agente de código no terminal que funciona com mais de 40 provedores de modelos (41,1 mil estrelas) codewhale-hq/Codewhale 2:10 #3 ESP32 iPhone Agent: uma placa ESP32 de US$ 7 deixa um modelo de IA usar um iPhone de verdade, sem computador (3,5 mil estrelas) onehumanbeing/esp32-iphone-agent 2:20 #2 Artemis: IA e testes usando celulares Android reais, com MCP para Claude Code e outros (13,6 mil estrelas) google/artemis 2:30 Oferecimento Hallen Tech 2:44 #1 Mission Control: painel self-hosted para operar agentes de IA: tarefas, execuções e gastos (6,4 mil estrelas) builderz-labs/mission-control 2:54 Encerramento 🧡 Oferecimento: Hallen Tech, liderança de tecnologia sob demanda, software, cloud e segurança para a sua empresa. Site: hallentech.com E-mail: contato@hallentech.com Instagram: instagram.com LinkedIn da Hallen Tech: linkedin.com LinkedIn do Eddwan: linkedin.com Se curtiu, deixa o like, segue o canal e ativa as notificações para a próxima lista. #opensource #github #programacao #ferramentas

    407 likes · 8 comments · 13,174 views
  10. Reddit · · r/BestGitHubRepos · u/Artilas_Digital · shinshin86/mesh-avatar-studio

    Mesh Avatar Studio: Turn one illustration into an animated 2D mesh avatar with a coding agent and a local editor (0.9k stars) What it does All text below is quoted directly from the project README. >Turn a single illustration into an animated 2D mesh avatar: it blinks, talks, turns its head, breathes and sways its hair. A coding agent prepares the avatar from your image; you fine-tune it in a local editor with a live preview. How it works: - Making an avatar from your own illustration takes four steps. Steps 1 and 4 are done by a coding agent (Claude Code or Codex) working in this repository; steps 2 and 3 happen in the editor. - Ask your agent to create the avatar - Open the project and check it - Fix what looks wrong by dragging - Get drawn eyes and mouths - Choose Export .mavatar in the editor to download one file containing the saved rig, built layers, drawn expressions and avatar metadata. - Open your project in the editor and choose Live. Start the camera, face forward with relaxed eyes and a closed mouth, then choose Calibrate. >Requires Node.js 22.17+ and Git. npx create-mesh-avatar-studio Repository shinshin86/mesh-avatar-studio Repository stats |Metric|Value| |:-|:-| |Stars|867| |Forks|95| |Last release|mesh-avatar@0.2.1 (2026-10-17)| |Languages|TypeScript 58.9%, JavaScript 21.5%, Python 8.7%| |Contributors|5| |AI contributor accounts (Claude / Codex / Cursor / Copilot)|claude: 50| |AI co-authored commits|Claude: 50| Main contributor |Field|Value| |:-|:-| |Name|Yuki Shindo| |GitHub|@shinshin86| |Commits to this repo|80 (top contributor)| |Bio|I love Beatles and Animal Collective.| |Company / Location|Japan| |Followers|143| ────────────────────────────── 📌 How many great GitHub repos have you discovered and completely forgotten about? Don't let another useful tool disappear into your Reddit feed. Get the community's best repos, organized by category, plus key takeaways from real developer discussions, delivered to your inbox twice a week. 📬 Never lose track of great repos again. Subscribe free.

    117 points
Trending awards, every completed day and week
Gold
01st place finishes
Silver
02nd place finishes
Bronze
03rd place finishes
Awarded repositories
0Owned by shinshin86 now

No trending awards yet

None of the repositories shinshin86 owns has finished in the top three of a completed trending day or week, by stars, forks or PR authors. See who is trending now.

A repository earns an award for finishing first, second or third in a completed trending day or week, ranked by new stars, new forks or pull request authors. Awards follow a repository through renames and transfers and count toward its current owner. Weeks run Monday to Sunday, UTC.