NFT’s and Me

In December 2021, while eating scrambled eggs on toast, the conversation with my mate Basil wandered off into the world of the Non-Fungible Token or NFT. I knew a little about this world but B, it turned out, was a bit of an evangelist. Not only did he have his own Crypto Wallet, he also had a collection of NFT’s he was actively promoting on the Opensea Market platform.

Well this was all new to me and sounded like an intriguing mix of art, software and money. Before lunch was over I had my own Crypto Wallet and a rough understanding of creating NFT’s on Opensea. Web3 here I come.

A little later that day he sent me a YouTube link entitled “How To Create An ENTIRE NFT Collection (10,000+)” just to ensure my interest was peaked.

Note that everything I have written here is based on my experience and understanding of how this works. Feel free to add any corrections or thoughts in the comments section below.

So what is an NFT and how can I make money from it?

As I understand it, an NFT is basically a digital asset (such as an image or video or game item, etc, etc) that has been added into a Blockchain ledger type storage system. This gives it three important properties: 1) it can never be changed. 2) it has a unique identity. 3) it has an owner.

This becomes weird when you realise that the original asset is still just a file on a computer. This file can still be copied, uploaded, downloaded, shared and edited like any other similar file. The NFT is the instance of the asset stored in the Blockchain. The owner of the NFT owns just that instance. The owner does not necessarily own the copyright or the intellectual property contained within the asset.

This unchangeable identifiable instance has an owner and it can be assigned a monetary value. Once uploaded to an NFT market place it can be offered for sale. Maybe (a really big maybe), someone discovers the NFT and decides it really has value and decides to buy it. A crypto transaction can then occur to transfer ownership. The creator makes some money and the buyer adds value to their collection. Think of trading cards of footballers at school, or maybe Pokemon cards.

So far it is similar to an artist painting a picture and someone buying it for the art and/or its potential resale value. In this case once the art is sold it’s remaining connection to the artist is in name only. In the case of an NFT sale it is possible for the artist to keep a continuing financial connection to art. Meaning that conditions in the contract can be set so that the artist will receive a defined percentage of all future sales if the art is sold on. Now that sounds interesting.

First Steps

At this level my domain is very much in the visual arts so I thought I would try with some photographs. I learned during my research that collections are the way to go. The idea is that a full collection of similar items has more onward sale value than single unique pieces. To this end I set about searching through my past photos to see what I had. Sunrises, Wood Fire and Food themes immediately turned up. I then decided on a collection of collections’ layout. So for instance the Sunrise collection consists of 5 high resolution (6k x 3k pixels) photographs with each being a collection of 6 images, the original version plus 5 filtered versions (Diffuse, Black & White, Invert, HSL, Posterise). The full set of 30 images looked like this:

The Sunrise Collection

Is this art or what ?

Having made my art works I then needed to mint each one into an NFT and store it in a unique permanent blockchain place on the internet along with a meta data file that contains its description, price, creator earning, crypto currency, contract number, etc, etc. Unfortunately I don’t remember the complete step by step for this and my notes from the time (2 years ago) are not a vast help. I do remember that for permanent storage I was using the InterPlanetary File System at It is an interesting system that uses the binary contents of the uploaded file to calculate the page address. For example this is a test link to one of my cloud photos: For processing the contracts etc I was using NFTPort which, by looking at my python programs, involved a whole load of JSON data blocks flying around. It was certainly a bit technical. It’s probably much easier these days (2023).

Hello Gale Forge

In order to add a certain professional artistic sheen to this project I needed to come up with a name. Now many years ago I registered the domain as part of my computer business. The intent being that Gale Forge would be used for selling the software I had written. In the end it never became necessary so the name was never used. Now seemed to be a good time so the NFT site was born along with a Facebook page and an Instagram Account. No point in doing it half way 🙂


The two very industrial photos on the website front page, above, I took many years ago during a visit to an ore processing plant in Sept Iles at the top end of the Saint Lawrence seaway in Canada. We saw some unbelievably big, and noisy, machines there.

