コンテンツにスキップ

FloatSoda

SteamVR Overlay を、Flutter のような宣言的 UI で。UI はすべて C# コードで書き、シーンもプレハブも持ちません。

3 つの入口

読者によって知りたいことが違うので、ドキュメントは 3 系統に分かれています。

API Reference — Look up

公開 API の正確な契約。XML ドキュメントコメントから生成します。**準備中**で、それまではソースコードの XML ドキュメントコメントを参照してください。

最小構成のコード

SteamVR のダッシュボードに 100×100 の青い箱を出すオーバーレイです。samples/FloatSoda.Samples.GettingStartedProgram.cs そのもので、ビルドのたびにここへ読み込まれます。

Program.cs
using FloatSoda;
using FloatSoda.Abstractions.Geometries;
using FloatSoda.Geometrics;
using FloatSoda.Widgets;
using FloatSoda.Widgets.Layout;
using FloatSoda.Widgets.Paint;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using SkiaSharp;
var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddFloatSoda();
using var host = builder.Build();
var app = host.Services.GetRequiredService<FloatSodaApp>();
Widget root = new Align
{
Alignment = Alignment.Center,
Child = new SizedBox
{
Width = 100,
Height = 100,
Child = new ColoredBox
{
Color = SKColors.CornflowerBlue
}
}
};
app.CreateWindow(new DashboardWindow
{
Dpm = new Dpm(100),
Title = "MyDashboard", Child = root
});
await host.RunAsync();

誰のためのフレームワークか

3 タイプの作り手を想定しています。自分に近いものから読み始めてください。詳しくは Target Users にあります。

AI と一緒に自分用のツールを作りたい VRChatter

コードが書けなくても構いません。AI にコードを書いてもらう「バイブコーディング」で完結できることが設計目標です。

読む順: GettingStarted のサンプルを動かし、あとは AI に「これを改造して◯◯を作って」と頼む。AI には下の llms-full.txt を渡してください。

Booth でオーバーレイ作品を売りたいクリエイター

Unity でワールドやギミックを作れるなら十分です。新しく覚えるのは「宣言的 UI」という考え方だけ。シーンもプレハブも .meta もありません。

読む順: GettingStartedWidgetSystem

uGUI を使いたくないエンジニア

UI が 100% C# コードです。diff が読め、PR レビューができ、grep が効きます。Flutter の三ツリーモデルを .NET 上に実装しています。

読む順: ArchitectureAPIDesign

AI に読ませる

このサイトは、コーディングエージェントがそのまま読めるように作ってあります。

各ページは URL 末尾の /.md に置き換えると素の Markdown で取得できます(例: /widgetsystem/ のページは /widgetsystem.md)。

いまの状況

Alpha 段階です。ユーザー操作(タップ・パン)が動くのはダッシュボードオーバーレイだけで、ワールド座標固定とデバイス追従のオーバーレイは表示専用です。Phase ごとの到達点と残件は ロードマップ にあります。