Cavatappi commited on
Commit
d73c5f1
·
verified ·
1 Parent(s): 739ac66

trasforma tutte queste fonti in un sito web con molteplici pagine di anatomia e biomeccanica con parti del corpo inerenti agli appunti da studiare, in 3d con la possibilità di rotearli e con info puntati su ognuna di queste parti, fallo anche per la parte di allenamento e con i vari collegamenti tra esercizio e muscoli coinvolti: Calisthenics

Browse files

Il Calisthenics affonda le sue radici nell’antica Grecia, dove veniva praticato dai guerrieri spartani come forma di allenamento fisico e mentale. Il termine deriva dalle parole greche kalós (bello) e sthénos (forza), a indicare l’armonia tra potenza, controllo e bellezza del corpo. Questo metodo si basa su esercizi a corpo libero volti a sviluppare forza, equilibrio, coordinazione e consapevolezza motoria.
Nel nostro percorso studieremo le skill fondamentali e le relative propedeutiche, per poi approfondire l’anatomia umana, con particolare attenzione al sistema scheletrico, muscolare e alle fibre. Questo ci permetterà di comprendere come adattare ogni esercizio alla struttura individuale, ottimizzando tecnica e progressione.
Il Calisthenics è una disciplina incentrata sulla forza relativa, cioè la capacità di esprimere potenza in rapporto al proprio peso corporeo. Si basa sull’utilizzo del solo peso del corpo, ma può integrare zavorre e attrezzature per migliorare il ROM (Range of Motion delle articolazioni e potenziare i muscoli di stabilizzazione)
Per progredire in modo sicuro ed efficace è necessario sviluppare una maturità muscolare adeguata, rinforzando le muscolature target responsabili della stabilità e della propulsione nei movimenti complessi.
Riconoscimento e Validità dei Diplomi
La tua professionalità si fonda anche su un solido inquadramento normativo. Assicurati di operare sempre nel rispetto delle leggi vigenti. In Italia, la validità dei titoli è regolata da enti specifici:
Enti Riconosciuti: ACCADEMIA ITALIANA FITNESS (AIF) opera come scuola nazionale di MSP ITALIA e ASI, enti di promozione sportiva riconosciuti dal CONI e dal Ministero dell'Interno.
Validità Nazionale: I diplomi e i tesserini tecnici rilasciati al termine dei percorsi formativi AIF hanno validità su tutto il territorio nazionale.
Responsabilità Legale: Secondo l'articolo 8 della Legge sulla Tutela della salute dei praticanti, sei definito "istruttore specifico di disciplina" in quanto in possesso di abilitazione rilasciata da enti riconosciuti dal CONI. Questa qualifica ti rende legalmente responsabile della corretta applicazione dei programmi e delle attività svolte all'interno della struttura sportiva.
1.3. Il Sistema SNaQ e le Competenze dell'Istruttore
Il Sistema Nazionale delle Qualifiche (SNaQ)
Lo SNaQ (Sistema Nazionale delle Qualifiche dei Tecnici Sportivi) è il modello di riferimento per le qualifiche degli operatori sportivi in Italia, allineato al quadro europeo. Il suo focus non è sulla mera durata di un corso, ma sulla coerenza tra le competenze che acquisisci e i profili professionali richiesti. L'efficacia della tua formazione risiede nella capacità di tradurre le conoscenze in strumenti pratici e applicabili sul campo.
Secondo il glossario ufficiale dello SNaQ, la competenza che devi dimostrare è:
“la capacità dimostrata di utilizzare le conoscenze, le abilità e le attitudini personali, sociali e/o metodologiche, in situazioni reali di lavoro e nello sviluppo professionale e/o personale”.




2.0 Fondamenti Scientifici del Movimento Umano
2.1. Terminologia di Base: Piani e Assi Corporei
I movimenti del corpo umano avvengono su tre piani e attorno a tre assi, con una relazione di perpendicolarità tra ogni piano e il suo asse corrispondente.

Piano Corporeo
Asse Corrispondente (⊥)
Movimenti (Condensati)
Sagittale (Destra/Sinistra) Verticalmente
Trasversale (Lato-Lato) Perpendicolare al S.