Technically the website is pretty clever, if I say so myself, I wanted something quite simple, low maintenance, no database and easily expandable. The whole site consists of just 3 pages using the PHP programming language. The first, index, page is static and just lists my 9 collections. Each collection icon links to the collection.php page which knows which icon you clicked so reads the collections data folder and dynamically presents the individual NFTs in the collection. When you click on an NFT it loads the nft.php which shows that NFT’s details and links to the correct Opensea page so you can buy it. Simple. How cool is that.

Lets make more

After the Sunrise, Wood Fire and Food collections I became more adventurous. How about a simple animated 3D model rendered in loads of variations. I made a simple inverted pendulum animation and called it “Time Passing” as that is all it does. I defined a collection of 4,802 variations using different colours and textures. Of these I rendered 600 but only put 98 up online for sale.

Time Passes

Much later I uploaded one of these videos as a YouTube short. It’s only 5 seconds long but has had over 1,600 views. I guess it takes a few 5 second cycles of viewing before you realise its not going to do anything else.

My Time Passes YouTube short

Loading this number of items on to Opensea became a bit of an ordeal. It turned out I could write Python programs to automatically mint and upload them but the final step of entering the price and clicking the “For Sale” button had to be done by hand. To overcome this problem I created an automated hand. . . . .

Well not really. I used an ATMEGA32U4 based Arduino micro controller and wrote a keyboard simulator program which pulled data from my local website (via a network enabled Arduino Uno) and “typed” it in to the browser. This remote controlled the browser to open each Opensea page, input the NFT’s detail and click the “For Sale” button. This way I was able to put almost 100 items online for sale in a few minutes – magic.

Tubes in Space

Now fired up with programmatically building 3D animations I worked on all sorts of ideas. One of my favourites is the “Tubes in Space” collection of 4k images. I really think these would look wonderful printed out as hi-res posters in someone’s office. As well as the 100 NFT’s I made a slide show of them all and made a musical video flying around number 1015 on YouTube.

The slide show is sort of interesting as I wrote the software inside my 3D modeler to automatically map the images to surfaces and fly the camera around. A little later I used the same system for my Slide Show: Monaco before the E Prix

“Tubes in Space” slide show
“Tubes 1015” – full animation with music

Oblongs !

The “Oblongs” collection came to life after I saw some art on the TV and decided I could do that with a quick program. A little later I had 100 variations of “Oblongs in Oblongs” as 4k images to mint into NFTs.

“Oblongs” collection


During some work testing my 3D object collisions idea for a new game I dropped a matrix of cubes down on to a wave like surface. I liked the result, and so another NFT collection appeared. I made 18 hi-res image renders and one short animation with a searchlight at night. All were minted into NFTs.

“Cubes” collection


It was a quiet weekend so I went out with my camera and took a collection of slightly odd Tree photos. These were then filtered to make a 24 item collection in a similar style to the Sunrises collection.

“Trees” collection

Animated Eggs

It was back to 3D programming for my final NFT collection. Called “Animated Eggs” it is a collection of 30 videos of randomly coloured eggs going up and down, at random, in randomly coloured squares. Certainly scope here for an infinite number of variations if needed. Below is an example of one of the items. The “music” is very much a “work in progress” 🙂

Rotating Towers

I was never very happy with my final collection of rotating towers in the mist. I wrote software to create the models so generating hundreds of variations would have been easy. I rendered a few tests but never minted them into NFTs. I just put the following on YouTube so you can see the general idea – unfortunately no mist on this one. The “music” is very much a “work in progress” 🙂

and finally

I had started in December 2021 and it was now the end of January 2022. At this point there seemed to be millions of NFTs for sale on Opensea. Mine were in there and being viewed but none were selling. I was a bit disillusioned although in these 2 months I certainly had fun and learned a lot about blockchain and building 3D models with software rather then designing each one by hand. The virtual keyboard also opened up more avenues for research. Eventually I programmed the ATMEGA32U4 to send MIDI (music) commands over USB and it is now part of a Music Sequencer I made for my Synthesizer – but that’s another story. is still online and all my NFTs are still on Opensea, although the period for sale has expired. Maybe one day I might reactivate the project.

Leave a Reply

Your email address will not be published. Required fields are marked *