ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기COMPASS Platformは、主に北里大学の学生に向けて、学習・進路・コミュニティを横断したデジタル体験を提供する教育・テクノロジープラットフォームです。
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Don’t Just Learn. Build What’s Next. 学びを、意思決定の力へ。
COMPASS Platformは、主に北里大学の学生に向けて、学習・進路・コミュニティを横断したデジタル体験を提供する、学生主導型の教育・テクノロジープラットフォームです。北里大学および同大学の学部・研究室・関連機関の公式組織・公式サービスではありません。
本リポジトリは、3Dレンダリングを取り入れた公式Webサイトと、利用者データ基盤、認証、API、データベース、クラウド、CI/E2Eなど、その運用を支えるシステムを管理しています。
公開Web · 技術スタック · 開発を始める · 文書索引 · 利用許可
| 対象 | システム構成 |
|---|---|
| 公式Web | Next.js / React / TypeScript、Three.js / WebGLによる3D Habitat、Blenderアセット、レスポンシブ・メディア制御 |
| Contact / Community申請基盤 | Cloudflare Pages Functions、Turnstile、入力検証、Google Apps Scriptによる通知処理 |
| 未来戦略ライブラリ登録基盤 | FastAPI、Neon PostgreSQL、Google Identity / OIDC、Cloud Run / Scheduler、SQLAlchemy / Alembic、Google Drive API、Cloudflare Access、Secret Manager、Terraform、DB RBAC、Transactional Outbox、監査ログ |
| Interactive紹介 | COMPASS Interactiveのプロダクト紹介・技術情報を提供するWebサイト |
COMPASS Interactiveのアプリケーション本体は、別リポジトリ・別環境で開発しています。配置と編集範囲はWebsite Boundariesに記載しています。
公式トップのHabitatは、Three.jsによるWebGL描画とHTML UIで構成されています。9つのセクションに対応する空間とカメラを持ち、単一のレンダラーで描画しています。文章、リンク、フォームは通常のDOMとして実装されています。
建築と家具はBlenderで制作し、間接光はライトマップにベイクしています。ランタイムではPBR材質、HDR環境光、反射、Bloomを使用し、glTF/GLBはMeshopt、画像はWebPで圧縮しています。
3Dの有効化は画面幅と入力方式を基準に制御しています。低フレームレート、読み込み失敗、Reduced Motionでは静止画へフォールバックします。非表示タブでは描画を停止し、アンマウント時にはGPUリソースを解放しています。環境音にはWeb Audio APIを使用しています。
実装はHabitat、制作手順はAuthoring Guide、素材の出典はAsset Creditsに記載しています。通常のWebビルドにBlenderは必要ありません。
縦向きのタブレットやスマートフォンでは、NASAのISS写真と短いタイムラプスを使用しています。動画は表示領域や通信状態に応じて読み込みと再生を制御し、データ節約設定、低速回線、再生失敗時には静止画へ切り替わります。モバイルでは3DエンジンやGLBを読み込まないこともテストで確認しています。
Contactの導入には、Blenderで制作した建築映像を使用しています。映像上の扉にはHTMLボタンを重ね、選択に応じて映像を切り替えます。演出はスキップ可能で、Reduced Motionや読み込み失敗時にもフォームへ遷移できます。
制作条件と挙動の詳細はMobile Space MediaとContact Door Entryに記載しています。
未来戦略ライブラリの登録基盤は、FastAPI、Neon PostgreSQL、Google Cloud Runを中心に構成しています。Public API、Admin API、Drive Worker、Migration Jobを分離し、それぞれに必要な権限だけを持たせています。Google IDトークンはバックエンドで検証し、利用資格や管理者権限もサーバー側で判定します。
PostgreSQLではPublic API、Admin API、Worker、MigrationごとにDBロールを分け、各サービスから実行できる操作を限定しています。SQLAlchemy / Psycopgで接続し、スキーマ変更はAlembicで管理しています。登録や管理操作のうち、権限境界を越える処理はRPCに寄せ、アプリケーションから直接触れる範囲を絞っています。
Google Driveへの権限反映は同期処理にせず、Transactional Outboxを介してWorkerへ渡しています。WorkerはCloud SchedulerからOIDC付きで起動し、Lease、Retry、操作署名を確認したうえでDrive APIを実行します。これにより、DB更新と外部API呼び出しを分離しつつ、重複実行や途中失敗を扱える構成にしています。
管理APIはCloudflare側のプロキシと共有シークレットを経由し、Google認証とDB側の権限判定を重ねています。Secret ManagerではDB接続情報やDrive OAuth情報を用途ごとに分離し、Cloud Runの各サービスには必要なSecretだけを渡します。
インフラはTerraformで定義し、Cloud Run、Cloud Run Jobs、Cloud Scheduler、IAM、Secret Managerまでコード化しています。Migration、Public API、Admin API、Drive処理は個別に有効化できるようにし、本番反映時には段階的に公開範囲を広げられる設計としています。管理操作、権限変更、エクスポート処理は監査ログに記録しています。
flowchart LR
Browser["ブラウザ"] --> Pages["Cloudflare Pages / 静的Web"]
Browser --> Edge["Pages Functions / Turnstile"]
Edge --> GAS["Google Apps Script / 公開フォーム通知"]
Browser --> Public["Library Public API"]
Browser --> Access["Cloudflare Access / 管理API Proxy"]
Access --> Admin["Library Admin API"]
Public --> DB[("PostgreSQL / 状態・権限・Outbox")]
Admin --> DB
Scheduler["Cloud Scheduler"] --> Worker["Drive Worker"]
Worker --> DB
Worker --> Drive["Google Drive"]
上図の構成や各サービスの役割はArchitecture、管理APIの認可設計はAdmin Access Security Boundaryを参照してください。
バージョンはこのリポジトリの依存定義に対応します。配信済みのバージョンはデプロイ先のコミットで確認します。
| 領域 | 技術と用途 |
|---|---|
| Web | Next.js 16.3.4 · React 19 · TypeScript 5.9 · Zod 4 · Static Export |
| 3D | Three.js 0.185 · WebGL · glTF/GLB · Meshopt · PBR · HDR · 焼き込みライトマップ |
| 素材制作 | Blender 4.5 LTS · Open Image Denoise · glTF Transform 4.5 · FFmpeg · WebP/H.264 |
| 音・操作 | Web Audio API · Native DOM · Pointer / Keyboard · Reduced Motion |
| Edge配信 | Cloudflare Pages · Pages Functions · Turnstile · Cloudflare Access |
| API・認証 | Python 3.12–3.13 · FastAPI · Pydantic 2 · Uvicorn · Google Identity Services / OpenID Connect |
| データ | PostgreSQL 17 · Neon · SQLAlchemy 2 · Psycopg 3 · Alembic |
| 権限処理 | Google Drive API · Transactional Outbox · Lease / Retry · Operation Attestation |
| 実行環境・IaC | Google Cloud Run / Jobs · Cloud Scheduler · Secret Manager · Terraform · Docker Compose |
| 通知・計測 | Google Apps Script · Google Analytics 4 · Cloudflare Web Analytics |
| 検証 | Vitest · Pytest · Playwright · Node.js Test Runner · CodeQL · npm Audit · OSV |
| 開発環境 | GitHub Codespaces · Dev Containers · Codex Cloud · npm / uv lockfiles |
正確な解決バージョンはpackage-lock.jsonとuv.lock、ツールの固定値はtoolchain.envにあります。
| 対象 | 主なテスト・チェック |
|---|---|
| フォーム・API | 入力検証、資格判定、認証・認可、署名検証、重複処理、通知失敗時の挙動 |
| ビルド・配信 | Next.js静的出力、公開ルート、Pages Functionsの適用範囲、Library関連ページのビルド |
| レスポンシブ | viewport、改行、overflow、ナビゲーション、キーボード操作、Visual Regression |
| 3D・メディア | 3D起動条件、遅延読み込み、描画停止・復帰、フォールバック、モバイルでの不要アセット取得 |
| セキュリティ | 秘密情報・保護資料の混入、Git履歴、依存関係の脆弱性、固定されていないAction / Container参照 |
| 依存関係 | npm / uv audit、ライセンス、lockfile、ツールチェーン定義の整合性 |
テストはVitest、Pytest、Playwright、Node.js Test Runnerを使用しています。CIでは型検査、ビルド、静的出力、ブラウザテスト、依存関係監査、公開リポジトリ向けのセキュリティチェックまで実行します。
3Dの描画性能や実際の外部サービス接続など、CIだけでは確認できない項目は開発者の目視によるレスポンシブテストを必須としています。
通常の開発にはGitHub CodespacesまたはCodex Cloudを使用します。共通のlockfileと検証コマンドを用い、プロジェクトごとの環境を保持します。開発・mock buildに本番の認証情報は必要ありません。
npm run dev:doctor
npm run dev:cloud
Codespacesの転送ポートから画面を確認できます。Codex Cloudではsetup scriptが依存を準備します。環境別の起動・復旧手順はCloud Developmentにあります。
npm run check:repository
npm run check
check:repositoryは文書リンク、ツール定義、ライセンス、保守スクリプトを確認します。checkはフォーム関連テスト、型検査、ビルド、静的出力、レスポンシブ・Habitatのブラウザ検証を実行します。cloud:checkはcheckの別名です。Windows PowerShellから直接実行するときはnpm.cmd runを使用してください。
API・専用ローカルDB・E2Eの手順はDevelopment Workflows、依存更新と監査はDependency Maintenanceを参照してください。画像差分の基準画像はWindowsで管理しています。
| パス | 内容 |
|---|---|
src/app/ | 公式Web、Interactive紹介、Library関連ルート |
src/components/Habitat/ | 3D描画、セクション制御、メディア・音声処理 |
scripts/habitat/ / scripts/contact-entry/ | 3D・映像アセットの生成、変換、検証 |
src/library-registration/ | Library登録・管理UI、APIクライアント |
functions/ | Contact / Community、管理API Proxy、ドメインルーティング |
services/library-api/ | FastAPI、Drive Worker、Migration、Pythonテスト |
infra/library-registration/ | Terraform、Cloud Run、IAM、Secret Manager、Scheduler |
google-apps-script/ | Contact / Communityの通知処理 |
tests/ | フロントエンド、レスポンシブ、3D、配信まわりのテスト |
公式トップは src/app/(official)/page.tsx → src/App.tsx → src/LegacyPageBody.tsx の順に描画されます。LegacyPageBody.tsx は名称に反して現行実装です。
| 文書 | 目的 |
|---|---|
| Documentation Index | 正本文書、運用手順、過去の記録への入口 |
| Project Guide | 理念、ブランド、プロジェクト原則 |
| Contributing | 新メンバー向けの開発の始め方、PRの流れ、承認が必要な操作 |
| Architecture | 配信・認証・データ・外部サービスの構成 |
| Content Governance | 正式な文言、CTA、公開状態、指標の管理 |
| Route Contract | route、canonical URL、journey別の遷移先 |
| ADR | architecture・運用上の決定記録 |
| Responsive QA | ブラウザ検証と画像差分の手順 |
| Library Registration | 登録基盤の設計、プライバシー、運用・公開ゲート |
| Archive | 完了済みPhase報告、完了済み移行要件、旧PDF(Historical) |
| AGENTS.md | エージェント向けの作業範囲、実装・検証・承認規則 |
ブランチでの変更とCI確認を経て、レビュー可能なPull Requestを作成します。本番へ影響する操作には権利者の事前承認が必要です。既存CDは維持し、mainへの反映が本番配信を起動する場合は公開操作として扱います。
Copyright © 2026 Yuto Matsui. All rights reserved.
本リポジトリは、ソースコードの閲覧および技術評価を目的として公開しています。
商用利用、改変、再配布には、事前の書面による許可が必要です。 非営利目的の場合も同様です。詳細な利用条件はLICENSE、利用許可に関する案内はPermissionsを参照してください。
第三者のOSS、写真、映像、その他の素材には、それぞれのライセンスおよび利用条件が適用されます。出典とライセンス情報はThird-party NoticesおよびAsset Registerに記載しています。
セキュリティ上の問題を発見した場合は、Security Policyに従って報告してください。
.github/workflows/| CI、セキュリティチェック、依存関係監査 |