Flessione / Estensione (Avanti-Indietro), Anteposizione / Retroposizione.
Frontale (Anteriore/Posteriore) Verticalmente
Sagittale (Avanti-Dietro) Perpendicolare al F.
Abduzione / Adduzione (Laterale), Inclinazione Laterale.
Trasversale (Superiore/Inferiore) Orizzontalmente
Longitudinale (Verticale) Perpendicolare al T.
Rotazione (Torsione), Supinazione / Pronazione, Intrarotazione / Extrarotazione.



















A. Movimenti sul Piano Sagittale (Asse Trasversale)

Movimento
Definizione Semplificata
Giustificazione Biomeccanica e Fisiologica
Flessione
Diminuzione dell'angolo articolare (segmento che si accorcia).
È il passaggio di un segmento corporeo da un atteggiamento lungo a uno breve.
Realizzata dalla contrazione degli agonisti (es. Bicipite Brachiale). Il muscolo, accorciandosi, avvicina inserzione e origine. Nel caso del bicipite brachiale, la sua azione flessoria sul gomito è massima quando il gomito è flesso a 80-90°.
Il bicipite brachiale(bi), non solo flette e supina il gomito, ma interviene anche nei movimenti di adduzione, abduzione e rotazione interna, stabilizzando l'articolazione scapolo-omerale.
Estensione
Aumento dell'angolo articolare (segmento che si allunga), opposto alla flessione.
Realizzata dai muscoli estensori (es. Tricipite Brachiale). Riporta l'angolo alla condizione di riposo o allungamento. è il muscolo estensore più grosso dell'arto superiore e tramite i suoi tre capi, è responsabile dell'estensione del gomito. Il capo lungo, in particolare, partecipa anche alla retroversione della scapola e all'adduzione della spalla.
Piegamento
Flessione in Catena Cinetica Chiusa (arto in appoggio).
L’'azione su un arto che sostiene il peso. Implica un lavoro complesso che richiede forte attivazione degli stabilizzatori (es. Pettorali, Deltoidi Anteriori, Tricipiti).
Anteposizione / Retroposizione
Spostamento di un segmento in avanti / indietro.
Protrazione / Retrazione della scapola: Cruciali nel Calisthenics per la stabilità: la protrazione (es. Gran Dentato) è vitale nella Planche; la retrazione (es. Romboidi, Gran Dorsale) è essenziale nelle trazioni.
Iperestensione
Movimento oltre l'escursione articolare normale.
Importanza Biomeccanica: L'eccessivo allungamento (es. della spalla nel Back Lever) è stressante. Richiede specifica mobilità propedeutica (German Hang) per prevenire infortuni.


B. Movimenti sul Piano Frontale (Asse Sagittale)
Movimento
Definizione Semplificata
Giustificazione Biomeccanica e Fisiologica
Abduzione
Allontanamento di un arto dalla linea mediana del corpo.
Richiede attivazione di muscoli come Deltoide e Sovraspinato (importante stabilizzatore e motore nei primi gradi).
Adduzione
Avvicinamento di un arto alla linea mediana del corpo.
Coinvolge muscoli potenti (es. Gran Dorsale, Gran Pettorale), fondamentali negli esercizi di tirata e spinta.
Inclinazione Laterale
Movimento laterale (lateroflessione) del tronco.
Essenziale per la mobilità del busto. Coinvolge i muscoli del tronco e il Quadrato dei Lombi. Parametro chiave per la postura.










C. Movimenti sul Piano Trasversale (Asse Longitudinale)
Movimento
Definizione Semplificata
Giustificazione Biomeccanica e Fisiologica
Rotazione / Torsione
Movimento attorno all'Asse Longitudinale.
Permette la rotazione del tronco. La capacità di resistere alla torsione (anti-rotazione, es. nella Human Flag) è cruciale e dipende dalla forza del Core (soprattutto i muscoli obliqui).
Intrarotazione / Extrarotazione
Rotazione interna / esterna di un segmento.
Vitale per la salute della spalla. Intrarotatori (es. Sottoscapolare) e Extrarotatori (es. Sottospinato, Piccolo Rotondo) sono essenziali per la stabilizzazione dinamica della scapolo-omerale.
Supinazione / Pronazione
Rotazione dell'avambraccio (palmo in alto / in basso).
Definisce il tipo di presa. La presa Supina (Chin-ups) recluta maggiormente il Bicipite Brachiale. La presa Prona (Pull-ups) isola maggiormente il Gran Dorsale.
Antiversione / Retroversione
Movimento del bacino sul Piano Sagittale.
Retroversione (o Hollow Body Position) è fondamentale per le skill isometriche (Planche, Front Lever, Handstand) per prevenire l'iperlordosi lombare e mantenere l'integrità strutturale del corpo.








