Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Android Keyboard Design Guide: 3D & Personalization

The Extension Volume — 3D Rendering · PBR · Custom Themes · Game Engine Bridges

31 Sections · OpenGL ES · Filament · Unity · Godot · Jetpack Compose · API 30–36

Version License Accessibility Print Ready Companion


3D rendering meets deep personalization — the complete companion to the Android Keyboard Design Guide. Covers OpenGL ES 3D key rendering, Filament PBR materials, GLSL shaders, custom theme engines, game engine bridges (Unity, Godot), AI-driven personalization, and production performance budgets for GPU-intensive IMEs.


Table of Contents

# Section Group Focus
01 About This Volume Orientation Prerequisites, companion relationship, how to read
02 Rendering Architecture Overview Orientation GPU pipeline, IME rendering constraints, GPU budget
03 Open Source Reference IMEs Orientation Notable projects, architecture lessons
04 OpenGL ES for Keyboards 3D Foundations GLES 3.1+, context creation, shader compilation
05 GLSurfaceView in IME 3D Foundations GLSurfaceView lifecycle inside InputMethodService
06 3D Key Geometry & Meshes 3D Foundations Vertex buffers, key meshes, bevel profiles
07 GLSL Shaders — Depth & Bevel 3D Foundations Vertex/fragment shaders, normal mapping, ambient occlusion
08 Lighting Models for Keys 3D Foundations Phong, Blinn-Phong, rim lighting, shadow mapping
09 Filament Integration Filament PBR Google Filament PBR engine in IME, material system
10 PBR Materials on Keys Filament PBR Metallic/roughness workflow, IBL, texture maps
11 SceneView & Compose Bridge Filament PBR SceneView Compose integration, scene graph
12 IBL Environment Lighting Filament PBR Image-based lighting, environment maps, diffuse/specular
13 Canvas + Hardware Acceleration Custom Rendering Canvas API, hardware layers, RenderNode
14 ComposeUI Shader Effects Custom Rendering AGSL (Android Graphics Shading Language), runtime shaders
15 TextureView Overlay Techniques Custom Rendering TextureView for video/camera backgrounds
16 Particle & Ripple Systems Custom Rendering Touch feedback, particle emitters, ripple shaders
17 Custom Layout XML Architecture Deep Personalization Per-user layouts, dynamic XML inflation
18 Per-Key Shape & Geometry Deep Personalization Custom key shapes, SVG paths, morphing
19 Dynamic Theme Engine Deep Personalization Runtime theme generation, color extraction, palettes
20 User-Uploaded Backgrounds Deep Personalization Image backgrounds, live wallpaper integration
21 Sound & Haptic Packs Deep Personalization Custom sound sets, haptic patterns, pack format
22 Font & Label Customization Deep Personalization Custom fonts, per-key labels, icon fonts
23 Unity Android Plugin Game Engine Bridges Unity IME plugin, rendering pipeline, input bridge
24 Godot Android Library Game Engine Bridges Godot engine integration, GDScript, Android export
25 AR Keyboard with Sceneform Game Engine Bridges ARCore, depth sensing, spatial key placement
26 AI-Driven Personalization Advanced Topics ML theme suggestions, usage-adaptive layouts
27 Live Wallpaper Background Keys Advanced Topics WallpaperService, parallax, GPU rendering
28 Performance Budgets for 3D Advanced Topics GPU time budgets, thermal throttling, fallbacks
29 QA Checklist — 3D & Visual Advanced Topics Visual regression, device matrix, performance gates
30 Open Source Project Index Reference Curated repos, libraries, and tools
31 References & Further Reading Reference Papers, documentation, community resources

Key Technologies

Category Technologies
3D Rendering OpenGL ES 3.1+, GLSurfaceView, GLSL ES, vertex/fragment shaders
PBR Engine Google Filament, SceneView, IBL, metallic/roughness workflow
Game Engines Unity (Android plugin), Godot (Android library), ARCore/Sceneform
Custom Rendering Canvas, RenderNode, AGSL (Android Graphics Shading Language), TextureView
Personalization Dynamic theme engine, custom XML layouts, per-key geometry, SVG paths
Backgrounds Live wallpapers, WallpaperService, image backgrounds, parallax
Audio/Haptics Custom sound packs, haptic patterns, SoundPool, Vibrator
Fonts Custom font integration, icon fonts, per-key label customization
AI ML-driven theme suggestions, usage-adaptive layouts, personalization models
Language Kotlin, GLSL, AGSL, C++ (JNI), GDScript (Godot)
API Range API 30 (minSdk) through API 36 (latest)

