Wednesday, June 25, 2025

Remaining Topics in IDS 2141 Summer 2025

Just to keep myself oriented, here are the remaining topics left in this course: 

3D Modeling -- Tinkercad (June 30 - July 7) -- Due Monday, 7/14

https://www.tinkercad.com/

Modeling with CAD -- Freecad (July 7 - July 14) -- Due Wednesday, 7/16

https://www.freecad.org/

Modeling for Printing -- Fusion 360 (July 14 - July 21)

https://www.autodesk.com/education/edu-software/fusion

https://www.autodesk.com/products/fusion-360/free-trial

Actual 3D Printing (3D Printer OS) (July 21 - July 28)

https://www.3dprinteros.com/

Virtual Reality -- Unity (July 28 - August 1)



Not covering Sound (Audacity)


Class recording from Wednesday, July 2, 2025 -- TinkerCAD #1: (spoon)



Class recording from Wednesday, 7/16: (two objects I already completed)



Class recording from Monday, July 21: (flask in Fusion 360)


Class recording from Wednesday, July 23:


Class recording from Monday, July 28:


Class recording from Wednesday, July 30:


Grade:
2 more journals
TinkerCAD, FreeCAD, and Fusion 360 go in 3D Modeling category and not Journal category
3D Printing and Unity VR go in the Final Submissions category

Participation 20%
Journals 20%
3D Modeling Unit 25%
App Inventor Unit 15%
Final Submissions 20%

Participation 100
Journals 

1st two are blog posts
3rd counts towards final

Fabricating for a Function

Part 1: Something in your life that sucks and can be solved with an object
Part 2: Model the object
Part 3: Print the object