Analisi dei Tessuti Corporei: Il corpo umano è composto da quattro tipologie principali di tessuto, ognuna con funzioni specializzate.
Tessuto Connettivo: È il tessuto più vasto e svolge funzioni di supporto strutturale e metabolico, oltre che di protezione. La sua organizzazione interna determina la sua funzione. Si distingue in:
Tessuto Lasso: Facilmente penetrabile, ha una funzione trofica (nutrimento), di trasporto e di difesa.
Tessuto Denso: Svolge un ruolo di contenimento e sostegno, agendo come una barriera. Altri tipi di tessuto connettivo includono il Tessuto connettivo mucoso e il Tessuto connettivo propriamente detto (o adiposo).
Tessuto Epiteliale: Ricopre la superficie esterna del corpo (pelle) e il rivestimento delle cavità interne. Le sue funzioni principali sono protezione, secrezione, assorbimento e filtrazione.
Tessuto Muscolare: Responsabile del movimento, si suddivide in tre tipi:
Scheletrico: Tessuto volontario che, contraendosi, genera il movimento delle parti scheletriche.
Organi Cavi (Liscio): Tessuto involontario che riveste gli organi interni e i vasi sanguigni.
Cardiaco: Tessuto muscolare involontario specifico del cuore.
Tessuto Nervoso: Composto da cellule specializzate nel ricevere stimoli e trasmettere impulsi da e verso tutte le parti del corpo, coordinando le risposte dell'organismo.
Struttura dei Sistemi e Apparati: Nel corpo umano, organi con funzioni simili si raggruppano in strutture più complesse, definite "sistemi" o "apparati".
Un sistema è formato da organi con la stessa funzione e struttura tissutale.
Un apparato è composto da organi con compiti simili ma formati da tessuti differenti.
I principali sistemi e apparati includono: Cardiocircolatorio, Respiratorio, Digestivo, Escretore, Nervoso, Endocrino, Riproduttivo, Muscoloscheletrico e Immunitario.
Sistema Digestivo
Componenti: Bocca, esofago, stomaco, intestino tenue, colon, fegato e pancreas.
Funzione Principale: Fornire nutrimento a tutto il corpo attraverso la digestione, l'assorbimento e l'assimilazione del cibo per produrre energia.
Sistema Nervoso: Questo sistema regola le risposte del corpo agli stimoli intern

Files changed (6) hide show
  1. README.md +8 -5
  2. components/footer.js +78 -0
  3. components/navbar.js +114 -0
  4. index.html +135 -19
  5. script.js +101 -0
  6. style.css +61 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Calianatomy 3d Explorer
3
- emoji: 📈
4
- colorFrom: blue
5
- colorTo: green
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: CaliAnatomy 3D Explorer 💪
3
+ colorFrom: red
4
+ colorTo: pink
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
components/footer.js ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ background-color: #111827;
9
+ color: #f3f4f6;
10
+ padding: 3rem 1rem;
11
+ }
12
+
13
+ .footer-container {
14
+ max-width: 1280px;
15
+ margin: 0 auto;
16
+ display: grid;
17
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
18
+ gap: 2rem;
19
+ }
20
+
21
+ .footer-logo {
22
+ font-size: 1.5rem;
23
+ font-weight: 700;
24
+ color: white;
25
+ margin-bottom: 1rem;
26
+ display: flex;
27
+ align-items: center;
28
+ }
29
+
30
+ .footer-logo-icon {
31
+ margin-right: 0.5rem;
32
+ }
33
+
34
+ .footer-description {
35
+ color: #9ca3af;
36
+ margin-bottom: 1.5rem;
37
+ }
38
+
39
+ .footer-heading {
40
+ font-size: 1.125rem;
41
+ font-weight: 600;
42
+ color: white;
43
+ margin-bottom: 1rem;
44
+ }
45
+
46
+ .footer-links {
47
+ display: flex;
48
+ flex-direction: column;
49
+ gap: 0.75rem;
50
+ }
51
+
52
+ .footer-link {
53
+ color: #9ca3af;
54
+ text-decoration: none;
55
+ transition: color 0.2s;
56
+ }
57
+
58
+ .footer-link:hover {
59
+ color: #f87171;
60
+ }
61
+
62
+ .social-links {
63
+ display: flex;
64
+ gap: 1rem;
65
+ margin-top: 1rem;
66
+ }
67
+
68
+ .social-link {
69
+ color: #9ca3af;
70
+ transition: color 0.2s;
71
+ }
72
+
73
+ .social-link:hover {
74
+ color: #f87171;
75
+ }
76
+
77
+ .copyright {
78
+ margin-top:
components/navbar.js ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ width: 100%;
9
+ position: sticky;
10
+ top: 0;
11
+ z-index: 50;
12
+ background-color: white;
13
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
14
+ }
15
+
16
+ nav {
17
+ max-width: 1280px;
18
+ margin: 0 auto;
19
+ padding: 1rem 2rem;
20
+ display: flex;
21
+ justify-content: space-between;
22
+ align-items: center;
23
+ }
24
+
25
+ .logo {
26
+ font-weight: 700;
27
+ font-size: 1.5rem;
28
+ color: #dc2626;
29
+ text-decoration: none;
30
+ display: flex;
31
+ align-items: center;
32
+ }
33
+
34
+ .logo-icon {
35
+ margin-right: 0.5rem;
36
+ }
37
+
38
+ .nav-links {
39
+ display: flex;
40
+ gap: 2rem;
41
+ }
42
+
43
+ .nav-link {
44
+ color: #4b5563;
45
+ font-weight: 500;
46
+ text-decoration: none;
47
+ transition: color 0.2s;
48
+ }
49
+
50
+ .nav-link:hover {
51
+ color: #dc2626;
52
+ }
53
+
54
+ .mobile-menu-button {
55
+ display: none;
56
+ background: none;
57
+ border: none;
58
+ cursor: pointer;
59
+ }
60
+
61
+ .mobile-menu {
62
+ display: none;
63
+ flex-direction: column;
64
+ gap: 1rem;
65
+ padding: 1rem;
66
+ background-color: white;
67
+ }
68
+
69
+ @media (max-width: 768px) {
70
+ .nav-links {
71
+ display: none;
72
+ }
73
+
74
+ .mobile-menu-button {
75
+ display: block;
76
+ }
77
+
78
+ .mobile-menu.active {
79
+ display: flex;
80
+ }
81
+ }
82
+ </style>
83
+
84
+ <nav>
85
+ <a href="index.html" class="logo">
86
+ <i data-feather="activity" class="logo-icon"></i>
87
+ CaliAnatomy
88
+ </a>
89
+
90
+ <div class="nav-links">
91
+ <a href="muscles.html" class="nav-link">Muscles</a>
92
+ <a href="skeleton.html" class="nav-link">Skeleton</a>
93
+ <a href="exercises.html" class="nav-link">Exercises</a>
94
+ <a href="biomechanics.html" class="nav-link">Biomechanics</a>
95
+ <a href="training.html" class="nav-link">Training</a>
96
+ </div>
97
+
98
+ <button class="mobile-menu-button" onclick="toggleMobileMenu()">
99
+ <i data-feather="menu"></i>
100
+ </button>
101
+ </nav>
102
+
103
+ <div id="mobile-menu" class="mobile-menu hidden">
104
+ <a href="muscles.html" class="nav-link">Muscles</a>
105
+ <a href="skeleton.html" class="nav-link">Skeleton</a>
106
+ <a href="exercises.html" class="nav-link">Exercises</a>
107
+ <a href="biomechanics.html" class="nav-link">Biomechanics</a>
108
+ <a href="training.html" class="nav-link">Training</a>
109
+ </div>
110
+ `;
111
+ }
112
+ }
113
+
114
+ customElements.define('custom-navbar', CustomNavbar);
index.html CHANGED
@@ -1,19 +1,135 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>CaliAnatomy 3D Explorer | Home</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://unpkg.com/feather-icons"></script>
11
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
12
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/examples/js/controls/OrbitControls.min.js"></script>
13
+ </head>
14
+ <body class="bg-gray-50">
15
+ <custom-navbar></custom-navbar>
16
+
17
+ <main class="container mx-auto px-4 py-8">
18
+ <section class="mb-16">
19
+ <div class="text-center mb-12">
20
+ <h1 class="text-4xl md:text-5xl font-bold text-red-600 mb-4">CaliAnatomy 3D Explorer</h1>
21
+ <p class="text-xl text-gray-700 max-w-3xl mx-auto">Interactive 3D models to master calisthenics anatomy and biomechanics</p>
22
+ </div>
23
+
24
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
25
+ <div class="bg-white rounded-xl shadow-lg overflow-hidden transition-transform hover:scale-105">
26
+ <div class="h-48 bg-red-100 flex items-center justify-center">
27
+ <i data-feather="activity" class="w-16 h-16 text-red-600"></i>
28
+ </div>
29
+ <div class="p-6">
30
+ <h3 class="text-xl font-bold text-gray-800 mb-2">Muscle System</h3>
31
+ <p class="text-gray-600 mb-4">Explore all muscle groups involved in calisthenics movements</p>
32
+ <a href="muscles.html" class="inline-flex items-center text-red-600 font-medium">
33
+ Explore <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i>
34
+ </a>
35
+ </div>
36
+ </div>
37
+
38
+ <div class="bg-white rounded-xl shadow-lg overflow-hidden transition-transform hover:scale-105">
39
+ <div class="h-48 bg-red-100 flex items-center justify-center">
40
+ <i data-feather="bone" class="w-16 h-16 text-red-600"></i>
41
+ </div>
42
+ <div class="p-6">
43
+ <h3 class="text-xl font-bold text-gray-800 mb-2">Skeletal System</h3>
44
+ <p class="text-gray-600 mb-4">Understand bone structures and joint mechanics</p>
45
+ <a href="skeleton.html" class="inline-flex items-center text-red-600 font-medium">
46
+ Explore <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i>
47
+ </a>
48
+ </div>
49
+ </div>
50
+
51
+ <div class="bg-white rounded-xl shadow-lg overflow-hidden transition-transform hover:scale-105">
52
+ <div class="h-48 bg-red-100 flex items-center justify-center">
53
+ <i data-feather="target" class="w-16 h-16 text-red-600"></i>
54
+ </div>
55
+ <div class="p-6">
56
+ <h3 class="text-xl font-bold text-gray-800 mb-2">Exercises Library</h3>
57
+ <p class="text-gray-600 mb-4">See which muscles work in each calisthenics exercise</p>
58
+ <a href="exercises.html" class="inline-flex items-center text-red-600 font-medium">
59
+ Explore <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i>
60
+ </a>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </section>
65
+
66
+ <section class="py-12 bg-white rounded-xl shadow-lg px-6">
67
+ <div class="max-w-4xl mx-auto text-center">
68
+ <h2 class="text-3xl font-bold text-gray-800 mb-6">Master Calisthenics Biomechanics</h2>
69
+ <p class="text-lg text-gray-600 mb-8">
70
+ Our interactive 3D models help you visualize muscle activation, joint angles, and movement patterns
71
+ in all fundamental calisthenics skills from pull-ups to planches.
72
+ </p>
73
+ <div id="home-3d-container" class="h-96 w-full bg-gray-100 rounded-lg mb-8">
74
+ <!-- 3D model will be loaded here -->
75
+ </div>
76
+ <a href="biomechanics.html" class="inline-block bg-red-600 hover:bg-red-700 text-white font-bold py-3 px-6 rounded-lg transition-colors">
77
+ Explore Biomechanics
78
+ </a>
79
+ </div>
80
+ </section>
81
+ </main>
82
+
83
+ <custom-footer></custom-footer>
84
+
85
+ <script src="components/navbar.js"></script>
86
+ <script src="components/footer.js"></script>
87
+ <script src="script.js"></script>
88
+ <script>
89
+ feather.replace();
90
+
91
+ // Simple 3D model for homepage
92
+ document.addEventListener('DOMContentLoaded', function() {
93
+ const container = document.getElementById('home-3d-container');
94
+ const scene = new THREE.Scene();
95
+ const camera = new THREE.PerspectiveCamera(75, container.clientWidth / container.clientHeight, 0.1, 1000);
96
+ const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
97
+ renderer.setSize(container.clientWidth, container.clientHeight);
98
+ container.appendChild(renderer.domElement);
99
+
100
+ // Add lights
101
+ const ambientLight = new THREE.AmbientLight(0xffffff, 0.5);
102
+ scene.add(ambientLight);
103
+ const directionalLight = new THREE.DirectionalLight(0xffffff, 0.8);
104
+ directionalLight.position.set(1, 1, 1);
105
+ scene.add(directionalLight);
106
+
107
+ // Create a simple human figure
108
+ const bodyGeometry = new THREE.SphereGeometry(1, 32, 32);
109
+ const bodyMaterial = new THREE.MeshPhongMaterial({ color: 0xff6b6b });
110
+ const body = new THREE.Mesh(bodyGeometry, bodyMaterial);
111
+ scene.add(body);
112
+
113
+ // Position camera
114
+ camera.position.z = 5;
115
+
116
+ // Animation loop
117
+ function animate() {
118
+ requestAnimationFrame(animate);
119
+ body.rotation.y += 0.01;
120
+ renderer.render(scene, camera);
121
+ }
122
+
123
+ // Handle window resize
124
+ window.addEventListener('resize', function() {
125
+ camera.aspect = container.clientWidth / container.clientHeight;
126
+ camera.updateProjectionMatrix();
127
+ renderer.setSize(container.clientWidth, container.clientHeight);
128
+ });
129
+
130
+ animate();
131
+ });
132
+ </script>
133
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
134
+ </body>
135
+ </html>
script.js ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Shared functions across pages
2
+ document.addEventListener('DOMContentLoaded', function() {
3
+ // Initialize tooltips
4
+ const tooltips = document.querySelectorAll('[data-tooltip]');
5
+ tooltips.forEach(tooltip => {
6
+ tooltip.addEventListener('mouseenter', function() {
7
+ const tooltipText = this.getAttribute('data-tooltip');
8
+ const tooltipElement = document.createElement('div');
9
+ tooltipElement.className = 'absolute z-50 bg-black text-white text-sm px-3 py-1 rounded-md';
10
+ tooltipElement.textContent = tooltipText;
11
+ this.appendChild(tooltipElement);
12
+
13
+ this.addEventListener('mouseleave', function() {
14
+ tooltipElement.remove();
15
+ });
16
+ });
17
+ });
18
+
19
+ // Smooth scrolling for anchor links
20
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
21
+ anchor.addEventListener('click', function(e) {
22
+ e.preventDefault();
23
+ document.querySelector(this.getAttribute('href')).scrollIntoView({
24
+ behavior: 'smooth'
25
+ });
26
+ });
27
+ });
28
+
29
+ // Mobile menu toggle (will be used by navbar component)
30
+ window.toggleMobileMenu = function() {
31
+ const menu = document.getElementById('mobile-menu');
32
+ menu.classList.toggle('hidden');
33
+ };
34
+ });
35
+
36
+ // Function to load 3D model (used across multiple pages)
37
+ function load3DModel(containerId, modelConfig) {
38
+ const container = document.getElementById(containerId);
39
+ if (!container) return;
40
+
41
+ // Basic Three.js setup
42
+ const scene = new THREE.Scene();
43
+ const camera = new THREE.PerspectiveCamera(75, container.clientWidth / container.clientHeight, 0.1, 1000);
44
+ const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
45
+ renderer.setSize(container.clientWidth, container.clientHeight);
46
+ container.innerHTML = '';
47
+ container.appendChild(renderer.domElement);
48
+
49
+ // Add lights
50
+ const ambientLight = new THREE.AmbientLight(0xffffff, 0.5);
51
+ scene.add(ambientLight);
52
+ const directionalLight = new THREE.DirectionalLight(0xffffff, 0.8);
53
+ directionalLight.position.set(1, 1, 1);
54
+ scene.add(directionalLight);
55
+
56
+ // Controls
57
+ const controls = new THREE.OrbitControls(camera, renderer.domElement);
58
+ controls.enableDamping = true;
59
+ controls.dampingFactor = 0.05;
60
+
61
+ // Add model based on config
62
+ if (modelConfig.type === 'muscle') {
63
+ // Simplified muscle model
64
+ const geometry = new THREE.SphereGeometry(1, 32, 32);
65
+ const material = new THREE.MeshPhongMaterial({
66
+ color: 0xff6b6b,
67
+ transparent: true,
68
+ opacity: 0.8
69
+ });
70
+ const sphere = new THREE.Mesh(geometry, material);
71
+ scene.add(sphere);
72
+ } else if (modelConfig.type === 'skeleton') {
73
+ // Simplified skeleton model
74
+ const geometry = new THREE.BoxGeometry(1, 2, 1);
75
+ const material = new THREE.MeshPhongMaterial({
76
+ color: 0xf5f5f5,
77
+ wireframe: false
78
+ });
79
+ const bone = new THREE.Mesh(geometry, material);
80
+ scene.add(bone);
81
+ }
82
+
83
+ // Position camera
84
+ camera.position.z = modelConfig.cameraDistance || 5;
85
+
86
+ // Animation loop
87
+ function animate() {
88
+ requestAnimationFrame(animate);
89
+ controls.update();
90
+ renderer.render(scene, camera);
91
+ }
92
+
93
+ // Handle window resize
94
+ window.addEventListener('resize', function() {
95
+ camera.aspect = container.clientWidth / container.clientHeight;
96
+ camera.updateProjectionMatrix();
97
+ renderer.setSize(container.clientWidth, container.clientHeight);
98
+ });
99
+
100
+ animate();
101
+ }
style.css CHANGED
@@ -1,28 +1,71 @@
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
2
+
3
  body {
4
+ font-family: 'Inter', sans-serif;
5
+ }
6
+
7
+ /* Custom scrollbar */
8
+ ::-webkit-scrollbar {
9
+ width: 8px;
10
+ height: 8px;
11
+ }
12
+
13
+ ::-webkit-scrollbar-track {
14
+ background: #f1f1f1;
15
+ }
16
+
17
+ ::-webkit-scrollbar-thumb {
18
+ background: #dc2626;
19
+ border-radius: 4px;
20
  }
21
 
22
+ ::-webkit-scrollbar-thumb:hover {
23
+ background: #b91c1c;
 
24
  }
25
 
26
+ /* Animation classes */
27
+ .fade-in {
28
+ animation: fadeIn 0.5s ease-in;
 
 
29
  }
30
 
31
+ @keyframes fadeIn {
32
+ from { opacity: 0; transform: translateY(20px); }
33
+ to { opacity: 1; transform: translateY(0); }
 
 
 
34
  }
35
 
36
+ .rotate-3d {
37
+ transform-style: preserve-3d;
38
+ transition: transform 0.5s ease;
39
  }
40
+
41
+ .rotate-3d:hover {
42
+ transform: rotateY(15deg);
43
+ }
44
+
45
+ /* Tooltip styles */
46
+ .tooltip {
47
+ position: relative;
48
+ display: inline-block;
49
+ }
50
+
51
+ .tooltip .tooltip-text {
52
+ visibility: hidden;
53
+ width: 200px;
54
+ background-color: #333;
55
+ color: #fff;
56
+ text-align: center;
57
+ border-radius: 6px;
58
+ padding: 8px;
59
+ position: absolute;
60
+ z-index: 1;
61
+ bottom: 125%;
62
+ left: 50%;
63
+ transform: translateX(-50%);
64
+ opacity: 0;
65
+ transition: opacity 0.3s;
66
+ }
67
+
68
+ .tooltip:hover .tooltip-text {
69
+ visibility: visible;
70
+ opacity: 1;
71
+ }