Guide Features

  • Print-Ready — A4 duplex margins, page-break controls, print-safe color resets
  • WCAG 2.2 AA — Keyboard navigation, skip links, :focus-visible outlines, reduced-motion support, forced-colors support
  • SEO Optimized — Open Graph, JSON-LD TechArticle structured data, canonical URL
  • Editorial Design — Lora (display) · DM Sans (body) · JetBrains Mono (code); warm paper palette with burnt sienna accent (#b25a1a)
  • Responsive — CSS-only sidebar navigation, mobile hamburger menu, scroll progress indicator
  • Performancecontent-visibility: auto, @property typed custom properties, layered CSS architecture
  • Wide Gamutcolor-gamut: p3 media query with OKLCH accent colors
  • Companion Volume — Part of the Android Keyboard Design Guide series

Getting Started

Read Online

Visit the hosted guide: Made-in-Jurgistan.github.io/android-keyboard-design-guide-3d-personalization

Read Locally

git clone https://github.com/Made-in-Jurgistan/Made-in-Jurgistan.github.io.git
cd Made-in-Jurgistan.github.io/android-keyboard-design-guide-3d-personalization
open "Android_Keyboard_Design_Guide-3D_&_Personalization.html"
# or serve locally:
python -m http.server 8000
# navigate to http://localhost:8000

Print to PDF

Open the HTML file in Chrome/Edge → Ctrl+P → set paper size to A4 → enable background graphics → print to PDF.


Rendering Pipeline at a Glance

  ┌──────────────────────────────────────────────────────────────┐
  │                    IME Rendering Stack                        │
  │                                                              │
  │   ┌──────────────┐   ┌─────────────┐   ┌─────────────────┐   │
  │   │  OpenGL ES   │   │   Filament  │   │  Game Engine    │   │
  │   │  GLSL Shaders│   │   PBR IBL   │   │  Unity / Godot  │   │
  │   └──────┬───────┘   └──────┬──────┘   └────────┬────────┘   │
  │          │                  │                    │            │
  │          └────────┬─────────┴───────────────────┘             │
  │                   ▼                                         │
  │          ┌─────────────────────┐                            │
  │          │   GPU Compositor    │                            │
  │          │  (SurfaceFlinger)   │                            │
  │          └────────┬────────────┘                            │
  │                   ▼                                         │
  │          ┌─────────────────────┐                            │
  │          │   Display / Panel   │                            │
  │          └─────────────────────┘                            │
  └──────────────────────────────────────────────────────────────┘

Related Guides

Guide Focus
Android Keyboard Design Guide Production IME development, API 30–36, Material You 3.0 — the primary volume
Mobile STT Engineering Guide On-device speech-to-text: audio capture, VAD, model inference, post-processing
Debugging Field Manual Cross-platform debugging, AI-augmented workflows, 30 sections

Metadata

Field Value
Author Made in Jurgistan
Version 2026.2.0
Published 2026-01-15
Updated 2026-01-15
License CC BY-SA 4.0
Accessibility WCAG 2.2 AA
Canonical URL https://Made-in-Jurgistan.github.io/android-keyboard-design-guide-3d-personalization/
Theme Color #b25a1a (Burnt Sienna)
Fonts Lora · DM Sans · JetBrains Mono
Series Android Keyboard Design Guide (Extension Volume)

Contributing

Report issues or suggest improvements: github.com/Made-in-Jurgistan/android-keyboard-design-guide-3d-personalization-2026/issues


License

CC BY-SA 4.0 — Free to share and adapt with attribution. See LICENSE-Keyboard-3D.md for details.


How to Cite

If you reference this guide in academic work, documentation, or project READMEs, please use one of the formats below. Both are consistent with the output generated by GitHub's "Cite this repository" button and the cffconvert tool from the repository's CITATION.cff file.

APA (7th Edition)

Made in Jurgistan. (2026). Android Keyboard Design Guide: 3D & Personalization (Version 2026.2.0) [Computer software]. https://Made-in-Jurgistan.github.io/android-keyboard-design-guide-3d-personalization/

BibTeX

@software{Made_in_Jurgistan_3D_Personalization_2026,
  author = {Made in Jurgistan},
  month = {1},
  title = {{Android Keyboard Design Guide: 3D & Personalization}},
  url = {https://Made-in-Jurgistan.github.io/android-keyboard-design-guide-3d-personalization/},
  version = {2026.2.0},
  year = {2026}
}

Note: A CITATION.cff file at the repository root also enables GitHub's built-in "Cite this repository" button (right sidebar on the repo page), which auto-generates APA and BibTeX citations from the same metadata.


Made in Jurgistan — Complete Edition · 2026

About

Companion to the Android Keyboard Design Guide — 31 sections on 3D rendering, PBR materials, OpenGL ES, Filament, GLSL shaders, custom theme engines, game engine bridges (Unity, Godot), and AI-driven personalization for Android IMEs.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages