7/10/2019
Today, we ran our second participant for our research project. This time, it took less time than the previous run-through with the total time being around an hour and a half.
7/9/2019
Today, we continued to work on our Shaders project, and we have a presentable project! I can’t wait to present what we have worked on, I’m really proud of our accomplishments with shaders. Later today, we had a meeting with Birdie where we learned about how empathy works. We had to leave early in order to be on time for our presentation.
7/8/2019
Today, we began running tests. Before we ran it, we had a quick run-through of the project, and then we welcomed our first participant. I feel that it went well, however it takes around three hours to run a single participant, so we could at most run two per day. Finally, we found out where we keep the bio samples to test the cortisol levels of. I can’t wait to find out how the results will turn out!
HCI: GenderMag
I found the GenderMag presentation to be very interesting in the way that they decided to account for diversity in their users. Instead of deciding how users would behave based off of race or gender, they instead base user behavior off of individual personalities, which I feel is a more universal scale. This is important for debugging, as it makes the product more accessible to a broader audience. One invention, the curb cut, has made life so much simpler for everyone. The main takeaway of this lecture was that even though we as a society might not realize the problems with the status quo, by paying attention to the needs of people, we end up making life better for everyone.
Blog Post 14 | 7/1/2019
Today, we were finishing up the program and trying to debug. We had an error with ambisonic audio, which we thought caused the issue with the audio deciding whether to play or not. It did not work on the computer we are supposed to conduct research on, but it worked on Lucas’ computer. We decided to build the project from his laptop and run it on the research computer. It finally worked! Now we can focus on fine-tuning our project for tomorrow, as well as working on our research paper.
For our paper, we need to finish the abstract by July 12th in order to be able to present on August 1st. I’m pretty excited that our project is coming together!
Blog Post 13 | 6/25/2019
Today, we presented our project to Neil. Everything was working, until a script was added that broke the audio. We spent an hour trying to figure out what caused the audio to stop playing. Even now, it sometimes works and sometimes doesn’t work. However, we were able to build the project into an executable without errors, and we can still manually play the music by pressing the spacebar. We made some tweaks to the environment, changing the texture on some of the audience, but we are almost ready to begin testing.
During Craft of Research, we learned the proper way to visually represent data. This will come in handy for our research paper, as we will have to display our cortisol findings. We came to consensus that for the results that we are getting, it makes the most sense to make a line graph that measures the cortisol. levels in the control group, and the cortisol levels while conducting the stress task.
In the evening, some of us went hiking at Ledges. It was a peaceful walk and I enjoyed looking at nature in Iowa.
Here are some pictures I took along the hike:
Blog Post 12 | 6/21/2019
Today we began our journey into Unity shaders. We discussed how graphics cards use parallel processing to create shaders easier than the CPU. We compared calculating on the CPU versus the GPU, and the difference was very noticeable. On the CPU, the number of frames per second was around 5, while on the GPU, it was around 120 per second. We also went through the graphics pipeline, the process in which a 3D object is rendered to the screen. Finally, in the first section, we went over the structure of shaders in Unity, and we made one:


Blog Post 11| 6/19/2019
I improved the game I made in Unity today. In addition to adding controls that control the directional light in the scene, I also added controls for the player character to move around the environment. Here’s what I have so far:
This is the code I used to move the character around:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movement : MonoBehaviour
{
public float speed = 20f;
public Animator anim;
// Start is called before the first frame update
void Start()
{
anim.GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
Vector3 pos = transform.position;
if (Input.GetKey("w"))
{
pos.z -= speed * Time.deltaTime;
anim.Play("Run");
}
if (Input.GetKey("s"))
{
pos.z += speed * Time.deltaTime;
anim.Play("Run");
}
if (Input.GetKey("d"))
{
pos.x -= speed * Time.deltaTime;
anim.Play("Run");
}
if (Input.GetKey("a"))
{
pos.x += speed * Time.deltaTime;
anim.Play("Run");
}
transform.position = pos;
}
}
Here’s what I used to turn the lights on and off:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LightsToggle : MonoBehaviour
{
private bool on;
public Light sun;
public float onIntensity = 1.0f;
float offIntensity = 0.0f;
Color color1 = Color.red;
Color color2 = Color.blue;
// Start is called before the first frame update
void Start()
{
sun = GetComponent<Light>();
on = true;
}
public void OnPressed()
{
if (Input.GetKeyDown("space"))
{
if (on)
{
sun.intensity = offIntensity;
on = false;
}
else
{
//float t = Mathf.PingPong(Time.time, onIntensity) / onIntensity;
//sun.color = Color.Lerp(color1, color1, t);
sun.intensity = onIntensity;
//GetComponent<Renderer>().material.color = Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f);
on = true;
}
}
}
// Update is called once per frame
void Update()
{
OnPressed();
}
}
Some ways that I’m thinking about improving this project is by adding a running animation to the character when it moves. I also think that having a larger environment to walk around in and a clearer objective would make for a better game. Today, we also had to choose the Deeper Dive that we are interested in. The one that I most look forward to is GPU programming, as I feel that learning more about topics such as shaders will make me a better computer scientist.
Blog Post 10 | 6/17/2019 & 6/18/2019
We began the Unity class today. The VR Stress team has been working with Unity for the past week for our project, so we knew many of the basic concepts that were looked over today. We took this time to hone our skills. When its comes to Unity, I feel that I still have a lot to learn when it comes to scripting in C#. I was having trouble with the syntax of the language, specifically with the way you have to call objects in the script. In the end, I was able to create a script that moves an object up and down while rotating it. I also was able to import my scene from Maya, and character models from online.
Here is the result of my work today:
On Tuesday, my team and I got even more accomplished with our Unity project. We worked on animating an audience of people sitting in front of the user. We had a meeting with our mentor, Neil, and we determined that we could have a rough draft of our project finished by tomorrow. I’m a little nervous because I feel that we might need more time to have a rough draft finished by tomorrow, but am optimistic that we’ll be successful in our work. There was also a Luncheon Lecture today, which I found quite interesting. The speaker, Jing Dong, discussed the use of self-driving cars in a ride-sharing application. I found this talk really interesting because I’ve also thought about how technologies such as self-driving cars can be implemented into everyday life.
Earlier tonight, my group and I met up to work on our project. I’m having trouble with one of the scripts that is supposed to play music when the spacebar is pressed. I’m think I have the correct syntax and am calling the function correctly:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(AudioSource))]
public class PauseAudio : MonoBehaviour
{
// Start is called before the first frame update
public AudioClip clap;
private AudioSource audioSource;
public bool paused;
void Start()
{
audioSource = GetComponent<AudioSource>();
paused = true;
}
void OnPressed()
{
if (Input.GetKeyDown("space")){
if (paused)
{
audioSource.clip = clap;
audioSource.Play();
paused = false;
}
else if (paused == false) {
audioSource.clip = clap;
audioSource.Pause();
paused = true;
}
}
}
void Update()
{
}
}
I’ll continue looking over the code to find out what I did wrong.
Blog Post 9 | 6/12/2019
Today, we had our last day of SolidWorks. I feel that I’ve grown a lot since Monday when it comes to modeling parts, and then assembling them together. We also began Maya today, which I feel will be more comfortable for me, because I have used Blender in the past. However, once I began, it felt like an entirely different ballgame than Blender, partially due to the fact that the controls were messed up because of something to do with the GPU. However, I feel that I was still able to get a grasp of modelling with this software, and I feel that if I continue to practice, I’ll be able to make something great.
Bad Design – The Bathroom Door and the Vending Machine

This is the pinnacle of bad design. The bathroom door has a handle to pull, the door, instead of to push. The use of this design completely defeats the purpose of washing one’s hands, because as soon as you wash your hands, you immediately infect your hands again by touching a handle filled with germs.

