Knowledge base of ~80+ markdown files across 14 domains (00-13), Logseq graph, hardware design files (KiCAD), infrastructure configs, and talas-wiki static site. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
283 lines
11 KiB
Markdown
283 lines
11 KiB
Markdown
# Concepts innovants — Veza
|
|
|
|
> Specification detaillee des fonctionnalites qui n'existent nulle part ailleurs.
|
|
> Ce document sert de reference pour l'implementation future.
|
|
|
|
---
|
|
|
|
## 1. Systeme de patine de l'interface
|
|
|
|
### Concept
|
|
|
|
L'interface de Veza evolue visuellement avec le temps et l'usage, comme un objet
|
|
physique qui se patine. Chaque compte a une interface unique, forgee par son
|
|
histoire d'utilisation.
|
|
|
|
### Variables de patine
|
|
|
|
```
|
|
account_age_days → anciennete du compte en jours
|
|
total_play_time_hours → temps d'ecoute cumule
|
|
total_uploads → nombre de morceaux uploades
|
|
total_messages → nombre de messages envoyes
|
|
total_exchanges → nombre de trocs realises
|
|
zone_usage[zone_id] → nombre d'interactions par zone de l'interface
|
|
```
|
|
|
|
### Niveaux de patine
|
|
|
|
| Niveau | Condition | Effet visuel |
|
|
|--------|-----------|-------------|
|
|
| 0 — Neuf | Compte < 7 jours | Interface froide, surfaces lisses, pas de grain |
|
|
| 1 — Rode | Compte > 30 jours + 10h d'ecoute | Leger rechauffement des tons, grain subtil apparait |
|
|
| 2 — Vecu | Compte > 90 jours + 50h d'ecoute + 5 uploads | Tons cuivres plus profonds, textures plus riches, micro-details |
|
|
| 3 — Patine | Compte > 180 jours + 200h + 20 uploads | Palette pleinement rechauffee, usure visible sur les elements frequents |
|
|
| 4 — Heritage | Compte > 365 jours + 500h + activite communautaire | Patine complete, details uniques, effet "objet de famille" |
|
|
|
|
### Regles de patine par zone
|
|
|
|
Chaque zone de l'interface se patine independamment selon son usage :
|
|
- Le player se patine le plus vite (element le plus utilise)
|
|
- La barre de navigation se patine selon les onglets frequentes
|
|
- Le profil se patine selon l'activite de publication
|
|
- Les zones peu visitees restent "neuves" — creant un contraste naturel
|
|
|
|
### Contraintes techniques
|
|
|
|
- La patine est un calcul cote client, base sur des compteurs stockes dans le profil
|
|
- Pas de requete supplementaire au serveur — les compteurs sont inclus dans le
|
|
payload d'authentification
|
|
- Les changements visuels sont des CSS custom properties recalculees au login
|
|
- Cout en performance : negligeable (quelques calculs au chargement, 0 impact ensuite)
|
|
- La patine n'est jamais reversible ni achetable — elle est le reflet du temps reel
|
|
|
|
### Ce que la patine N'EST PAS
|
|
|
|
- Pas un systeme de niveaux / XP / gamification (pas de notification "vous avez
|
|
atteint le niveau 3 !")
|
|
- Pas un badge ou un statut visible par les autres
|
|
- Pas un avantage fonctionnel (pas de features debloquees)
|
|
- Le changement est si progressif que l'utilisateur ne le "remarque" pas
|
|
consciemment — il le ressent
|
|
|
|
---
|
|
|
|
## 2. Recherche comme exploration spatiale
|
|
|
|
### Concept
|
|
|
|
L'onglet de decouverte se transforme progressivement en un espace navigable
|
|
ou chaque artiste est un lieu a explorer, avec un paysage sonore en temps reel.
|
|
|
|
### Version 1 — Recherche enrichie (implementable maintenant)
|
|
|
|
La recherche classique par tags/genres, mais avec une presentation visuelle
|
|
plus riche que la norme :
|
|
- Les resultats ne sont pas une liste verticale mais un arrangement spatial
|
|
(grille organique, pas de rangees uniformes)
|
|
- Chaque resultat a une micro-visualisation du son (petite waveform, couleur
|
|
dominante de la pochette)
|
|
- Le survol d'un resultat declenche un preview audio de 5 secondes
|
|
- Les resultats se regroupent visuellement par affinite (genres proches =
|
|
resultats proches dans l'espace)
|
|
|
|
### Version 2 — Carte des artistes (moyen terme)
|
|
|
|
Un canvas 2D navigable :
|
|
- Chaque artiste est un point dans un espace 2D
|
|
- La position est determinee par les tags/genres (pas par popularite, pas par ML)
|
|
- L'utilisateur peut zoomer et se deplacer (pan/zoom fluide)
|
|
- En zoomant, les points deviennent des cartes avec pochette + nom + preview
|
|
- Un algorithme deterministe de placement (t-SNE ou UMAP applique aux vecteurs
|
|
de tags, pas de tracking comportemental)
|
|
- Le point de depart de l'exploration est determine par les genres preferes
|
|
de l'utilisateur (declares, pas devines)
|
|
|
|
### Version 3 — Paysage sonore (long terme)
|
|
|
|
Un monde genere proceduralement :
|
|
- Chaque zone a une ambiance sonore (fond ambient genere a partir des morceaux
|
|
des artistes de la zone)
|
|
- Le terrain est genere a partir de la densite d'artistes (plus d'artistes =
|
|
zone plus "peuplee" visuellement)
|
|
- L'utilisateur se deplace librement (clavier/touch/souris)
|
|
- Decouvrir un artiste = s'approcher d'un point lumineux dans le paysage
|
|
- Le paysage est different pour chaque utilisateur (point de depart aleatoire,
|
|
mais la topologie est la meme)
|
|
|
|
### Version 4 — Monde persistant (vision finale)
|
|
|
|
- Les artistes peuvent customiser leur "lieu" dans le monde
|
|
- Les zones actives (artistes qui publient souvent) sont plus vivantes visuellement
|
|
- Les collaborations entre artistes creent des chemins visibles entre leurs lieux
|
|
- L'exploration a une memoire : les lieux deja visites sont marques (comme une
|
|
carte qu'on remplit au fur et a mesure)
|
|
- Les nouveaux artistes apparaissent comme des "lumieres" dans des zones encore
|
|
non explorees
|
|
|
|
### Contraintes ethiques (non-negociables)
|
|
|
|
- Le placement n'est JAMAIS base sur la popularite, les revenus ou les paiements
|
|
- Pas de "boost" payant pour apparaitre en meilleure position
|
|
- Le classement est deterministe (memes tags = meme voisinage) et transparent
|
|
- La recherche textuelle classique reste toujours accessible en 1 clic
|
|
- L'exploration est optionnelle, jamais forcee
|
|
|
|
---
|
|
|
|
## 3. Espaces artistes personnalisables
|
|
|
|
### Concept
|
|
|
|
Chaque artiste a un espace qu'il peut personnaliser visuellement, pas juste
|
|
un profil uniforme.
|
|
|
|
### Elements personnalisables
|
|
|
|
| Element | Options |
|
|
|---------|---------|
|
|
| Couleur d'ambiance | Palette libre ou presets |
|
|
| Image de fond | Upload libre |
|
|
| Disposition des blocs | Drag & drop (morceaux, bio, visuels, liens, playlist) |
|
|
| Typographie | Choix parmi 5-8 familles (curees, pas illimitees) |
|
|
| Player | S'adapte automatiquement aux couleurs de l'espace |
|
|
| CSS custom (avance) | Zone d'injection CSS limitee pour les utilisateurs techniques |
|
|
|
|
### Themes communautaires
|
|
|
|
- A terme : les utilisateurs peuvent creer des themes complets et les partager
|
|
- Les themes sont echangeables (troc) ou offerts
|
|
- Un theme populaire beneficie a son createur (reputation, pas argent)
|
|
|
|
### Inspiration
|
|
|
|
L'esprit MySpace (expression personnelle) avec l'execution de 2026
|
|
(controles elegants, preview en temps reel, pas de HTML brut).
|
|
|
|
---
|
|
|
|
## 4. Systeme de troc
|
|
|
|
### Concept
|
|
|
|
Un tableau d'offres et de demandes ou les competences sont une monnaie.
|
|
|
|
### Structure d'une annonce de troc
|
|
|
|
```
|
|
Titre: "Je cherche un site web pour mon projet musical"
|
|
J'offre: "3 beats instrumentaux exclusifs, mix et master inclus"
|
|
Je cherche: "Un site one-page responsive avec player integre"
|
|
Tags: #beatmaking #webdev #echange
|
|
Disponibilite: Flexible
|
|
```
|
|
|
|
### Mecanismes
|
|
|
|
- Pas de monnaie interne, pas de points, pas de tokens
|
|
- Annonce visible par toute la communaute
|
|
- Les utilisateurs se contactent par le chat pour negocier
|
|
- Une fois le troc realise, les deux parties le "confirment"
|
|
- L'historique de trocs est visible sur le profil (reputation)
|
|
- Pas de systeme d'evaluation (pas de note sur 5, pas d'etoiles — la reputation
|
|
est l'historique lui-meme)
|
|
|
|
### Exemples de trocs possibles
|
|
|
|
| J'offre | Je cherche |
|
|
|---------|-----------|
|
|
| 5 beats exclusifs | Un site web |
|
|
| Mix + master d'un EP | Un shooting photo |
|
|
| Design de pochette | 3 instrumentales |
|
|
| Formation MAO (3 sessions) | Logo + charte graphique |
|
|
| Prise de son live | Montage video |
|
|
| Preset pack (Serum/Vital) | Enregistrement voix |
|
|
|
|
### Ce que ce n'est pas
|
|
|
|
- Pas une marketplace avec des prix (ca c'est le module Shop)
|
|
- Pas un systeme de faveurs comptabilisees
|
|
- Pas un smart contract ou un engagement legal — c'est de la confiance communautaire
|
|
- Le troc est informel et humain. Veza facilite la mise en relation, pas la transaction.
|
|
|
|
---
|
|
|
|
## 5. Sites artistes (a terme)
|
|
|
|
### Concept
|
|
|
|
Chaque artiste peut avoir un mini-site public accessible en dehors de Veza,
|
|
a une URL propre (artiste.veza.xxx ou un domaine custom).
|
|
|
|
### Contenu du site artiste
|
|
|
|
- Bio, photo, liens sociaux
|
|
- Lecteur audio avec ses morceaux
|
|
- Galerie (pochettes, photos, visuels)
|
|
- Lien vers le profil Veza
|
|
- Contact
|
|
- Design personnalise (theme Veza applique)
|
|
|
|
### Fonctionnement
|
|
|
|
- Genere statiquement a partir du profil Veza (SSG)
|
|
- Heberge sur les R720 (cout marginal : zero)
|
|
- Le site se met a jour quand l'artiste modifie son profil Veza
|
|
- Pas de publicite, pas de tracking
|
|
- L'artiste peut brancher son propre domaine (CNAME)
|
|
|
|
### Pourquoi c'est important
|
|
|
|
- Un artiste independant n'a souvent pas de site web
|
|
- Les plateformes (Spotify, SoundCloud) ne permettent pas la personnalisation
|
|
- Avoir son propre site = legitimite, autonomie, professionnalisme
|
|
- C'est un argument puissant pour rejoindre Veza (valeur tangible gratuite)
|
|
|
|
---
|
|
|
|
## 6. UI qui ne gaspille pas
|
|
|
|
### Philosophie
|
|
|
|
L'app doit etre complete et vivante MAIS econome. Chaque octet charge, chaque
|
|
requete envoyee, chaque animation jouee doit servir l'experience.
|
|
|
|
### Contraintes techniques
|
|
|
|
| Metrique | Objectif |
|
|
|----------|---------|
|
|
| Bundle JS initial | < 150 Ko gzip |
|
|
| First Contentful Paint | < 1.5s |
|
|
| Time to Interactive | < 2s |
|
|
| Requetes au chargement | < 5 |
|
|
| Animations simultanees | max 2 |
|
|
| Images : format | WebP ou AVIF, lazy-loaded |
|
|
| Audio : streaming | HLS adaptatif (qualite selon la connexion) |
|
|
| Polices | 2 max (variable fonts de preference) |
|
|
|
|
### Strategies
|
|
|
|
- **Code splitting agressif** : chaque page charge uniquement son code
|
|
- **Prefetch intelligent** : precharger la page la plus probable (pas tout)
|
|
- **Mode hors-ligne** : les morceaux recemment ecoutes sont caches localement
|
|
- **Mode eco** : un toggle qui desactive les textures, les animations et la patine
|
|
pour les machines/connexions modestes
|
|
- **Pas de polyfill inutile** : cibler les navigateurs modernes uniquement
|
|
- **SVG > PNG pour les icones** (poids moindre, rendu net a toute taille)
|
|
|
|
---
|
|
|
|
## Ordre d'implementation suggere
|
|
|
|
| Priorite | Concept | Complexite | Impact |
|
|
|----------|---------|-----------|--------|
|
|
| 1 | Identite visuelle (palette, typo, textures, icones) | Moyenne | Fondamental |
|
|
| 2 | Player audio repense | Moyenne | Coeur de l'experience |
|
|
| 3 | Espaces artistes personnalisables | Moyenne | Differenciation forte |
|
|
| 4 | Systeme de troc | Faible | Communaute |
|
|
| 5 | Patine de l'interface (V1 : global, pas par zone) | Faible | Signature unique |
|
|
| 6 | Recherche enrichie (V1) | Moyenne | UX amelioree |
|
|
| 7 | Sites artistes statiques | Moyenne | Valeur ajoutee |
|
|
| 8 | Carte des artistes 2D (V2) | Elevee | Innovation |
|
|
| 9 | Patine par zone (V2) | Moyenne | Profondeur |
|
|
| 10 | Monde explorable (V3-V4) | Tres elevee | Vision long terme |
|