|
8 | 8 | { |
9 | 9 | name: "HashPrep", |
10 | 10 | description: "Intelligent dataset debugging and preparation platform that catches critical data quality issues before they derail your ML pipeline.", |
11 | | - status: "Under Dev", |
| 11 | + status: "Beta", |
12 | 12 | features: ["Smart Detection", "Auto-Fix Suggestions", "Comprehensive Profiling", "Pipeline Integration"], |
| 13 | + links: { |
| 14 | + website: "https://hashprep.com", |
| 15 | + pypi: "https://pypi.org/project/hashprep/", |
| 16 | + github: "https://github.com/cachevector/hashprep", |
| 17 | + }, |
13 | 18 | }, |
14 | 19 | { |
15 | 20 | name: "FuzzyBunny", |
16 | 21 | description: "High-performance string matching engine with C++ SIMD optimization and Pybind11 bindings for Python runtimes.", |
17 | 22 | status: "Live", |
18 | 23 | features: ["Levenshtein Optimization", "Token-Based Similarity", "Hybrid Scoring", "Unicode Support"], |
19 | | - }, |
20 | | - { |
21 | | - name: "Noise2Normal", |
22 | | - description: "Statistical image restoration using Central Limit Theorem convergence for noise-free reconstruction without neural networks.", |
23 | | - status: "Research", |
24 | | - features: ["CLT-Based Denoising", "OpenCV Integration"], |
25 | | - }, |
26 | | - { |
27 | | - name: "Comprexx", |
28 | | - description: "Modern compression engineering exploring entropy coding, dictionary methods, and asymmetric numeral systems.", |
29 | | - status: "Research", |
30 | | - features: ["Huffman Coding", "LZ77", "ANS Analysis"], |
31 | | - }, |
32 | | - { |
33 | | - name: "TokenWise", |
34 | | - description: "Efficient binary data serialization with length-prefixed protocols designed for high-throughput systems.", |
35 | | - status: "Research", |
36 | | - features: ["TOON Format", "Zero-Copy Reads"], |
37 | | - }, |
38 | | - { |
39 | | - name: "MCPI", |
40 | | - description: "Monte Carlo probabilistic computing experiments exploring random sampling methods and convergence analysis.", |
41 | | - status: "Research", |
42 | | - features: ["Mersenne Twister PRNG", "Convergence Visualization"], |
| 24 | + links: { |
| 25 | + pypi: "https://pypi.org/project/fuzzybunny/", |
| 26 | + github: "https://github.com/cachevector/fuzzybunny", |
| 27 | + }, |
43 | 28 | }, |
44 | 29 | ]; |
45 | 30 |
|
|
82 | 67 | <ProductCard {...product} /> |
83 | 68 | {/each} |
84 | 69 | </div> |
| 70 | + <div class="view-all-projects"> |
| 71 | + <a href="/projects">View all projects →</a> |
| 72 | + </div> |
85 | 73 | </section> |
86 | 74 |
|
87 | 75 | <section class="section"> |
|
92 | 80 | <div class="mission-grid"> |
93 | 81 | {#each mission as item} |
94 | 82 | <article class="mission-card"> |
95 | | - <h3>{item.title}</h3> |
96 | | - <p>{item.text}</p> |
| 83 | + <div class="mission-accent"></div> |
| 84 | + <div class="mission-body"> |
| 85 | + <h3>{item.title}</h3> |
| 86 | + <p>{item.text}</p> |
| 87 | + </div> |
97 | 88 | </article> |
98 | 89 | {/each} |
99 | 90 | </div> |
|
154 | 145 | .mission-card { |
155 | 146 | background-color: var(--bg-primary); |
156 | 147 | border: var(--border-width) solid var(--border-default); |
157 | | - padding: 24px; |
| 148 | + display: flex; |
| 149 | + overflow: hidden; |
158 | 150 | transition: border-color 0.15s ease; |
159 | 151 | } |
160 | 152 |
|
161 | 153 | .mission-card:hover { |
162 | 154 | border-color: var(--border-hover); |
163 | 155 | } |
164 | 156 |
|
| 157 | + .mission-accent { |
| 158 | + width: 4px; |
| 159 | + flex-shrink: 0; |
| 160 | + background-color: var(--text-primary); |
| 161 | + } |
| 162 | +
|
| 163 | + .mission-body { |
| 164 | + padding: 24px; |
| 165 | + flex: 1; |
| 166 | + min-width: 0; |
| 167 | + } |
| 168 | +
|
165 | 169 | .mission-card h3 { |
166 | 170 | font-family: var(--font-heading); |
167 | 171 | font-weight: 600; |
|
204 | 208 | color: var(--accent-hover); |
205 | 209 | } |
206 | 210 |
|
| 211 | + .view-all-projects { |
| 212 | + margin-top: 24px; |
| 213 | + text-align: center; |
| 214 | + } |
| 215 | +
|
| 216 | + .view-all-projects a { |
| 217 | + font-weight: 500; |
| 218 | + font-size: 0.9375rem; |
| 219 | + color: var(--accent); |
| 220 | + text-decoration: none; |
| 221 | + transition: color 0.15s ease; |
| 222 | + } |
| 223 | +
|
| 224 | + .view-all-projects a:hover { |
| 225 | + color: var(--accent-hover); |
| 226 | + } |
| 227 | +
|
207 | 228 | @media (min-width: 641px) { |
208 | 229 | .section { |
209 | 230 | padding: 80px 0; |
|
223 | 244 | } |
224 | 245 |
|
225 | 246 | @media (min-width: 1025px) { |
226 | | - .product-grid { |
227 | | - grid-template-columns: repeat(3, 1fr); |
228 | | - } |
229 | | -
|
230 | 247 | .blog-grid { |
231 | 248 | grid-template-columns: repeat(3, 1fr); |
232 | 249 | } |
|
0 commit comments