This is the ace up my sleeve.
Fluent in JavaScript/TypeScript, I am extremelly confident working with these languages.
Hi, I'm George. I love what I do and do what I love. From creating interactive visualisers such ashttps://classicvisualiser.jaguar.com andhttps://computer-visualiser.vercel.app to websites such as Kirk's portfolio which won several SOTD awards.
Providing delightful experiences to real people through the digital medium. The art of coding, and its practical application, is what moves me to do what I do.
I'm highly capable of web development, adaptable and consistent.
React solves the problem of UI for SPAs which is why I love it. No messing around with the History API, it gets the job done. React with JSX is what I am most confident in for developing UIs.
I'm experienced with Redux and several other state management technologies. I prefer low-boilerplate solutions such as React context the most.
Next.js being my favourite react framework of choice, I'm highly confident using this tech for full-stack development.
I also have fallen in love with Tailwind for the styling.
My first Three.js project https://trees.vercel.app was the beginning of my journey into 3D for the web and shader languages.
GraphQL is an amazing alternative to REST for client-server communication. Only the necessary data is requested and received.
I have experience with Mocha, Jest, Cypress, React Testing Library for writing Unit, Integration and E2E tests.
Here is a list of some other technical skills I have or have had a fair bit of experience with:
I solved many varied problems at TravelLocal. I communicated with the designer to reduce ambiguities and bring their vision to life. The main tech stack was a headless Wordpress + ACF CMS with GraphQL and Next.js. We used storybook to visualise the UI components we built. We used i18n with Locize to translate content. We used Github Actions for the CI/CD pipeline which included automated tests.
DRPG has been a delight to work for, with projects ranging from a beautiful 3D winter wonderland celebrating 40 years of DRPG, to the massively successful Jaguar C-Type customiser which you can play with here: https://classicvisualiser.jaguar.com
Developing 3D and WebGL solutions for various clients on a freelance basis. Working closely with the client I bring their project from an idea into a reality. Creating visual experiences in the browser making it simple for the end user. For example, I made https://kirkwhayman.com which utilises WebGL to make Kirk's portfolio stand out.
Here I worked diligently in squads of designers and developers to produce elegant yet functional websites for Universities and councils. We used React.js for website development and an Angular based CMS.
In this role I also trained a less experienced developer, to help them become a self sufficient one, with the ability to solve technical problems independently.
In addition to this, I wrote novel internal documentation for processes such as setting up Node.js servers for production, helping the company move towards full-stack JavaScript.
This was my first time working in a small team of designers and developers, where I also learnt how to use JIRA and Git for daily use.
The main technology we used was React.js and Node.js to develop the product. I also started learning about and writing automated tests.
I also implemented a modular i18n solution into the React codebase, using Locize so that translators could do their job without having to code.
Making use of the emergence of the HTML5 History API and CSS3 animations, I developed a lightweight Single Page Application (SPA) showcasing one of their apps, giving a blazing fast and sleek experience.
Over the period of a year, involving 2 separate contracts, I worked closely with the client to provide excellent bespoke software to solve their specific problems.
This included a feature dense, offline-first HTML5 SPA for their business clients, and a data processing application for doctors which digitized and automated certain tasks of this vital role, meaning an improvement in their healthcare and therefore a real-world impact.
Configure your own classic c-type jaguar car.
Customise the inside and the outside.
This was a project I built whilst working at DRPG. There was another developer who helped with the UI, whilst I built the core functionality, such as the visualiser, configurator, plus a bunch of the UI work.
It uses variable dimensions webp images, saving data and loading times whilst providing high clarity visualisations of the car up to 4K in resolution.
I'd say this was a success, because Jaguar received customers from those who used this visualiser/customiser, for this classic car continuation.
A beautiful visual interactive portfolio developed by George Campbell and designed by Kirk Whayman. A modern website developed with Next.js, Three.js, and custom GLSL shaders.
I worked with Kirk, converting his designs and high quality renders and animations from VFX production software, into code for displaying in a web browser.
Over the period of several weeks I worked on this project, helping Kirk reach his vision. A thought provoking concept, with visuals to back it up.
Initially I developed the iridescent cube which has a glassy refractive index.
Later, I involved another developer who had already built exploding geometry, this allowed the cube to be blasted into peices. Future devs then coloured the shattered glass.
The later part of the project was developing the pages in the Work section. The carousel effect, and grainy noise, warping effects and so on were all custom made with GLSL for this project.
Kirk and I won several awards for this site from Awwwards and were featured for some time.
Feel free to contact Kirk if you're needing someone like him, click the About section of his website for contact details.
This was my first three.js project. The reason for this project was to learn Three.js.
It uses simplex noise to generate infinite terrain. There is a day-night cycle made possible with dynamic lighting.
I thoroughly enjoyed making this!
I wish I had made the trees go on for ever, too, before abandoning this project. Currently they don't go on forever like the sand and water does.
Web graphics is an ever evolving beast. This was built on the WebGL renderer with Three.js, HTML, CSS, JavaScript.
A goal I have is to continue learning computer graphics, Rust, Bevy, and use WASM which would be a major improvement in technology compared to WebGL/Three.js, to produce graphical web projects.
This is a light-weight way to keep track of time spent on tasks.
It is an installable web app which works offline.
This uses Three.js to visualise a computer.
I built this to try out my Three.js skill, to visualise a computer.
I had built a couple of computers when I was younger, so knew the components I needed.
However, I don't yet feel comfortable in Blender nor Houdini by Side Fx so I had to find free models online.
Finding all the components of the computer, from chassis, to motherboard, to all the other components was difficult.
I did open blender and resolve some issues with the models, and make the consistent e.g. make sure the CPU fan has red colours to match the motherboard.
This was a challenging but enjoyable project I did in my free time. I'd prefer to develop in react-three-fiber nowadays though.
This is a simple audio visualiser which uses Meyda for audio feature extraction and the HTML5 canvas to draw the visualisations.
If you're curious of the source code, visit the repo, it's written in vanilla JavaScript and uses Vite.
There's a lot to learn about audio/sound engineering, and to convert audio to visuals is a difficult thing if you don't know or understand the right concepts.
This visualiser could probably be improved a lot to make more desirable looking animations.
This project uses the Intersection Observer API to load an endless stream of images as you scroll.
This is a collection of art I have created.
Many of the works have been developed in the GLSL shader language, which I adopted whilst learning Three.js
I run a software development company, MASSLESS LTD. - give me a shout there or find my personal email address below.