YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
import streamlit as st import time import random import pandas as pd
Configuración de la página
st.set_page_config(page_title="Kine-Precision AI", layout="centered")
st.title("🎯 Kine-Precision: Rehabilitación de Motricidad Fina") st.write("Evaluación cuantitativa de coordinación óculo-manual.")
Inicializar variables de estado
if 'puntos' not in st.session_state: st.session_state.puntos = 0 if 'tiempos' not in st.session_state: st.session_state.tiempos = [] if 'inicio_juego' not in st.session_state: st.session_state.inicio_juego = False
def registrar_clic(): fin = time.time() if 'last_time' in st.session_state: st.session_state.tiempos.append(round(fin - st.session_state.last_time, 3)) st.session_state.puntos += 1 st.session_state.last_time = time.time()
Interfaz de usuario
col1, col2 = st.columns(2) with col1: st.metric("Aciertos", st.session_state.puntos) with col2: if st.session_state.tiempos: st.metric("Velocidad Media (s)", round(sum(st.session_state.tiempos)/len(st.session_state.tiempos), 3))
if st.button("🚀 Iniciar/Reiniciar Evaluación"): st.session_state.puntos = 0 st.session_state.tiempos = [] st.session_state.inicio_juego = True st.session_state.last_time = time.time() st.rerun()
if st.session_state.inicio_juego: st.write("### Toca el objetivo lo más rápido posible:")
# Generar posición aleatoria para el botón (simulando tarea motriz)
margin_left = random.randint(0, 80)
st.markdown(f'<div style="margin-left: {margin_left}%;">', unsafe_allow_html=True)
if st.button("🔴 OBJETIVO", on_click=registrar_clic, key=f"target_{st.session_state.puntos}"):
pass
st.markdown('</div>', unsafe_allow_html=True)
# Mostrar reporte de variables bioinstrumentales
if st.session_state.puntos >= 10:
st.success("✅ Prueba completada. Analizando datos...")
df = pd.DataFrame({"Intento": range(1, len(st.session_state.tiempos)+1), "Tiempo Reacción (s)": st.session_state.tiempos})
st.line_chart(df.set_index("Intento"))
st.write("**Propuesta de Valor:** Análisis cinemático del tiempo de respuesta para diagnóstico de fatiga motriz.")