{"id":50806041,"url":"https://github.com/jeffgreendesign/holo-type","last_synced_at":"2026-06-13T01:05:25.950Z","repository":{"id":357245039,"uuid":"1229913033","full_name":"jeffgreendesign/holo-type","owner":"jeffgreendesign","description":"Athlete archetype generator with 3D holographic cards. Pulls Olympic and Paralympic narratives from Gemini 3.1 in a single call, grounded in 120 years of Team USA data. Next.js 16, React 19, Tailwind 4.","archived":false,"fork":false,"pushed_at":"2026-05-11T23:53:29.000Z","size":995,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-12T01:36:37.341Z","etag":null,"topics":["athlete-archetypes","framer-motion","gemini-ai","gemini-api","generative-ai","grounding","hackathon","holographic-ui","json-schema","nextjs","olympics","paralympics","react","structured-output","tailwindcss","team-usa"],"latest_commit_sha":null,"homepage":"https://holo-type--holo-type.us-east4.hosted.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeffgreendesign.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security-test-cases.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-05T13:55:53.000Z","updated_at":"2026-05-11T23:58:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jeffgreendesign/holo-type","commit_stats":null,"previous_names":["jeffgreendesign/holo-type"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/jeffgreendesign/holo-type","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffgreendesign%2Fholo-type","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffgreendesign%2Fholo-type/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffgreendesign%2Fholo-type/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffgreendesign%2Fholo-type/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeffgreendesign","download_url":"https://codeload.github.com/jeffgreendesign/holo-type/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffgreendesign%2Fholo-type/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34268221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["athlete-archetypes","framer-motion","gemini-ai","gemini-api","generative-ai","grounding","hackathon","holographic-ui","json-schema","nextjs","olympics","paralympics","react","structured-output","tailwindcss","team-usa"],"created_at":"2026-06-13T01:05:25.217Z","updated_at":"2026-06-13T01:05:25.943Z","avatar_url":"https://github.com/jeffgreendesign.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Holo-Type\n\nGenerate Team USA athlete archetypes from your daily routine. Built on Gemini 3.1, grounded in 120 years of Olympedia data. A submission for the Team USA x Google Cloud \"Vibe Code for Gold\" hackathon.\n\n[Live demo](https://holo-type--holo-type.us-east4.hosted.app/) · [Devpost](https://devpost.com/software/holo-type) · [Demo Video](https://youtu.be/-FlPM1UwPA4)\n\n[![Next.js 16](https://img.shields.io/badge/Next.js-16-black?style=for-the-badge\u0026logo=next.js)](https://nextjs.org/)\n[![React 19](https://img.shields.io/badge/React-19-61DAFB?style=for-the-badge\u0026logo=react\u0026logoColor=black)](https://react.dev/)\n[![Gemini 3.1 Flash Lite](https://img.shields.io/badge/Gemini-3.1_Flash_Lite-4285F4?style=for-the-badge\u0026logo=google-gemini\u0026logoColor=white)](https://deepmind.google/technologies/gemini/)\n[![Tailwind CSS 4.0](https://img.shields.io/badge/Tailwind_CSS-4.0-38B2AC?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white)](https://tailwindcss.com/)\n\n## What it does\n\nPick a movement preset or describe your daily work style. The backend sends that context to `gemini-3.1-flash-lite` with `ThinkingLevel.MEDIUM` and a strict JSON schema. The model returns an archetype with stats, rarity, and two narratives, Olympic and Paralympic. The frontend renders it as a 3D holographic card with iridescent shaders and pointer-tracked physics.\n\nNo athlete names, likenesses, or individual scores. NIL-compliant.\n\n## Parity\n\nEvery generation request returns both Olympic and Paralympic narratives. The schema requires it. Same UI, same depth, same shaders. Not a separate category.\n\n## Quickstart for judges\n\n1. Open the [live experience](https://holo-type--holo-type.us-east4.hosted.app/).\n2. Pick the **Morning Sprinter** preset, or describe your own routine.\n3. Click **Run Historical Alignment**.\n4. Flip between the Olympic and Paralympic card faces.\n\n## Prompt presets\n\n- **Morning Sprinter**: Fast decisions, high energy, first one done.\n- **Steady Pacer**: Consistent momentum over long durations.\n- **Team Captain**: Organizing people and reading the room.\n- **Precision Craftsman**: Meticulous detail and manual craft.\n- **Endurance Runner**: Patience is the edge. Outlasting all.\n- **Adaptive Strategist**: Reading the situation and improvising.\n\n## Architecture\n\n```mermaid\ngraph TD\n    A[User input] --\u003e B[API route /api/generate]\n    B --\u003e C[Gemini 3.1 Flash Lite]\n    C --\u003e D{JSON archetype}\n    D --\u003e E[Olympic narrative]\n    D --\u003e F[Paralympic narrative]\n    E \u0026 F --\u003e G[Holographic card render]\n```\n\n## Stack\n\n| Layer     | Tech                                      |\n| --------- | ----------------------------------------- |\n| Framework | Next.js 16 (App Router), React 19         |\n| Styling   | Tailwind CSS 4                            |\n| Animation | Framer Motion 12                          |\n| AI        | Gemini 3.1 Flash Lite via `@google/genai` |\n| Hosting   | Firebase App Hosting (`us-east4`)         |\n| Secrets   | Google Cloud Secret Manager               |\n| Export    | `html-to-image` for 9:16 and 1:1 posters  |\n\n## Card rendering\n\nThe cards feel physical without breaking on steep tilt angles. Three things make that work:\n\n- **Flat-stack architecture.** All card content renders flat on the surface. No Z-offsets to fight with the 3D tilt.\n- **Liquid physics.** Framer Motion with mass 1.2 and damping 40. Heavy momentum, no overshoot.\n- **Layered iridescent CSS.** `mix-blend-color-dodge`, `overlay`, and `soft-light` blending, with pointer-tracked gradients for depth.\n\n## Data integrity\n\n| Component           | Status    | Notes                                                    |\n| ------------------- | --------- | -------------------------------------------------------- |\n| Historical data     | Authentic | Aggregated from 120 years of Team USA Olympedia results. |\n| AI reasoning        | Real-time | Single Gemini 3.1 Flash Lite inference per generation.   |\n| Parity check        | Mandatory | Both narratives enforced at the schema level.            |\n| Rarity engine       | Dynamic   | Calculated from the uniqueness of the alignment.         |\n| Identity protection | Redacted  | NIL-compliant. No athlete names or likenesses.           |\n\n## Judging criteria\n\n| Criterion    | Response                                                                                                             |\n| ------------ | -------------------------------------------------------------------------------------------------------------------- |\n| Impact       | Architectural parity puts Olympic and Paralympic narratives on equal footing by default, in every generation.        |\n| Tech depth   | Gemini 3.1 with structured JSON output, grounded on a sanitized 120-year Olympedia dataset. Next.js 16 and React 19. |\n| Presentation | 3D holographic cards with pointer-tracked iridescent shaders and tuned liquid physics.                               |\n\n## Setup\n\n1. Clone the repo.\n2. Add `GEMINI_API_KEY` to `.env.local`.\n3. Run `npm install \u0026\u0026 npm run dev`.\n\n## Color palette\n\n| Old Glory Blue | Old Glory Red | White     | Medal Gold | Holo Silver |\n| -------------- | ------------- | --------- | ---------- | ----------- |\n| `#0A1F44`      | `#E4002B`     | `#FFFFFF` | `#C5A059`  | `#C0C0C0`   |\n\n## Roadmap\n\n- [ ] Shareable alignment links.\n- [ ] Live trial result stream integration.\n- [ ] Haptic tilt feedback on mobile.\n\n## License\n\nApache-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffgreendesign%2Fholo-type","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeffgreendesign%2Fholo-type","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffgreendesign%2Fholo-type/lists"}