Sephfox commited on
Commit
50da573
1 Parent(s): 800fb90

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -8
app.py CHANGED
@@ -471,12 +471,15 @@ def create_heatmap(sensation_map, sensation_type):
471
  plt.title(f'{["Pain", "Pleasure", "Pressure", "Temperature", "Texture", "EM Field", "Tickle", "Itch", "Quantum", "Neural", "Proprioception", "Synesthesia"][sensation_type]} Sensation Map')
472
  plt.axis('off')
473
 
 
474
  buf = io.BytesIO()
475
  plt.savefig(buf, format='png')
476
  buf.seek(0)
477
- plt.close()
478
 
479
- return Image.open(buf)
 
 
480
 
481
  def generate_ai_response(keypoints, sensation_map):
482
  num_keypoints = len(keypoints)
@@ -650,9 +653,12 @@ def create_avatar():
650
  draw.line([start, end], fill=(0, 255, 255, 50), width=1)
651
 
652
  return img
653
- def create_avatar_with_heatmap(sensation_map, sensation_type):
654
- # Create the base avatar
655
- avatar_img = create_avatar()
 
 
 
656
 
657
  # Create a heatmap
658
  heatmap_img = create_heatmap(sensation_map, sensation_type)
@@ -671,9 +677,10 @@ def create_avatar_with_heatmap(sensation_map, sensation_type):
671
  combined_img = Image.alpha_composite(avatar_img.convert('RGBA'), heatmap_img.convert('RGBA'))
672
  return combined_img
673
 
674
- # Streamlit app
675
- st.title("NeuraSense AI: Advanced Humanoid Techno-Sensory Simulation")
676
-
 
677
 
678
 
679
 
@@ -718,6 +725,8 @@ with col2:
718
 
719
  # Toggle synesthesia
720
  use_synesthesia = st.checkbox("Enable Synesthesia", value=False)
 
 
721
 
722
  if canvas_result.json_data is not None:
723
  objects = canvas_result.json_data["objects"]
 
471
  plt.title(f'{["Pain", "Pleasure", "Pressure", "Temperature", "Texture", "EM Field", "Tickle", "Itch", "Quantum", "Neural", "Proprioception", "Synesthesia"][sensation_type]} Sensation Map')
472
  plt.axis('off')
473
 
474
+ # Instead of displaying, save to a buffer
475
  buf = io.BytesIO()
476
  plt.savefig(buf, format='png')
477
  buf.seek(0)
478
+ plt.close() # Close the figure to free up memory
479
 
480
+ # Create an image from the buffer
481
+ heatmap_img = Image.open(buf)
482
+ return heatmap_img
483
 
484
  def generate_ai_response(keypoints, sensation_map):
485
  num_keypoints = len(keypoints)
 
653
  draw.line([start, end], fill=(0, 255, 255, 50), width=1)
654
 
655
  return img
656
+ def create_avatar_with_heatmap(show_heatmap=True):
657
+ # Load avatar image
658
+ avatar_img = Image.open("avatar.png").resize((AVATAR_WIDTH, AVATAR_HEIGHT))
659
+
660
+ if not show_heatmap:
661
+ return avatar_img # Return the avatar image without heatmap
662
 
663
  # Create a heatmap
664
  heatmap_img = create_heatmap(sensation_map, sensation_type)
 
677
  combined_img = Image.alpha_composite(avatar_img.convert('RGBA'), heatmap_img.convert('RGBA'))
678
  return combined_img
679
 
680
+ # Create and display avatar with optional heatmap
681
+ st.subheader("Avatar with Optional Sensation Heatmap")
682
+ avatar_with_heatmap = create_avatar_with_heatmap(show_heatmap)
683
+ st.image(avatar_with_heatmap, use_column_width=True)
684
 
685
 
686
 
 
725
 
726
  # Toggle synesthesia
727
  use_synesthesia = st.checkbox("Enable Synesthesia", value=False)
728
+ # Add this with your other UI elements
729
+ show_heatmap = st.checkbox("Show Sensation Heatmap", value=True)
730
 
731
  if canvas_result.json_data is not None:
732
  objects = canvas_result.json_data["objects"]