Overview
As well as software development I also like to combine hardware with software. This mostly takes the form in creating and designing synthesisers (electronic musical instruments). In case you're wondering, I do have friends (and in real life to!).
The majority of these instruments are built using C++, the Mozzi audio library, low cost Arduino development boards, and analog electronic circuits. These design I make open source (available via my blog and GitHub) and also publish instructions of how to make them for beginners.
If I make a small run of units, I'll often create PCBs using the Kicad software.
You can see a video example of the string synth here.
HELIOS ONE SYNTH
An Easy To Build Mono Synth
I wanted to design an instrument that was easy to build, cheap to
make, and also fully playable and expressive. The result was the
Helios Mk One synth, which is possible to build for around $20.
Contructed using an Arduino Nano (programmed using C++) and the Mozzi
audio library, you can build a simple MIDI controlled mono synth with
a Filter, LFO and ADSR.
The code is open source, and a fully illustrated build guide is
available. Many people have gone on to build this synth as their
introduction to synth DIY after it was posted in Hackaday. Some have
gone on to modify the code and add extra functions.
You can watch some video examples of the synth here. and read about the
code and build process here.
ARDUINO SAMPLING DRUM PAD
Arduino Drum Pad With Build Guide
These drum pads allow you to upload your own audio samples and then
trigger them using the drum pads. One potentiometer allows you to
control the pitch of the sample, while the other control the volume.
The switch allows you to choose between 2 samples (more is not
possible due to the tiny memory size of the hardware). The drums were
built using the Mozzi audio library and an Arduino nano.
You can see a video example of the drum pads in action here. Or read
the full construction guide here.
SLEEP MEDITATION MACHINE
Dodow Clone
With this machine you sync your breathing to the pulse of the LEDs,
which gradually slow down over either a user selectable 15 or 30
minute runtime. At the end of the cycle, hopefully you'll be relaxed
enough to fall asleep.
Instructions for this build were published to Intructables where it
was entered for their Arduino Contest 2017.
Overview
Here you'll find a variety of different web dev projects that I've created over the years, from responsive pages to API-driven applications.
In my career and studies I've used the following technologies: React, JavaScript, HTML, CSS, Postman, RESTful APIs, Node.js, Express.js, MongoDB, Bootstrap, jQuery, and Angular.
Doom Armour Calculator
Efficient Calculations
What better way to encapsulate the famously fun 1993 3d game but in a 2d webpage? And maths.
For one of my VR projects I needed an efficient way to calculate the
amount of hit points removed from both your health total, and if you
have any, your armour total.
Points should be removed from the armour
amount first, and then the health. So if you have 100 health, 20
Armour, and a hit point is worth 30, you should be left with 90 health
and 0 armour. Does that make sense??
The page is responsive & was created using pure HTML, CSS &
JavaScript. You can try it out here.
You can see the full code over on GitHub.
Weather App
API Connected weather App
Cirrusly, why look out the window when you can use a computer? Unless I've mist something?
Here we're grabbing the weather results from the user selected location.
As well as returning the weather, we're also offering advice on
the appropriate atire (which is responsive depending on the
returned tempturature).
We're making use of the openweathermap.org API to return these
results.
You can see the full code over on GitHub.
Audiogram
Audio Recording Social Media App
The audio-sharing social-network. The world definitly needs more social media!
In this app, user is limited to 10 seconds
recording time and doesn't have the ability to delete their messages.
It also features a secure log-in and the option to post replies on other users
recordings.
Interestingly the app 'Clubhouse' was released a year after this, but allowed
the user to record 30 second messages. It was valued at $100 million, sadly this app has yet to be valued at anything.
This was our final project as part of the Ironhack Berlin Web Dev
course. It was built using the following;
React, Node.js, Express.js, MongoDB, Bootstrap, HTML & CSS
You can see the full code over on GitHub.
Pets Of Berlin App
Location Based Pet Breeding App
Hopefully you won't find this app to boar-ing...
Help your guinea pig to find new friends and breeding partners. This
website was built as our second project for the Ironhack Berlin web
development bootcamp.
Create a secure account and then tag your location and let other users
see your animals details.
It primarily uses the Google Maps API and was built using Node.js,
Express.js, MongoDB, jQuery, Bootstrap, HTML & CSS
You can see the full code over on GitHub.
To Do List
Angular TODO List App
This is a classic 'TODO' list app that was created using Angular and
using the JSON placeholder API to gather the TODOs.
You can see the full code over on GitHub.
Brexit Game
Phaser Fun
The game you can't win!
Designed to be overly-complicated, you need to
decide if the anti-EU headline is true or false by collecting a 'yes'
or 'no' tick, all the while balancing public anger and gullibility by
collecting pints of beer. Every correct guess spawns an English flag
which if you accidentally collect will end the game ("Avoid
Nationalism!").
This game was created using the Phaser library and Javascript for the
first project of Ironhack Berlin.
You can see the code over on GitHub.
Overview
Here you'll find some Information about some of my VR projects. They were created using the Unity game engine software, many tears, and programmed using C#.
VR DRIVIN'
A Fan Remake Of The 80's Classic Driving Game
Hard Drivin was released by Atari Games way back in 1989, and this is
my attempt to bring it over into VR.
I was a big fan of the original,
however I'd only ever experienced it at 12 frames per second on the Sega
Mega Drive. Thanks to modern hardware, this version is currently
running a lot quicker than 12fps.
The 3d models were all built within
Unity and any more detailed graphics (roadsign text, hedges etc) were
creating using Affinity Designer, then heavily compressed before being
imported.
There's still much more work to be completed (like finishing
the track!), however this demo certainly conveys the speed and the
handling of the Arcade original.
Click the GIF to view the full length
video.
FISH TANK VR
Interactable Aquarium Environment
Click the GIF for higher quality video.
This project wasn't a turtle disaster! Although if you don't think it's fintastic, let minnow...
A reddit user asked about a VR
Aquarium experience, and seeing as there aren't many results I set about
creating the Fish Tank VR demo.
The demo starts with a menu screen,
which when prompted takes you into an elevator. From there you make your
way across a brutalist enviroment towards and interactable aquarium.
Using Push buttons, the user can learn about more about the fish contained
within.
This is currently only a proof of concept, although I'd like
to develop it into a full experience with more fish and larger aquariums.
The demo features buttons, animated doors, water caustics effects,
volumetric light beams, dust particles (using Unitys particle system) and
mostly baked lighting (using Bakery) to keep the frame rate high.
XR TERRA WORK
VR interactions and locomotion
Click the GIF for higher quality video.
XR Terra is an online training
platform who offer live classroom training in VR. I took part in their VR
Developer Foundations 4 week course, and this was the result. Using Unity,
C# and VR toolkits and libraries we created a scene with VR interactions
and locomotion, also utilising Animations, character controllers and movement.
In the video here (please click to play), you can see the interactable control
panel which is also grabable, this triggers an animation that leads to the
creation of an object. This object can then be assigned a material and then
using another button, destroyed with particle effects. Another level controls
the poistion of the sun, changing the scenes lighting.
You can also pick up
and eat half an apple :-)
AUGMENTED REALITY
Interacting With The Real World
Although VR is my main focus, I'm also interested in experimenting with Augmented Reality within Unity's AR Foundation Package.
In the GIF shown here, I'm utilising the mobile phones camera to detect the ground plane, then tracking the position of the 3d model around this result.
2D SIDE SCROLLER
A Super Mario Clone
Not everything is in VR! While learning Unity it's almost compulsory to make a Mario-like 2D side scrolling game. Mine one's called 'Super Cherry Ghost.'
Built using the Corgi Engine within Unity, I was quickly able to create a functional prototype complete with paralax backgrounds and enemies.
Overview
Hi, I'm Gary! Digital Sunset Studios is the name I work under for my various software projects. Here you'll find infomation and links to my Virtual Reality projects, hardware projects and Web Development projects.
In 2013 I first started playing with electronics, then after winning a Google programming scholarship I started to combine this with software programming.
After taking an intensive 9-week Web Dev bootcamp in 2019, I have been working as a full-time web developer. But at night, I put on my VR goggles and work on my various VR projects. I also like to create and program hardware synthesizers for fun.
I currently live in Leipzig, Germany.
Selected Quotes From My Blog:
Sentence 1
Software
Here's some of the software I use to develop with:
- Webdesign: Javascript, HTML 5, CSS3, React, Node.js, Express.js, MongoDB, Bootstrap, POSTman, Github/Command Line, API's, Visual Studio Code
- Hardware: Arduino IDE, C++, kiCad (PCB Design Software), Mozzi Audio Library, FortySevenEffects MIDI Library, Analog/Digital circuits
- VR: Unity, C#, Visual Studio, Blender, Meta Quest Dev Hub. Unity Assets: Probuilder, Bakery GPU Lightmapper, VR Interaction Framework + more
- Design/Creation: Affinity Designer, Affinity Photo, Affinity Publisher, Photoshop, After Effects, Adobe XD, Audacity, FL Studio, Vegas Movie Studio
Education
Schools I've attended:
Year | School | Course |
---|---|---|
2023 | XR Terra | 4-week XR Foundations Developer (VR) |
2019 | Ironhack, Berlin | 9-week Web Development Bootcamp |
2017 | Udacity | Android Development, Scholarship funded by Google |
2013/4 | International Correspondence Schools | Bachelor of Technology (BTECH Level 3) Electronic Engineering |
2009 | BSI Language School Berlin | Intensive Language Course (German) |
2007 | St. Martin's College, London | Introduction To Maya (Short Course) |
98/2001 | Amersham & Wycombe College, Bucks | Bachelor of Technology (BTECH) Sound Engineeering with Music Technology (GNVQ) |
1997/8 | Amersham & Wycombe College, Bucks | GNVQ in Art and Design |
Qualifications
Various qualifications I've gained:
Date | Course Name | Provider |
---|---|---|
June 2023 | Augmented Reality 101 | Zenva Academy |
June 2023 | Intro to Particle Systems for Games | Zenva Academy |
March 2023 | XR Foundations Developer | XR Terra |
February 2023 | Discover the XR Interaction Toolkit for VR | Zenva Academy |
January 2023 | The Complete 2023 Web Dev Bootcamp | Udemy |
January 2023 | Create Your First 3D Game in Unity | Zenva Academy |
January 2023 | Mobile Game Development for Beginners | Zenva Academy |
January 2023 | Learn the Entire Affinity Suite: Photo, Designer & Publisher | Udemy |
January 2023 | Unity Mini-Projects - C# Fundamentals | Zenva Academy |
Sept 2022 | Data Privacy Training Basic | Proliance |
August 2021 | Build The Game Of Life | Udemy |
July 2021 | Complete SEO Training 2021 | Udemy |
June 2021 | Generative Music Box Project | Udemy |
May 2021 | Building Your First VR Experience With Unity | Udemy |
Sept 2019 | XD/DC - Adobe XD Workshop Tour | XD/DC |
August 2019 | SEO Training | Udemy |
May 2019 | Ironhack 9-Week Web Development Bootcamp | Ironhack |
August 2019 | Angular Front To Back | Udemy |
July 2019 | UX, UI and Design Thinking | Udemy |
July 2017 | Android Basics Nanodegree by Google | Udemy |
March 2016 | AlgebraX: Introduction to Algebra | EdX |
November 2015 | EE40LX: Electronic Interfaces: Bridging the Physical and Digital Worlds | EdX Berkeley |