Author: Scott Pollard

  • Generative Murmurations from Bird Sightings

    Generative Murmurations from Bird Sightings

    Using real bird observations to create evolving digital flocks in Processing (Java).

    Every year, thousands of bird sightings are submitted by birdwatchers across the UK. They usually end up as lists of species, dates and locations. They’re invaluable for conservation, but I wondered what they might look like if the data could move.

    This project explores that idea by transforming bird sighting records into a living murmuration.

    Rather than plotting observations on a map, every record becomes an individual bird within a simulation. As more sightings are added, the flock begins to organise itself using simple behavioural rules inspired by nature. Over time, scattered points become flowing shapes that continuously form and dissolve across the screen.

    The result sits somewhere between data visualisation, simulation and generative art.


    The Idea

    The project takes recent bird sighting data and uses it as the starting point for a flocking simulation built in Processing.

    Each observation creates a bird within the system. From there, the birds respond to one another using the classic flocking behaviours:

    • Separation – avoiding collisions with nearby birds.
    • Alignment – matching the direction of neighbouring birds.
    • Cohesion – moving towards the local flock.

    To prevent the movement feeling too mechanical, Perlin noise is introduced to create subtle environmental forces. The flock constantly shifts, stretches and reforms in ways that feel closer to watching real starlings overhead.

    The original data simply starts the conversation. The artwork takes over from there.


    From Data to Movement

    One aspect I particularly enjoyed was avoiding a literal representation of the data.

    There are no maps, charts or graphs.

    Instead, the information becomes behaviour.

    A busy day of sightings naturally produces a larger, denser flock, while quieter datasets create more open formations. Different species could eventually influence colour, speed or movement characteristics, allowing each dataset to generate its own personality without ever needing labels or axes.


    Building the Simulation

    The project was written in Java using Processing.

    Alongside the flocking algorithm, I added a number of features to make the artwork feel more alive:

    • Procedurally generated Perlin noise flow.
    • Species-based colour palettes.
    • Motion trails showing the history of each bird.
    • Pause and restart controls.
    • High-resolution image export.
    • Randomised initial formations.

    One idea i’ve introduced is adding a peregrine falcon into the simulation. At random intervals it would pass through the flock, forcing the birds to scatter before gradually reforming into a new murmuration.



    Why I Like This Project

    I’ve always enjoyed projects that blur the boundary between science and art.

    The underlying algorithms are relatively simple, but when hundreds of individual agents interact together, surprisingly natural behaviour emerges. Watching order appear from a collection of independent birds feels remarkably similar to observing a real murmuration.

    It’s also a reminder that data doesn’t always need to be presented analytically. Sometimes the most engaging way to understand information is to experience it.



    What’s Next?

    There are plenty of directions I’d like to take this further:

    • Live bird sighting feeds updating the flock in real time.
    • Species-specific behaviours and movement styles.
    • Environmental influences such as wind or weather.
    • 3D murmurations that viewers can rotate and explore.
    • Large-format print series generated from moments within the simulation.

    Like many of my Processing experiments, this is less about producing a finished piece and more about discovering what happens when simple rules interact over time.

    Sometimes the most interesting results are the ones you never explicitly programmed.

  • Generative Bird Portraits in Processing

    Generative Bird Portraits in Processing

    How thousands of flowing lines can gradually reveal a wildlife photograph.


    The idea

    I’ve always been fascinated by the point where photography and generative art meet.

    Rather than creating a portrait with traditional brushes or pixels, I wanted to explore whether an image could emerge from movement alone. The challenge wasn’t to copy a photograph exactly, but to build a system that slowly discovers it.

    Using Processing (Java), I created an algorithm that starts with a blank white canvas. Guided by Perlin noise and the colour information within a photograph, thousands of flowing lines gradually build the portrait over time.

    Each run is unique. The subject remains recognisable, but the path taken to reach the final image is never exactly the same.


    The inspiration

    Wildlife photography has been one of my longest-standing hobbies, and many of my favourite photographs eventually find their way into creative coding experiments.

    This kingfisher was the perfect subject.

    Its vivid blues and warm chestnut feathers create a striking colour palette, while the distinctive shape allows the portrait to emerge surprisingly early in the drawing process. I also liked the idea of extending the colours beyond the bird itself, allowing the background to dissolve into abstract flowing contours that echo reflections on moving water.

    The result sits somewhere between illustration, map contours and fluid motion.


    Generative Art of. a Kingfisher using code

    The process

    The system begins with the original photograph loaded into Processing.

    Rather than drawing the image directly, the sketch continuously releases thousands of virtual particles across the canvas. Each particle follows a flow field generated with Perlin noise, creating smooth organic movement rather than straight mechanical lines.

    As each particle moves it samples the colour beneath it from the original photograph.

    The sampled colour determines:

    • The stroke colour
    • The opacity
    • The line weight
    • The amount of movement

    Areas containing stronger contrast gradually accumulate more detail, while flatter areas remain lighter and more open. The portrait slowly appears as countless individual decisions overlap.

    Because every particle has its own journey, the finished image feels drawn rather than rendered.


    Development

    The artwork evolves through several distinct stages.

    Stage One

    The first lines establish the flow field. At this point there’s almost no indication of the final subject, only delicate contour-like structures beginning to spread across the canvas.

    Stage Two

    As more particles are released, hints of colour begin to appear. The background develops its own visual language while the first recognisable shapes of the bird begin to emerge.

    Stage Three

    The silhouette becomes readable. Individual feather groups and larger areas of colour start to define the subject, while the flowing background continues to build complexity.

    Stage Four

    Fine detail accumulates around the eye, beak and plumage. The image now balances abstraction with realism, retaining visible traces of every particle path.

    Final Artwork

    After thousands of individual strokes, the portrait reaches a point where enough visual information exists for the photograph to feel complete. The image is never perfectly recreated—instead it becomes an interpretation built entirely from movement and time.



    What I learned

    One of the most interesting discoveries was that restraint often produces a stronger image.

    My early experiments tried to reproduce every detail from the photograph. While technically successful, they lost much of the atmosphere created by the flowing lines.

    By reducing the amount of information and allowing areas of the portrait to remain unfinished, the final artwork became far more expressive. The viewer naturally fills in the missing detail, creating a stronger connection between the abstract and the recognisable.

    I also found that allowing colour to escape into the background helped unite the composition, preventing the bird from feeling isolated against a plain backdrop.


    What’s next?

    This project forms part of a wider series exploring wildlife through generative systems.

    Future developments include:

    • Building portraits entirely from flow fields without using direct colour sampling.
    • Adding depth through layered particle systems.
    • Creating animated versions where the portrait continuously forms and dissolves.
    • Producing large-format A3 and A2 prints suitable for exhibition.

    Ultimately, I’d like to create a collection of British wildlife portraits where every piece is generated from its own unique algorithm.


    Final thoughts

    One of the reasons I enjoy creative coding is that the computer becomes a collaborator rather than simply a tool.

    I define the rules, but I don’t dictate every outcome.

    Each execution of the program introduces small variations, meaning every portrait carries its own character while remaining faithful to the original photograph. Watching the image slowly emerge from thousands of flowing lines is often just as rewarding as the finished artwork itself.

  • Why I Make Things

    Why I Make Things

    I’ve always enjoyed understanding how things work.

    Whether it’s a website, a piece of software, a printed poster or a generative artwork, I’m interested in the process as much as the finished result. I like taking something apart, learning from it and rebuilding it in a different way.

    That curiosity has shaped much of my career.

    Professionally, I work as a designer and developer, creating websites, digital products and online experiences. My work sits somewhere between design and engineering; thinking about typography one minute and writing code the next. Both disciplines solve problems, just in different ways.

    Outside of work, that same mindset continues.

    This website is where I document the projects I create for myself. Some begin as a sketch in a notebook. Others start with a question: What happens if thousands of particles try to draw a bird?
    Can server statistics become a landscape?
    Could an algorithm recreate the structure of a long-tailed tit’s nest?

    Sometimes those ideas become finished prints. Sometimes they become software. Occasionally they fail completely.

    They’re all worth documenting.

    Much of my recent work explores generative art using Processing (Java). I enjoy writing systems rather than fixed compositions, giving algorithms a set of rules and watching them produce unexpected results. Small adjustments to colour, movement or randomness can transform a piece entirely, which means every iteration becomes part of the creative process.

    Nature is a constant source of inspiration. Birds, landscapes, geology and patterns found in the natural world often influence the direction of my work. I enjoy observing how complex forms emerge from simple behaviours, and many of my projects borrow those same principles through code.

    I also have a fascination with data.

    Numbers don’t have to live in spreadsheets. They can become textures, structures and compositions. Whether I’m visualising website analytics, support metrics or wildlife sightings, I’m interested in finding ways to turn information into something engaging and visually meaningful.

    This site isn’t intended to be a polished portfolio or a showcase of only the finished pieces. Instead, it’s a working archive of ideas, experiments and lessons learned along the way.

    You’ll find sketches alongside completed artwork, code next to photography, and successes sitting comfortably beside projects that never quite worked. Creativity is rarely a straight line, and I think the unfinished work often tells the more interesting story.

    If something here sparks an idea, teaches you something new or simply encourages you to make something yourself, then this site has done its job.

    Thanks for reading.

    — Scott