Blog Post 8 | 6/11/2019
It was a rough start for me today. I woke up an hour late for work. It was a real reminder that I need to manage my time better so that I can go to bed at a reasonable time, so that this does not happen again. Besides that, the VR Stress team had a meeting at Birdie’s house where we discussed more about our project, learned how to take spit samples, and went on a goat walk. At the end of the day, we had yoga, which I thought I was not going to like. However, I found that it was actually very relaxing, and a great exercise.
Blog Post 7 | 6/10/2019
Today we began our introduction to Solidworks, a 3D modeling software that is used in engineering to design parts of machines. It was a rough start for me. I’ve used 3D modelling tools like Blender beforehand, but trying to design something in Solidworks was very difficult. The user interface was very complex, with multiple modes needed to make a very simple object. At the beginning of the day, I felt overwhelmed with the switching between multiple modes, and the order in which I had to switch between them. However, at the end of the lesson, I felt that I learned more about the process of creating something great in Solidworks.
Blog Post 6 | 6/7/2019
Today, we had our final class of C++. We learned about classes and object inheritance within a C++ project, and we created an example program to understand the concept. We also got assigned the task of creating a Shape Manager Class for our Square, Circle and Triangle Classes. In addition, my group and I continued to improve our problem paragraph for our research. I feel that the more we continue to rework our paragraph, the better our work gets.
Blog Post 5 |6/6/2019
Today we began our introduction to Solidworks, a 3D modeling software that is used in engineering to design parts of machines. It was a rough start for me. I’ve used 3D modelling tools like Blender beforehand, but trying to design something in Solidworks was very difficult. The user interface was very complex, with multiple modes needed to make a very simple object. At the beginning of the day, I felt overwhelmed with the switching between multiple modes, and the order in which I had to switch between them. However, at the end of the lesson, I felt that I learned more about the process of creating something great in Solidworks. In addition, I also spent more time on learning how to read a csv file into the terminal. It was difficult, but I found a way to convert the string values that I initially read from a text file, back into floats. In addition, I am learning more about using certain C++ functions, such as stoi, which converts a string type to an integer type. Today’s luncheon lecture was from Evrin Bahran, who is a faculty member at ISU. She discussed the importance of technology in education, in addition to the importance of STEM education. I understand the importance of STEM education, especially in my community. I attended a conference which stated that only 10% of CS majors were African American in 2016. It is important to have diversity in the workforce to have a multitude of different ideas from people of different backgrounds. In addition to the luncheon lecture, we had a meeting with the VR stress team, where we learned more about how stress works. We also brainstormed ideas for a stressful task in virtual reality, and demoed some of the tasks that had already been created. Finally, the day ended with Game Night, where a bunch of us played Smash, and ended the day on a good note.
Blog Post 4 | 6/5/2019
Today, we learned more about C++, beginning to look into flow control and loops. We learned about if-else statements, switch statements, and while, do while and for loops. The importance of these in C++ cannot be overstated. In addition, my group and I worked more on our problem paragraph, which I feel is going well. I’m working on a program that reads in data from an Excel sheet and prints it out to the console so the user can interact with it. I’ve never read in an Excel file, but I’ve used a text file before, so I copied the data from the spreadsheet and put it in a text file, just to try and get it to work in a familiar setting. Once I get it working there, I’ll find out how to read in the Excel file.
#include <iostream>
#include <Windows.h>
//You need to modify this program to do the following steps
//1. Depending on their choice ask for corresponding values and print them out(almost done for you)
//1 b.See if you can change the if statements to a switch case
//2. Put entire structure in a loop that runs until I press q
//3. Make sure it checks for bad values(-ve numbers, words ? )
//4. Add perimeter calculations as separate choices
//*
using namespace std;
int main()
{
int length;
int breadth;
int lengthsquare;
float radius;
cout << "1. Rectangle area" << endl;
cout << "2. Square area" << endl;
cout << "3. Circle area" << endl;
cout << "What is your choice?" << endl;
char choice;
cin >> choice;
while (choice != 'q'){
switch (choice)
{
case '1':
cout << "What length?: ";
cin >> length;
cout << "What breadth?: ";
cin >> breadth;
cout << length * breadth << endl;
break;
case '2':
cout << "What length?: ";
cin >> lengthsquare;
cout << endl << lengthsquare * lengthsquare << endl;
break;
case '3':
cout << "What is the radius?:";
cin >> radius;
cout << endl << 3.14 * (radius*radius) << endl;
break;
default:
cout << "I don't understand.\n";
}
cout << "1. Rectangle area" << endl;
cout << "2. Square area" << endl;
cout << "3. Circle area" << endl;
cout << "What is your choice?" << endl;
cin >> choice;
}
system("PAUSE");
return 0;
}
#include <iostream>
#include <math.h>
using namespace std;
int fib(int n);
int main()
{
cout << "Tell me how far you want to fib?" << endl;
int choice;
cin >> choice;
cout << fib(choice + 1) << endl;
//TODO:Print out nth fibonacci number
system("PAUSE");
return 0;
}
int fib(int n)
{
if ((n == 1) || (n == 2))
return n - 1;
else
return fib(n - 1) + fib(n - 2);
}
Blog Post 3 | 6/4/2019
Today, we had a Luncheon Lecture with Elliot. I found his journey to pursuing a PhD interesting, because of all the things that needed to happen in order to lead him on that path. This lecture has led me to wonder what I’ll encounter on my path to pursuing a PhD in Computer Science. One thing that I learned from this lecture is that you are where you stand today because of the decisions you made in the past. Even the decisions that you don’t think will have too much impact on your life can completely change your course. In addition to the luncheon lecture, today we had a barbeque and geocaching. The path for geocaching was hot and filled with bugs, but it was nice seeing the scenery of Ames, and how tranquil it is. I am really enjoying my time in this program.
Blog Post 2 | 6/3/2019
Today, we began our first lesson in learning the C++ programming language. We started the class by creating a very simple C++ program, which outputted “Hello World!” to the screen. Afterwards, we learned more about the syntax of C++, and the importance of semicolons in a C++ program. When we finished, we were given time to play around with the language for ourselves. I used the time to create a program that looped through an array of strings to list all of the values, in addition to beginning work on creating a program that can take an arbitrary amount of numbers to create a diamond from asterisks. One aspect of this class that I am looking forward to is the creation of graphical user interfaces in C++ using the Qt toolkit. I am also looking forward to furthering my skill with C++ in general, by learning more information about the language.
Here is the array loop:
// REU Projects.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include "pch.h"
#include <iostream>
#include <iomanip>
#include <string>
//This is a hello world program; It says "Hello World!"
void ListOfPrograms(int a);
void HelloWorld();
void WriteChoices();
void FoodFavorite();
void Arrays();
void MultiplyAndDivide();
int main()
{
int choice;
std::cout << "Hello! Choose Your Program: ";
WriteChoices();
std::cin >> choice;
ListOfPrograms(choice);
while (choice != 0) {
std::cout << "Hello! Choose Your Program: ";
WriteChoices();
std::cin >> choice;
ListOfPrograms(choice);
}
return 0;
}
void WriteChoices() {
std::cout << "\n0: Quit\n1: Hello World\n2: Favorite Food\n3:Arrays\n4:Multiply and Divide\n";
}
void HelloWorld() {
std::string HelloWorld[3] = { "Hello World!", "Hello\nWorld", "H l o W r d\n e l o l" };
for (int i = 0; i < 3; i++) {
std::cout << HelloWorld[i] << std::endl;
}
}
void FoodFavorite() {
std::string food;
std::cout << "What is your favorite food?: ";
std::cin >> food;
std::cout << "Your favorite food is " << food << std::endl;
}
void Arrays() {
std::string array[3];
std::cout << "Enter a string: ";
std::cin >> array[0];
std::cout << "Enter a string: ";
std::cin >> array[1];
std::cout << "Enter a string: ";
std::cin >> array[2];
for (int i = 0; i < 3; i++)
std::cout << "String [" << i << "]: " << array[i] << std::endl;
}
void MultiplyAndDivide() {
int numArray[4];
std::cout << "Enter the first number: ";
std::cin >> numArray[0];
std::cout << "Enter the second number: ";
std::cin >> numArray[1];
std::cout << "Enter the third number: ";
std::cin >> numArray[2];
std::cout << "Enter the fourth number: ";
std::cin >> numArray[3];
std::cout << "The result is: " << (numArray[0] * numArray[1]) / (numArray[2] + numArray[3]) << std::endl;
}
void ListOfPrograms(int a) {
switch (a)
{
case 0:
std::cout << "Goodbye!\n";
break;
case 1:
HelloWorld();
break;
case 2:
FoodFavorite();
break;
case 3:
Arrays();
break;
case 4:
MultiplyAndDivide();
break;
default:
std::cout << "I don't understand\n";
}
}
Blog Post 1 | 5/31/2019
Today, we had to take the Myers-Briggs Assessment. My personality type was INTJ. I found this interesting because I had taken the test previously and had received the same personality type. In addition, we had discussions within our individual teams, which each member stating what they wanted from the team. Afterwards, we had a presentation on how to properly use the library system. We then had a tour of different virtual reality technologies. The one that I found the most interesting was the C6, a state-of-the-art virtual environment. I found the way that it functioned really interesting. There were multiple projectors on all six sides of the 10 by 10 foot cube, each one projecting an image that corresponds with the side of the cube that it was on. The room was powered by 48 computers, with one main one controlling the other 40 to make sure that they did not get out of sync from one another. The complexity of the task really amazed me.

Additionally, we were given a tour of DABL, the 3D printing space at Iowa State. Finally, we were shown the numerous head mounted displays (HMDs) that Iowa State has at its disposal. The HMDs included the Oculus Rift, the HTC Vive, and the Magic Leap. Each virtual experience brought a certain, uniqueness, with the Vive’s full-room tracking, the Oculus’ impeccable controls and the Magic Leap’s augmented reality.
First Post
This is the first post in the REU Program
- A
- B
- C
- D
- E
- F

This will be a fun summer!