ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
ヒンディー語のデーヴァナーガリー文字62字を、母音→子音→マートラの順に Step1〜12 で学ぶ学習アプリ。単語モード・神経衰弱つき。
Translation pending
EducationJavaScript · CSSGitHub @Sky-GLOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Devanagari Quest — ヒンディー語(デーヴァナーガリー文字)学習アプリ 日本語の五十音表(「あいうえお」→「かさたなはまやらわ」→濁音・拗音)と同じ発想で、 デーヴァナーガリー文字を Step1〜12 で学ぶゲーム感覚のフラッシュカード学習アプリ。React + Vite、バックエンド不要。 Stepにロックは無く、どのStepからでも自由に始められる。 母音の基本形→長音・複合、子音は「かさたなはまやらわ」に相当する代表音を行を横断して先に一巡し、 そのあとで各行の有気音・濁音・鼻音を「代表音との重ね比較」付きで深掘りする構成。 代表音一巡は14字と多いため、破裂音+鼻音(前半7字)/半母音+摩擦音(後半7字)の2Stepに分けている。 Step4・5 で各行の基本子音(そり舌音・摩擦音も含む)を先に一巡してしまうので、 「文字を五十音のように一通り見渡してから、細部(有気音・濁音)を詰める」という進み方になる。 Step6〜10 の深掘りでは、新しく出てくる文字を必ず Step4/5 で覚えた代表音と「重ね比較」で結び付ける (例: Step6 の ख は क と重ねて「息が強くなった分だけ形が増える」ことを見せる)。Read the full README ↗
日本語の五十音表(「あいうえお」→「かさたなはまやらわ」→濁音・拗音)と同じ発想で、 デーヴァナーガリー文字を Step1〜12 で学ぶゲーム感覚のフラッシュカード学習アプリ。React + Vite、バックエンド不要。 Stepにロックは無く、どのStepからでも自由に始められる。
npm install
npm run dev # http://localhost:5173
npm run build # dist/ を出力
母音の基本形→長音・複合、子音は「かさたなはまやらわ」に相当する代表音を行を横断して先に一巡し、 そのあとで各行の有気音・濁音・鼻音を「代表音との重ね比較」付きで深掘りする構成。 代表音一巡は14字と多いため、破裂音+鼻音(前半7字)/半母音+摩擦音(後半7字)の2Stepに分けている。
| Step | 内容 | 文字数 |
|---|---|---|
| 1 | 母音(基本) — 「あいうえお」に相当 अ इ उ ए ओ | 5 |
| 2 | 母音(長音・複合) — 基本形に線が増えるだけ आ ई ऊ ऐ औ | 5 |
| 3 | 特殊母音記号 ऋ अं अः | 3 |
| 4 | 子音・代表音① — 「か・た・な・ぱ・ま」行の破裂音+鼻音 क च ट त न प म | 7 |
| 5 | 子音・代表音② — 「や・ら・わ・さ・は」行の半母音+摩擦音 य र ल व श स ह | 7 |
| 6 | क行の深掘り ख ग घ ङ | 4 |
| 7 | च行の深掘り छ ज झ ञ | 4 |
| 8 | ट行の深掘り(そり舌・最難関) ठ ड ढ ण | 4 |
| 9 | त行の深掘り थ द ध | 3 |
| 10 | प行+摩擦音の深掘り फ ब भ ष | 4 |
| 11 | マートラ(母音記号) ★最重要 ा ि ी ु ू ृ े ै ो ौ ं ः | 12 |
| 12 | 頻出結合文字 क्ष त्र ज्ञ श्र | 4 |
Step4・5 で各行の基本子音(そり舌音・摩擦音も含む)を先に一巡してしまうので、 「文字を五十音のように一通り見渡してから、細部(有気音・濁音)を詰める」という進み方になる。 Step6〜10 の深掘りでは、新しく出てくる文字を必ず Step4/5 で覚えた代表音と「重ね比較」で結び付ける (例: Step6 の ख は क と重ねて「息が強くなった分だけ形が増える」ことを見せる)。
Stepにロックは無く、StepMapのどのカードからでも自由に始められる。★はStepクイズで 正答率80%以上を取った達成度の表示であり、次のStepを開放する条件ではない。
← → で移動、Space で反転。カード切替時に自動発音。src/data/pairs.js。
length — 母音の基本形→長音(अ→आ など)matra — マートラの長短(ि→ी など、子音 क に付けた音節で比較)derived — 子音の代表音→有気音/濁音/鼻音(क→ख/ग/घ など)lookalike — そり舌音 vs 歯音など、形も音も紛らわしい字同士src/lib/speech.js が次の順で再生を試みる。
speechSynthesis に hi-* の音声がある → Web Speech API(lang="hi-IN", rate=0.75)で再生/audio/<id>.mp3 を再生(devanagari-data.json の audioUrl)mp3 は同梱していない。安定させたい場合は public/audio/README.md の手順で 62 ファイルを配置する。
mp3 が無くても、hi-IN 音声を持つ環境(macOS / iOS / Android / Chrome の多く)では問題なく動作する。
src/data/devanagari-data.json の 1 エントリ:
{
"id": "ka",
"devanagari": "क",
"iast": "ka",
"ipa": "/kə/",
"kana": "カ",
"group": "velar",
"step": 4,
"speak": "क",
"series": "無声無気",
"note": "日本語の「カ」。息を強く出さない。5行それぞれの代表音のうち1つ目。",
"audioUrl": "/audio/ka.mp3"
}
マートラは追加で display(◌ा のような点線円つき表示)、matraFor、example / exampleRead、
position(付く位置)、keepInherent を持つ。
keepInherent はアヌスヴァーラ ं とヴィサルガ ः に付き、これらが固有母音 a を置き換えない
(क + ं = कं は kṃ ではなく kaṃ)ことを表す。音節合成は syllable()(src/data/steps.js)で行う。
Step番号を直接参照するコードは無く、マートラ・結合文字のStepは src/data/steps.js の
MATRA_STEP / CONJUNCT_STEP としてSTEPS配列から自動算出している(カリキュラムを組み替えても
コード側の修正が要らないようにするため)。
src/
├── data/devanagari-data.json 全62文字のデータ
├── data/steps.js Step メタ情報・検索ヘルパー・音節合成
├── data/pairs.js 重ね比較(GlyphDiff)のペア定義
├── data/popStages.js ポップの6ステージ定義(文字・半径・色)
├── lib/popEngine.js ポップ本体(matter-js 物理 + Canvas 描画)
├── lib/popFx.js ポップの演出(揺れ・浮き上がる得点・衝撃波・フラッシュ)とコンボ倍率
├── lib/popFinal.js ポップの最終形の進化段階(👑💎🌈)の定義と飾りの描画
├── lib/popStore.js ポップの進捗(Lv/経験値/ベスト/クリア)
├── lib/speech.js 発音(TTS + mp3フォールバック)
├── lib/quiz.js 出題生成(双方向4択・マートラ組み合わせ)
├── lib/srs.js 復習優先度スコア
├── lib/storage.js localStorage 入出力・連続日数・カリキュラム移行
├── hooks/useProgress.js 進捗ステート(XP/Lv/Stepクリア判定)
└── components/ HUD / StepMap / Flashcards / Quiz / MatraLab / GlyphDiff / SpeakButton / PopGame
vercel.json を同梱。Vercel にインポートすればそのままビルドされる(SPA なので全パスを /index.html に rewrite)。
matter-js、描画は Canvas。ステージは自由に選べる(ロックなし)。進捗は本編とは別に localStorage(devanagari-pop-v1)へ保存。devanagari-quest-v1)に Lv/XP・Stepクリア状況(★)・文字ごとの正誤回数・連続学習日数・最大コンボを保存。カリキュラム構成が変わった場合は文字ごとの正誤記録とXPを引き継ぎつつ、Stepのクリア状況だけをリセットし、その旨を一度だけ画面上部のバナーで知らせる(src/lib/storage.js の version によるマイグレーション)。