Digitizer Pen and Paper (Early Access)
Scroll down for more info.
Screenshots
Description
An Android notetaking app with Active Pen support (S-Pen compatible). This app started as a capstone project for my Computer Science master's program at CSUF.
The project aims to solve three users interface design flaws of handwriting apps on the Android platform that lead to inefficient notetaking. The project report declares these three design flaws:
- There are too many steps required to perform the task of switching writing tool and tool color.
- Limited page panning results in a cumbersome writing experience at the edges of the screen.
- Users forget to switch to the desired writing tool and tool color after using a previous tool.
The solutions to their respective problems are:
- Reduce the numbers of steps required to switch writing tool or tool color.
- Allow users unrestricted page panning to eliminate cumbersome writing at the screen edges.
- Render an optional cursor on screen that indicates to the user at all times the selected writing tool or tool color.
The design of the app focuses on implementing these solutions. Until further notice, this app will be available as an Early Access app on the Google Play Store.
Features
- Active pen input:
- Pen hover and palm rejection
- Eraser-nub recognition
- Functional barrel button
- Hovering tool cursor and overlay:
- Hovering cursor shows which color is selected
- It also shows the currently active tool
- Circular cursor previews the stroke size while hovering
- Available cursors: basic cursor, icon cursor, and label cursor
- Tool picker:
- Pen tool
- Marker tool
- Highlighter tool
- Eraser tool
- One-click interface
- Color picker:
- 12 primary colors
- One-click interface
- Size picker:
- 99 sizes for each tool
- Tool overlay previews stroke size
- One-click interface
- Tool-specific profiles:
- Each tool remembers its color
- Each tool remembers its stroke size
- Pages:
- Navigate previous and next pages
- Insert new pages
- Page templates:
- Wide ruled notebook paper A
- College ruled notebook paper A
- Narrow ruled notebook paper A
- Wide ruled notebook paper B
- College ruled notebook paper B
- Narrow ruled notebook paper B
- 4x4 squares per inch graph paper
- 5x5 squares per inch graph paper
- 4x4 dots per inch dot-grid paper
- 5x5 dots per inch dot-grid paper
- Plain printer paper
- Page colors:
- 12 primary colors for page background
- 12 primary colors for template lines
- Notebook management:
- Create a notebook
- Rename a notebook
- Delete a notebook
- Note management:
- Create a note
- Rename a note
- Move a note
- Delete a note
- Sound and haptics:
- Button press vibrations
- Writing tool haptic feedback
- Erasing tool haptic feedback
Requirements
- Android Lollipop 5.1 or newer
Floating Point Calculator for Android (IEEE 754)
Scroll down for more info.
Screenshots
Videos
Description
This calculator converts 32-bit and 64-bit binary strings into their floating point values (i.e. decimal values such as "3.14159..."). It can also convert the decimal number to a 32-bit and 64-bit binary string.
For example, the floating point (decimal) value of Pi is:
- 3.14159
The binary representation of Pi is therefore:
- 01000000 01001001 00001111 11010000
This calculator supports two-way conversions. To clarify what that means, here is an example of a two-way conversion:
- Float to Binary (3.14159 = 01000000 01001001 00001111 11010000)
- Binary to Float (01000000 01001001 00001111 11010000 = 3.14159)
This app is designed to help computer science and computer architecture students easily understand how a floating point value is calculated. For example: the binary string is color coded to help students differentiate between the sign, the exponent, and the mantissa. Another example: by long-pressing on an individual bit, this will activate an overlay that shows the user what happens when that specific bit is toggled on or off (try it out!).
This converter also supports other numerical systems or representations including: floating point, binary, hexadecimal, octal, signed integer, and unsigned integer numbers.
Features
- Floating point precisions:
- 32-bit
- 64-bit
- IEEE 754 bidirectional conversions:
- Float to binary
Binary to float - Float to hexadecimal
Hexadecimal to float - Float to octal
Octal to float
- Float to binary
- Other bidirectional conversions:
- Binary to hexadecimal
Hexadecimal to binary - Binary to octal
Octal to binary - Hexadecimal to octal
Octal to hexadecimal
- Binary to hexadecimal
- One-way conversions:
- Float to signed integer
- Float to unsigned integer
- Binary to signed integer
- Binary to unsigned integer
- Instant output:
- No need to press enter, values are calculated automatically
- Copy and paste:
- Access the built-in clipboard to make it easier to perform copy and paste operations
- Calculation hints:
- By long-pressing a bit, the hint will show how intermediate values are calculated
- Color coded bits:
- Bits are color coded by a red sign bit, green exponent bits, & blue mantissa bits
- Error calculation:
- The calculator will calculate the bit scheme that most closely represents the "entered" value
- The "actual" value shows the exact value of any given bit representation by the computer
- The "difference" will calculate the "error" between "actual" and "entered" values
- If the "accuracy" is 100%, than the "entered" value is represented exactly by the bit conversion
- The green background span on the "actual" value represents which digits match with the "entered" value
- The red background span on the "actual" value represents which digits do not with the "entered" value
Requirements
- Android Lollipop 5.1 or newer
Change Log
Joystick Mouse Adapter
Scroll down for more info.
Screenshots
Videos
Description
Developed for the GPD XD Plus and tested on various Bluetooth gamepads. This app turns the joystick on your gamepad or game controller into a PC mouse. This is especially useful for those who connect their Android-based emulation machines (e.g. GPD XD+) to an external screen via HDMI out or screencasting.
The Joystick Mouse adapter works similar to the way the joystick on the GPD Win 1 and GPD Win 2 works in mouse mode.
Features
- Perform short and long clicks.
- Variable mouse pointer speed based on joystick input.
- Perform actions such as: go home, go back, recent apps.
- Control volume, expand notification tray, launch power dialog.
- Scroll pages and navigate menus with D-Pad.
- Change mouse pointer style.
- Change mouse pointer color.
- Adjust mouse speed.
- Assign and configure button functions
Requirements
- Android Nougat 7.0 or newer
- Android compatible game controller
Change Log
Guide Lights for the ZTE Axon 7
Scroll down for more info.
Screenshots
Videos
Description
An Android service that adds an overlay of the 'Recent apps', 'Home', and 'Back' buttons to the ZTE Axon 7 Android smartphone. This app was designed for the ZTE Axon 7, but it works perfectly on other Android devices.
This app solves a design flaw on the ZTE Axon 7's capacitive buttons. Most Android buttons light up so they are visible at night. Those buttons are usually spaced out from each other which prevents accidental input (for example: accidentally pressing 'home' instead of 'back'). The Axon 7's buttons are very close together and they are impossible to see at night because they do not light up. My software adds icons next to these buttons so that the user can get a good feel of where the buttons are in the dark.
I call this app "Guide Lights" instead of "Navigation Bar" because my intention was to use this app as 'inert icons' instead of 'functional buttons'. My reasoning for this is that I do not want the buttons to block touch input where the overlay is obstructing. However, I know a lot of users prefer actual buttons so I included the option to enable button functionality.
Features
- Button layouts:
- Change button order
- Touch behavior:
- Perform action
- Temporarily hide overlay
- Temporarily hide overlay, do nothing
- Appearance:
- Minimal
- Narrow
- Wide
- Transparent overlay
- Fade animation:
- On
- Off
- Transparency:
- Low
- Medium
- High
- Off
- Hide duration:
- 2 seconds
- 5 seconds
- 10 seconds
- 30 seconds
- 60 seconds
- Status bar offset:
- Offset overlay so it does not obstruct status bar
- Return timer:
- An on-screen counter to tell user when hidden overlay returns (coming soon)
- Gestures:
- Swipe gesture (coming soon)
- Sensor options:
- Shake device to hide the overlay
- Other sensors:
- Proximity (coming soon)
- Light sensor behaviors (coming soon)
Requirements
- Android Nougat 7.1 or newer
Change Log
Forest Fire Simulator
Scroll down for more info.
Screenshots
Videos
Description
A 2D top-down simulation of a Forest Fire. It is a real-time, interactive simulation with replay features and a map editor.
You start with a randomly generated map of trees. Then you can set a virtual fire on any tree and watch how the fire propogates through the nearby trees. You can also generate rain and wind weather effects. Rain reduces the spread rate of the forest fire. Wind will affect the path of the fire, depending on the direction of the wind.
The map editor and generator allows you to create new maps. You can either manually place trees on the map or generate them randomly. You can also delete sections of trees and specify the size of the map.
The replay feature allows you to rewind to a specific point during the simulation or return back to the most recent point. When you rewind, you can change the outcome of the fire propogation by choosing different spots to propogate the spread of the forest fire. If you're impatient, you can increase the simulation speed. If you want to pay closer attention to how the fire spreads, you can decrease the simulation speed.
Features
- Random map generator:
- Set map size
- Set tree density
- Map editor:
- Insert trees
- Delete trees
- Replay system:
- Rewind events
- Change outcomes
- Adjustable simulation speeds:
- Slow down
- Speed up
- Pause
- Real-time mechanics:
- Simulation is run in real-time
- Weather interactions:
- Rain effects
- Wind effects
Requirements
- Java Virtual Machine, v7 minimum
Download
Histogram Maker
Scroll down for more info.
Screenshots
Videos
Description
A quick and easy-to-use application that generates histograms from a data set. It has several options to customize the histogram's appearance, such as gap distance between bins or the color of the bins. Histograms can be saved as JPEG files.
Features
- Data input:
- Import data file
- Manual data entry
- Tick options:
- Tick intervals
- Minimum tick value
- Bin color picker:
- Use RGB sliders
- Color palette
- Bin gradients:
- Solid color or gradient color
- Gradient color
- Bing gap distance:
- Change the gap size
- Graph labels:
- X and Y labels
- Graph title
- Other options:
- Horizontal guide lines
- Bin frequency labels
- Resize image:
- Resize the graph by dragging on the corners
- Save image:
- Save file by right clicking on the histogram
Requirements
- Java Virtual Machine, v7 minimum
Download
StatLogic
Scroll down for more info.
Screenshots
Description
A basic statistical calculator that performs calculations for t-tests, z-tests, confidence intervals, descriptive statistics, and standard scores.
Features
- Hypothesis tests:
- 1-sample Z-tests
- 1-sample t-tests
- Confidence intervals:
- t distributions
- Normal distributions
- Standard score:
- Quick way to calculate Z-score
- Save and Load:
- Save output into a file
- Load data files to perform calculations from
- Descriptive statistics:
- Mean
- Median
- Mode
- Quartiles
- Min
- Max
- Variance
- Standard deviation
- Data sort:
- Ascending numerical order
Requirements
- Java Virtual Machine, v7 minimum
Download
Floating Point Calculator for PC (IEEE 754)
Scroll down for more info.
Screenshots
Description
A Java-based floating-point calculator that supports two-way 32-bit and 64-bit precision conversions between decimal values and their equivalent binary representations. This was a team project with co-developer Latrice Sebastian.
Features
- Floating point precision:
- Single Precision
- Double precision
- Conversions:
- Float-to-binary
- Binary-to-float
- Instant output:
- No need to press enter
- Values updated dynamically
- Formatted output:
- Hide trailing zero bits
- Remove space delimiters
Disclosure
- Half precision:
- never listed as a features because it was buggy and did always produce the correct result.
- Single and double precision:
- (2019) discovered that single and double precision are not always accurate after further testing. This is due to unaccounted loss of precision during the manual calculations for certains numbers. Development for this app has stopped for the time being but I have made an Android version of this calculator which simply uses built-in Java functions to obtain these values which have higher accuracy than this version.
Requirements
- Java Virtual Machine, v7 minimum
Download
Sketch and Label
Scroll down for more info.
Screenshots
Videos
Description
Requires a compatible Samsung device with S-Pen features.
An Android image recognition app that can determine what the user has sketched on the Android app. Trained and integrated the app’s neural network via transfer learning on the MobileNet architecture.
Features
- Image classification:
- Car, tank, airplane
- Saves sketches:
- Last sketch is saved in the file system
- Eraser input:
- Erase with the stylus eraser
Requirements
- Any Samsung Galaxy device with an S-Pen
- Android Lollipop 5.1 or newer
Download
- Coming soon to Google Play Store
Raspberry Pi Door Sensor and Alarm System
Scroll down for more info.
Screenshots
Videos
Description
A project for Advanced Computer Networking in which my partner and I implemented a basic IoT door alarm system with a Raspberry Pi 3 Model B.
Features
- Client alarm:
- Sounds an alarm upon server notification
- Client sensor:
- Detects an opened door with Reed sensor
- Server-side script:
- Python script to communicate between alarm and sensor
Requirements
- Linux/unix system (alarm client)
- Raspberry Pi (sensor client)
- Ubuntu Server (messaging server)
Download
- Technical documentation (coming soon)
- Slide presentation (coming soon)
- Source code (coming soon)