Deliverables --
TinkerCAD due Wednesday, July 16
***FreeCAD due Monday, July 21 (<<-- STILL WORKING ON #2 AND #3!)
Fabricating for a Function, Part 1 due Wednesday, July 23 
***Fusion 360 due Monday, July 28  (<<-- STILL WORKING ON #2 AND #3!)
***Fabricating for a Function, Part 2 due Monday, July 28
***Fabricating for a Function, Part 3 due Friday, August 1
***VR Game Design with Unity Final due Friday, August 1

4 Settings on 3D Printer:

Layer Height [Resolution] (Ideal: 0.2 mm or 0.25 mm, Lower: 0.075 mm or 0.1 mm, Upper: 0.325 or 0.3 mm) (measured in tenths of a millimeter) -- you could use 0.3 if you want it fast
Infill (Ideal: 10%, Lower: 7%, Upper: 15%)
Build Plate Adhesion Properties (Ideal: Skirt) (None, Skirt, Brim -- peel off, Raft)
Supports? Yes or No (?)

Export, Choose ASCII STL

3D Printer OS (FSU)



Blue Tape, Hairspray, Elmer's Glue Stick

Virtual Reality Project (Journal Entry 13)

The final blog post for this class is on the topic of the virtual reality world you create.

Using Unity, you are to create a fully functional virtual experience that can be played on a VR headset. The main submission of your blog post is going to be a well-thought-out write-up on your creation, as well as a video you upload.

The video should be a short clip of someone that isn't you playing your VR experience. It would be wise to probably include both a shot of the person in the headset as well as the actual screen to show they are in fact, playing your creation. 

Your blog post will also need to include, as usual, several screenshots of your process in creating the world and screenshots of the finished product. You'll need to write about the standard blog post stuff, ie, what you did, what was hard, what you tried to do vs actually did, etc.

The only requirements for the actual virtual experience you create itself are that it has to utilize more than we did in class. This means, on a very basic level, adding in something outside of what we went over. This could be something simple or complex, but it does not have to involve code of any kind. I highly recommend finding something you like on the Asset Store (for free, of course) and smashing that in there. Make sure you specify what you've added in your blog post, as well as provide the link to the asset store page you got it from. Failure to do so will result in major point loss.

Do remember that this isn't an optional video section. You NEED to have a video uploaded of someone playing your experience. Obviously, due to the lack of headset, it will have to be on a mouse and keyboard, but that's still something you can record. And remember, it can't be YOU playing. It needs to be someone else. Parent, friend, dog, etc. Wordpress will want you to pay money to upload a video to your blog, don't do that. There are many ways on the internet to post videos for free and embed them in your blog. You'll need to figure out how to use one of those. You will not receive credit without a video of some sort. The video doesn't have to be long, just enough to satisfy the requirements.

Here is the guide that Mr.Anderson made specifically to assist in getting your projects running with the headsets in the hub: https://canvas.fsu.edu/courses/328392/assignments/2720986#

NOTE: To fullscreen the game (required for your video), you'll go to file, and press Build and Run. That way the game runs in fullscreen. Yes, the game must be in full screen in your video. It cannot be just someone playing with the unity editor open. Make the game fullscreen or you will be significantly penalized.

(EDIT: If you didn't install visual studio, you may have an issue getting it to run. That's fine. If you get the script environment error, you can still get to fullscreen by using the "Maximize on play" option. You'll find that in the top right of the game tab. It just tells the computer to make the game fullscreen when you click the play button.)

TIP: Don't wait until the last day to do this. Some of you may have computer issues rendering your creation, and you may have to tone down your scene a bit to run on your computer.



Monday, June 9, 2025

Journal Entry #3: Teamwork

Here is a screenshot of our team meeting that we had on Sunday night:

The app we will be creating is a Date Escape -- Fake Emergency text app. Before the meeting, I created a Google Doc to put the requirements for our app in. There will be three screens. The first will be a Profile or Setup screen. Here, the user can configure their app by entering Sender and Message to be added to the TinyDB. For example: Sender: "Roommate", Message: "Your grandmother died (AGAIN???)! Call your Mom NOW!!!!" The second screen will be the Trigger screen with a button or hidden spot that can be pressed to activate a countdown timer. Alternatively, the countdown timer will be triggered if you shake your phone. After the preset period of time, the fake emergency message will display like a notification on the screen. The third screen will maintain a history of messages that were displayed and the date and time for each.
We also talked about our roles. Vonne has previous experience with App Inventor and offered to do coding. Claudio and I also want to do coding because we want to learn App Inventor better. So we will take turns with the coding. Charles prefers to do testing and to give the presentation. We also divided up smaller tasks like creating the fake messages, finding an icon for the app, etc. There is plenty of work to do and everyone seems eager to do their part, so I think we have a great team!

Sunday, June 1, 2025

Karen's Journal Entry #2: My First App

Well, I did it! I created my first app. I have to say, though, that if grade school children are using App Inventor, it must be under the watchful and ever helpful eyes of their teachers. Yes, it is simple once you get the hang of it. But there are a million stumbling blocks you bump into along the way. For lack of having a dedicated teacher by my side while I created it, I used ChatGPT as a tutor and troubleshooter whenever I got stuck --

https://chatgpt.com/share/683d2f77-4378-8003-ac19-b093b82f5933

My first idea was to create an app that would play a Billie Eilish song when a button was clicked. I had "Birds of a Feather" in mind. But not wanting to actually purchase the .mp3 file (or risk violating copyright), I brainstormed for another idea and that's when I decided to create an app that would change the background color to a random color when you click a button. A very simple idea, but one with built-in anticipation of what color you might get next...or how many times you would have to press the button before the background turned pink! Exciting times!!!

Adding the button was easy. Figuring out how to center it on the screen, not so much. I ended up adding a label, removing the text from it, and giving it a height of 100 pixels, and using that as a spacer above the button. Then I created a container and moved the button into it. I resized the button itself with height and width of 100 pixels each and set the horizontal alignment of the container to centered. I then changed the text to "Surprise me!" That gave me a simple but attractive home screen.

Programming the actions took a bit of research to figure out. First, I added the "When Button1.Click" block. Then I added "Set Screen1.background color to." Then I had to figure out how to generate the random numbers for the colors. I used "make color, make a list" from the color drawer. And for the list, I used "random integer from 1 to 100" from the math drawer. I was confused at first why I needed a list with 3 random integers, so I asked ChatGPT and it explained that the "make color" block takes a list of 3 numbers which are the RGB values. [Note: There is a bug in the coding I just described -- read on, to see how I later noticed the bug and fixed it!]

Next, I needed to install an emulator since I do not have an Android device. I decided to install Genymotion and create a Google Pixel 2 emulator. I tested my app in the emulator and everything worked, but I seemed to be getting only colors within a certain range -- and no pink. 🙁 I reviewed my code and that's when I realized the default of "random numbers between 1 to 100" wasn't giving me the full color spectrum. I changed it to generate 3 random numbers with each one being between 0 and 255, and voilà -- I started getting brighter colors like neon greens, and yes -- even hot pink! Success!!!



I was surprised that creating, testing, debugging, and improving such a simple app took me several hours. That's exactly why I like taking classes like this because it forces me to stick it out and teach myself a new technology that I otherwise might not ever get around to experimenting with. And now that I've created my first app, I'm eager to add more functionality and create more complex apps, which I suspect is exactly what we will be doing over the next few weeks in this class.



Blog Post #12: VR Game Design in Unity

I enjoyed learning Unity and did a lot of experimenting. I also inadvertently downloaded Unity on the wrong computer and later realized ...