IDKHowToCodeFr commited on
Commit
dea9d44
·
verified ·
1 Parent(s): 800ee00

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. frontend/src/app/page.tsx +52 -70
frontend/src/app/page.tsx CHANGED
@@ -1,79 +1,61 @@
1
  "use client";
2
 
3
  import Link from "next/link";
4
- import { Cpu, Zap, Activity, ShieldCheck, ArrowRight, Terminal, GitBranch } from "lucide-react";
5
 
6
  export default function Home() {
7
  return (
8
  <main className="min-h-dvh bg-canvas-cream flex flex-col font-mono selection:bg-hazard selection:text-white bg-blueprint-grid">
9
- {/* Top Telemetry Header Rail */}
10
- <div className="w-full border-b border-ink/20 bg-white/80 backdrop-blur-xs py-1 px-4 sm:px-8 text-[10px] font-mono font-bold tracking-widest text-slate flex justify-between items-center flex-wrap gap-2">
11
- <div className="flex items-center gap-3">
12
- <span className="text-ink font-black flex items-center gap-1.5">
13
- <span className="w-2 h-2 bg-hazard animate-pulse" />
14
- HEARTFLOW // SILICON TELEMETRY OS
15
- </span>
16
- <span className="text-ink/30">|</span>
17
- <span>SYS_VER: 2.4.0-EDGE</span>
18
- <span className="text-ink/30">|</span>
19
- <span className="text-slate hidden md:inline">UART: 115200 8-N-1</span>
20
- </div>
21
- <div className="flex items-center gap-3 tabular-nums">
22
- <span className="text-ink">CLASSIFIER: 5-NODE ENSEMBLE</span>
23
- <span className="text-ink/30">|</span>
24
- <span className="text-hazard font-black">LATENCY: 18.4 μs</span>
25
- </div>
26
- </div>
27
-
28
  {/* Hero Section */}
29
  <section className="max-w-350 mx-auto w-full px-4 sm:px-8 pt-10 md:pt-16 pb-16 grid grid-cols-1 lg:grid-cols-12 gap-10 lg:gap-14 flex-1">
30
  <div className="lg:col-span-7 flex flex-col justify-center">
31
- <div className="text-[11px] sm:text-[12px] text-hazard font-bold tracking-widest mb-6 flex items-center gap-3 flex-wrap">
32
- <span className="tech-tag-hazard">TINYML INFERENCE</span>
33
- <span className="w-8 sm:w-12 h-0.5 bg-hazard inline-block" />
34
- <span className="tech-tag">INT8 FIXED-POINT</span>
35
- <span className="text-slate text-[10px] font-bold tracking-wider hidden sm:inline">ZERO-MALLOC C99 / C++</span>
 
36
  </div>
37
 
38
- <h1 className="text-[clamp(2.75rem,6.5vw,7rem)] mb-6 leading-[0.9] text-ink tracking-[-0.04em]">
39
  CLINICAL<br />
40
  INFERENCE<br />
41
  <span className="text-hazard">AT THE EDGE.</span>
42
  </h1>
43
 
44
- <p className="text-[13px] sm:text-[15px] text-ink max-w-xl leading-relaxed uppercase tracking-[0.02em] font-bold border border-ink/10 border-l-4 border-l-hazard pl-5 mb-8 bg-white/60 p-4">
45
- Cardiovascular anomaly classification transpiled directly for microcontrollers. Stream multi-channel physiological vitals, evaluate a calibrated 5-model soft-voting ensemble, and export zero-malloc C headers for ESP32 and ARM Cortex-M hardware.
46
  </p>
47
 
48
  {/* Technical Telemetry Badges Matrix */}
49
  <div className="crosshair-corner grid grid-cols-2 sm:grid-cols-4 gap-px bg-ink border-2 border-ink mb-8 max-w-xl shadow-[3px_3px_0px_0px_#141413]">
50
- <div className="bg-white p-2.5 text-center">
51
  <div className="text-[9px] text-slate font-bold uppercase tracking-wider mb-0.5">INFERENCE LATENCY</div>
52
- <div className="text-[14px] font-black text-ink tabular-nums">18.4 μs</div>
53
- <div className="text-[8px] text-slate tracking-tighter mt-0.5">ESP32-S3 @ 240MHz</div>
54
  </div>
55
- <div className="bg-white p-2.5 text-center">
56
- <div className="text-[9px] text-slate font-bold uppercase tracking-wider mb-0.5">STATIC SRAM</div>
57
- <div className="text-[14px] font-black text-ink tabular-nums">28 BYTES</div>
58
- <div className="text-[8px] text-slate tracking-tighter mt-0.5">0 DYNAMIC MALLOC</div>
59
  </div>
60
- <div className="bg-white p-2.5 text-center">
61
- <div className="text-[9px] text-slate font-bold uppercase tracking-wider mb-0.5">SERIAL BRIDGE</div>
62
- <div className="text-[14px] font-black text-ink tabular-nums">115,200</div>
63
- <div className="text-[8px] text-slate tracking-tighter mt-0.5">WEB SERIAL API</div>
64
  </div>
65
- <div className="bg-white p-2.5 text-center">
66
  <div className="text-[9px] text-slate font-bold uppercase tracking-wider mb-0.5">ECG SAMPLING</div>
67
- <div className="text-[14px] font-black text-hazard tabular-nums">250 HZ</div>
68
- <div className="text-[8px] text-slate tracking-tighter mt-0.5">LEAD-II WAVEFORM</div>
69
  </div>
70
  </div>
71
 
72
- {/* Tactile Action Button Matrix */}
73
- <div className="grid grid-cols-1 sm:grid-cols-12 gap-3 max-w-xl">
74
  <Link
75
  href="/monitor"
76
- className="btn-tactile-hazard sm:col-span-7 h-13 px-6 text-[13px] sm:text-[14px] font-bold uppercase tracking-widest flex items-center justify-center gap-2 cursor-pointer"
77
  >
78
  <Activity size={16} />
79
  Launch Monitor
@@ -81,27 +63,27 @@ export default function Home() {
81
 
82
  <Link
83
  href="/simulator"
84
- className="btn-tactile bg-white text-ink border-2 border-ink sm:col-span-5 h-13 px-5 text-[12px] sm:text-[13px] font-bold uppercase tracking-widest hover:bg-ink hover:text-white transition-colors flex items-center justify-center gap-1.5 cursor-pointer"
85
  >
 
86
  Simulator
87
  <ArrowRight size={14} />
88
  </Link>
89
 
90
  <Link
91
  href="/edge"
92
- className="btn-tactile bg-canvas-cream text-ink border-2 border-ink sm:col-span-5 h-13 px-5 text-[12px] sm:text-[13px] font-bold uppercase tracking-widest hover:bg-ink hover:text-white transition-colors flex items-center justify-center gap-2 cursor-pointer"
93
  >
94
  <Terminal size={14} />
95
- Edge Compiler
96
  </Link>
97
 
98
  <Link
99
  href="/mlops"
100
- className="btn-tactile bg-white text-ink border-2 border-ink sm:col-span-7 h-13 px-6 text-[12px] sm:text-[13px] font-bold uppercase tracking-widest hover:bg-ink hover:text-white transition-colors flex items-center justify-center gap-2 cursor-pointer"
101
  >
102
  <GitBranch size={14} />
103
  MLOps Registry
104
- <ArrowRight size={13} className="opacity-60" />
105
  </Link>
106
  </div>
107
  </div>
@@ -114,22 +96,22 @@ export default function Home() {
114
  className="bg-white p-6 sm:p-7 flex flex-col justify-between group cursor-pointer hover:bg-[#FAF8F5] transition-colors relative"
115
  >
116
  <div className="flex justify-between items-center mb-3">
117
- <div className="text-[10px] text-slate font-bold tracking-[0.15em] group-hover:text-hazard transition-colors flex items-center gap-2">
118
  <span className="w-1.5 h-1.5 bg-hazard inline-block" />
119
- <span>01 // QUANTIZATION ENGINE</span>
120
  </div>
121
  <Cpu size={16} className="text-slate group-hover:text-hazard transition-colors" />
122
  </div>
123
  <div>
124
- <h3 className="font-sans text-[18px] sm:text-[20px] font-black uppercase tracking-[-0.02em] mb-2 text-ink group-hover:text-hazard transition-colors">
125
  INT8 Quantized Weights
126
  </h3>
127
- <p className="text-[12px] text-slate leading-relaxed uppercase">
128
  Continuous weight vectors and decision thresholds quantized to 8-bit integers. Delivers 75% SRAM reduction for constrained microcontrollers without floating-point FPU reliance.
129
  </p>
130
  </div>
131
  <div className="mt-4 pt-3 border-t border-ink/10 flex justify-between items-center text-[10px] font-bold text-slate tracking-wider tabular-nums">
132
- <span>MEMORY_SCALE: 4:1 INT8</span>
133
  <span className="text-hazard font-black flex items-center gap-1">
134
  OPEN COMPILER →
135
  </span>
@@ -142,17 +124,17 @@ export default function Home() {
142
  className="bg-canvas-cream p-6 sm:p-7 flex flex-col justify-between group cursor-pointer hover:bg-white transition-colors relative"
143
  >
144
  <div className="flex justify-between items-center mb-3">
145
- <div className="text-[10px] text-slate font-bold tracking-[0.15em] group-hover:text-hazard transition-colors flex items-center gap-2">
146
  <span className="w-1.5 h-1.5 bg-hazard inline-block" />
147
- <span>02 // ENSEMBLE ARBITRATION</span>
148
  </div>
149
  <Zap size={16} className="text-slate group-hover:text-hazard transition-colors" />
150
  </div>
151
  <div>
152
- <h3 className="font-sans text-[18px] sm:text-[20px] font-black uppercase tracking-[-0.02em] mb-2 text-ink group-hover:text-hazard transition-colors">
153
  5-Model Soft-Voting
154
  </h3>
155
- <p className="text-[12px] text-slate leading-relaxed uppercase">
156
  Aggregates class probabilities across Random Forest (30 trees), Linear SVM, Logistic Regression, MLP Neural Network, and KNN to suppress single-estimator variance.
157
  </p>
158
  </div>
@@ -170,18 +152,18 @@ export default function Home() {
170
  className="bg-white p-6 sm:p-7 flex flex-col justify-between group cursor-pointer hover:bg-[#FAF8F5] transition-colors relative"
171
  >
172
  <div className="flex justify-between items-center mb-3">
173
- <div className="text-[10px] text-slate font-bold tracking-[0.15em] group-hover:text-hazard transition-colors flex items-center gap-2">
174
  <span className="w-1.5 h-1.5 bg-hazard inline-block" />
175
- <span>03 // CODE GENERATION</span>
176
  </div>
177
  <ShieldCheck size={16} className="text-slate group-hover:text-hazard transition-colors" />
178
  </div>
179
  <div>
180
- <h3 className="font-sans text-[18px] sm:text-[20px] font-black uppercase tracking-[-0.02em] mb-2 text-ink group-hover:text-hazard transition-colors">
181
  Zero-Malloc C Headers
182
  </h3>
183
- <p className="text-[12px] text-slate leading-relaxed uppercase">
184
- Transpiles scikit-learn ensembles directly to standalone C99 headers (<code className="text-hazard font-bold">model.h</code>) with zero dynamic heap allocation. Immune to heap fragmentation crashes on bare-metal firmware.
185
  </p>
186
  </div>
187
  <div className="mt-4 pt-3 border-t border-ink/10 flex justify-between items-center text-[10px] font-bold text-slate tracking-wider tabular-nums">
@@ -194,17 +176,17 @@ export default function Home() {
194
  </div>
195
  </section>
196
 
197
- {/* Industrial Specification Ticker Rail */}
198
- <section className="border-y-2 border-ink bg-white py-3 px-4 sm:px-8 overflow-hidden">
199
  <div className="max-w-350 mx-auto flex items-center justify-between text-[11px] font-bold uppercase tracking-wider text-slate flex-wrap gap-4">
200
  <div className="flex items-center gap-2 text-ink">
201
- <span className="w-2.5 h-2.5 bg-hazard inline-block" />
202
- <span className="font-black">CORE_SPECIFICATIONS:</span>
203
  </div>
204
- <span>UART 115,200 BAUD (8-N-1)</span>
205
  <span>LEAD-II SAMPLING (250 HZ)</span>
206
  <span>5-CHANNEL VITAL SIGN VECTOR</span>
207
- <span>ZERO-MALLOC C99 TRANSPILATION</span>
208
  <span>SHAP TREE ATTRIBUTION</span>
209
  </div>
210
  </section>
 
1
  "use client";
2
 
3
  import Link from "next/link";
4
+ import { Cpu, Zap, Activity, ShieldCheck, ArrowRight, Terminal, GitBranch, Sliders } from "lucide-react";
5
 
6
  export default function Home() {
7
  return (
8
  <main className="min-h-dvh bg-canvas-cream flex flex-col font-mono selection:bg-hazard selection:text-white bg-blueprint-grid">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  {/* Hero Section */}
10
  <section className="max-w-350 mx-auto w-full px-4 sm:px-8 pt-10 md:pt-16 pb-16 grid grid-cols-1 lg:grid-cols-12 gap-10 lg:gap-14 flex-1">
11
  <div className="lg:col-span-7 flex flex-col justify-center">
12
+ {/* Eyebrow Badge */}
13
+ <div className="inline-flex items-center gap-2 px-3 py-1 text-[11px] font-bold uppercase tracking-wider border border-ink/20 bg-white text-ink mb-6 self-start shadow-[2px_2px_0px_#141413]">
14
+ <span className="w-2 h-2 rounded-full bg-hazard" />
15
+ <span>Edge AI Clinical Intelligence</span>
16
+ <span className="text-ink/30">/</span>
17
+ <span className="text-slate font-medium">ESP32 &amp; ARM Cortex-M</span>
18
  </div>
19
 
20
+ <h1 className="text-[clamp(2.75rem,6vw,6rem)] mb-6 leading-[0.92] text-ink tracking-tight font-extrabold text-balance">
21
  CLINICAL<br />
22
  INFERENCE<br />
23
  <span className="text-hazard">AT THE EDGE.</span>
24
  </h1>
25
 
26
+ <p className="text-[15px] sm:text-[16px] text-slate-700 max-w-xl leading-relaxed text-pretty mb-8 font-sans font-normal border-l-3 border-hazard pl-4">
27
+ Cardiovascular anomaly classification transpiled directly for bare-metal microcontrollers. Stream multi-channel physiological vitals, evaluate a calibrated 5-model soft-voting ensemble, and export zero-malloc C99 headers for embedded silicon.
28
  </p>
29
 
30
  {/* Technical Telemetry Badges Matrix */}
31
  <div className="crosshair-corner grid grid-cols-2 sm:grid-cols-4 gap-px bg-ink border-2 border-ink mb-8 max-w-xl shadow-[3px_3px_0px_0px_#141413]">
32
+ <div className="bg-white p-3 text-center">
33
  <div className="text-[9px] text-slate font-bold uppercase tracking-wider mb-0.5">INFERENCE LATENCY</div>
34
+ <div className="text-[15px] font-black text-ink tabular-nums">18.4 μs</div>
35
+ <div className="text-[9px] text-slate tracking-tight mt-0.5">ESP32-S3 @ 240MHz</div>
36
  </div>
37
+ <div className="bg-white p-3 text-center">
38
+ <div className="text-[9px] text-slate font-bold uppercase tracking-wider mb-0.5">STATIC RAM</div>
39
+ <div className="text-[15px] font-black text-ink tabular-nums">28 Bytes</div>
40
+ <div className="text-[9px] text-slate tracking-tight mt-0.5">Zero Dynamic Heap</div>
41
  </div>
42
+ <div className="bg-white p-3 text-center">
43
+ <div className="text-[9px] text-slate font-bold uppercase tracking-wider mb-0.5">SERIAL BUS</div>
44
+ <div className="text-[15px] font-black text-ink tabular-nums">115.2k</div>
45
+ <div className="text-[9px] text-slate tracking-tight mt-0.5">Web Serial API</div>
46
  </div>
47
+ <div className="bg-white p-3 text-center">
48
  <div className="text-[9px] text-slate font-bold uppercase tracking-wider mb-0.5">ECG SAMPLING</div>
49
+ <div className="text-[15px] font-black text-hazard tabular-nums">250 Hz</div>
50
+ <div className="text-[9px] text-slate tracking-tight mt-0.5">Lead-II Waveform</div>
51
  </div>
52
  </div>
53
 
54
+ {/* Action Button Grid */}
55
+ <div className="grid grid-cols-1 sm:grid-cols-2 gap-3 max-w-xl">
56
  <Link
57
  href="/monitor"
58
+ className="btn-tactile-hazard h-12 px-6 text-[13px] font-bold uppercase tracking-wider flex items-center justify-center gap-2 cursor-pointer"
59
  >
60
  <Activity size={16} />
61
  Launch Monitor
 
63
 
64
  <Link
65
  href="/simulator"
66
+ className="btn-tactile bg-white text-ink border-2 border-ink h-12 px-5 text-[12px] font-bold uppercase tracking-wider hover:bg-ink hover:text-white transition-colors flex items-center justify-center gap-1.5 cursor-pointer"
67
  >
68
+ <Sliders size={14} />
69
  Simulator
70
  <ArrowRight size={14} />
71
  </Link>
72
 
73
  <Link
74
  href="/edge"
75
+ className="btn-tactile bg-canvas-cream text-ink border-2 border-ink h-12 px-5 text-[12px] font-bold uppercase tracking-wider hover:bg-ink hover:text-white transition-colors flex items-center justify-center gap-2 cursor-pointer"
76
  >
77
  <Terminal size={14} />
78
+ C99 Compiler
79
  </Link>
80
 
81
  <Link
82
  href="/mlops"
83
+ className="btn-tactile bg-white text-ink border-2 border-ink h-12 px-6 text-[12px] font-bold uppercase tracking-wider hover:bg-ink hover:text-white transition-colors flex items-center justify-center gap-2 cursor-pointer"
84
  >
85
  <GitBranch size={14} />
86
  MLOps Registry
 
87
  </Link>
88
  </div>
89
  </div>
 
96
  className="bg-white p-6 sm:p-7 flex flex-col justify-between group cursor-pointer hover:bg-[#FAF8F5] transition-colors relative"
97
  >
98
  <div className="flex justify-between items-center mb-3">
99
+ <div className="text-[10px] text-slate font-bold tracking-wider group-hover:text-hazard transition-colors flex items-center gap-2">
100
  <span className="w-1.5 h-1.5 bg-hazard inline-block" />
101
+ <span>01 · QUANTIZATION ENGINE</span>
102
  </div>
103
  <Cpu size={16} className="text-slate group-hover:text-hazard transition-colors" />
104
  </div>
105
  <div>
106
+ <h3 className="font-sans text-[18px] sm:text-[20px] font-black uppercase tracking-tight mb-2 text-ink group-hover:text-hazard transition-colors">
107
  INT8 Quantized Weights
108
  </h3>
109
+ <p className="text-[13px] text-slate-600 leading-relaxed font-sans font-normal">
110
  Continuous weight vectors and decision thresholds quantized to 8-bit integers. Delivers 75% SRAM reduction for constrained microcontrollers without floating-point FPU reliance.
111
  </p>
112
  </div>
113
  <div className="mt-4 pt-3 border-t border-ink/10 flex justify-between items-center text-[10px] font-bold text-slate tracking-wider tabular-nums">
114
+ <span>MEMORY SCALE: 4:1 INT8</span>
115
  <span className="text-hazard font-black flex items-center gap-1">
116
  OPEN COMPILER →
117
  </span>
 
124
  className="bg-canvas-cream p-6 sm:p-7 flex flex-col justify-between group cursor-pointer hover:bg-white transition-colors relative"
125
  >
126
  <div className="flex justify-between items-center mb-3">
127
+ <div className="text-[10px] text-slate font-bold tracking-wider group-hover:text-hazard transition-colors flex items-center gap-2">
128
  <span className="w-1.5 h-1.5 bg-hazard inline-block" />
129
+ <span>02 · ENSEMBLE ARBITRATION</span>
130
  </div>
131
  <Zap size={16} className="text-slate group-hover:text-hazard transition-colors" />
132
  </div>
133
  <div>
134
+ <h3 className="font-sans text-[18px] sm:text-[20px] font-black uppercase tracking-tight mb-2 text-ink group-hover:text-hazard transition-colors">
135
  5-Model Soft-Voting
136
  </h3>
137
+ <p className="text-[13px] text-slate-600 leading-relaxed font-sans font-normal">
138
  Aggregates class probabilities across Random Forest (30 trees), Linear SVM, Logistic Regression, MLP Neural Network, and KNN to suppress single-estimator variance.
139
  </p>
140
  </div>
 
152
  className="bg-white p-6 sm:p-7 flex flex-col justify-between group cursor-pointer hover:bg-[#FAF8F5] transition-colors relative"
153
  >
154
  <div className="flex justify-between items-center mb-3">
155
+ <div className="text-[10px] text-slate font-bold tracking-wider group-hover:text-hazard transition-colors flex items-center gap-2">
156
  <span className="w-1.5 h-1.5 bg-hazard inline-block" />
157
+ <span>03 · CODE GENERATION</span>
158
  </div>
159
  <ShieldCheck size={16} className="text-slate group-hover:text-hazard transition-colors" />
160
  </div>
161
  <div>
162
+ <h3 className="font-sans text-[18px] sm:text-[20px] font-black uppercase tracking-tight mb-2 text-ink group-hover:text-hazard transition-colors">
163
  Zero-Malloc C Headers
164
  </h3>
165
+ <p className="text-[13px] text-slate-600 leading-relaxed font-sans font-normal">
166
+ Transpiles scikit-learn ensembles directly to standalone C99 headers (<code className="text-hazard font-bold font-mono">model.h</code>) with zero dynamic heap allocation, avoiding fragmentation crashes on bare-metal firmware.
167
  </p>
168
  </div>
169
  <div className="mt-4 pt-3 border-t border-ink/10 flex justify-between items-center text-[10px] font-bold text-slate tracking-wider tabular-nums">
 
176
  </div>
177
  </section>
178
 
179
+ {/* Understated Architecture Strip */}
180
+ <section className="border-t-2 border-ink bg-white py-3.5 px-4 sm:px-8">
181
  <div className="max-w-350 mx-auto flex items-center justify-between text-[11px] font-bold uppercase tracking-wider text-slate flex-wrap gap-4">
182
  <div className="flex items-center gap-2 text-ink">
183
+ <span className="w-2 h-2 bg-hazard inline-block" />
184
+ <span className="font-black">CORE ARCHITECTURE:</span>
185
  </div>
186
+ <span>UART 115,200 (8-N-1)</span>
187
  <span>LEAD-II SAMPLING (250 HZ)</span>
188
  <span>5-CHANNEL VITAL SIGN VECTOR</span>
189
+ <span>ZERO-MALLOC C99 ABI</span>
190
  <span>SHAP TREE ATTRIBUTION</span>
191
  </div>
192
  </section>