I am a Mediterranean-British artist based in London. For over a decade my work has grown out of long participatory processes in public space, built with local communities, researchers and institutions around questions of collective memory and environmental responsibility.
Pollinators entered the work during my MA Fine Art: Digital at Central Saint Martins (2021–2023). This became “New Observations on the History of Bees”, followed by “Inkblot for Bees”, developed through my 2023 residency at Atelierhaus LEW1 in Darmstadt, which gave me access to the bio-chemistry department at TU Darmstadt. I studied how pesticides affect the perception and memory of wild bees, and presented that research in the solo exhibition A.A.LLES. I have since built an archive of antique microscope slides holding specimens from before modern pesticides existed, and I compare them with contemporary samples. I then transferred those notions into a series of drypoint works.
Between 2025 and 2026 I produced BeeVision, a generative moving-image digital work first developed in the Alias x Serpentine Future Art Ecosystems programme and premiered on a four-by-three-metre LED wall at AP Space Gallery, New York.
The same Alias programme produced the BioViscous Mask, a series of speculative semi-living materials imagined as protective barriers for bees against pesticide exposure. An image from the series introduced the Alias and Serpentine collaboration across Serpentine’s channels. I talk through both projects in this
interview with Alias Studio.
I join HTBAA as a Committed Listener because after years of observing living systems through a lens, I want to work with them directly.
Final project: A Living Inkblot for Bees
The course project extends my earlier Inkblot for Bees work. Here the
mark-making surface itself is alive. The target is an engineered flowering plant
whose bilateral form and ultraviolet pattern come from the drypoints, with a
contained bacterial-cellulose object serving as the test platform along the way.
The full proposal is on my Week 1 homework page.
Toward a living inkblot: pigment, pattern, cell-free expression
Homework #1 proposed an engineered flowering plant carrying a bilaterally symmetrical mark in the ultraviolet, visible to a pollinator and largely invisible to us. Homework #2 is where that proposal meets a sequence. The work divides into two parts: building working expression constructs in Kernel, and identifying what the harder half of the project actually requires.
What this homework isolates is the pigment subsystem. The flowering plant, the bacterial-cellulose object and the rosmarinic acid compound track from Homework #1 are all deferred. None of them is abandoned, and each returns once expression can be read and measured. The question here is narrower: can a coloured protein be specified, synthesised and seen.
Part 0 — Kernel
Repository HTBAA26_WilliamandMary, folder Andrea Abbatangelo / Homework2 _ tyrosinase.
A part is a single reusable genetic element with a defined function, a promoter or a coding sequence. A construct is an assembly of parts into a designed sequence, a plasmid or an expression cassette. The distinction is the grammar of everything below. Parts are words. A construct is the sentence.
Part 1 — What to express, and where
Molecule. Two pigment strategies, built as a matched pair, with a third planned.
Tyrosinase. UniProt accession P06845, TYRO_STRGA, from Streptomyces glaucescens. 274 residues. A copper-dependent oxidase that converts tyrosine to melanin.
A note on the name. I built this cassette as TyrBm, which denotes the Bacillus megaterium tyrosinase, a different enzyme of 299 residues. Comparing the translation in my construct against the UniProt record position by position gave 274 matches across 274 positions, so the sequence is P06845 and only the label was wrong. The part and all three constructs now read TyrSg. The old name is kept as an alias in Kernel so the two resolve to one record.
Two things follow from what this enzyme is. P06845 is an apotyrosinase: the polypeptide alone has no activity. In Streptomyces the upstream gene product MelC1 acts as a copper chaperone, forming a transient complex with the apoenzyme and delivering both copper ions. Expressing P06845 in a lysate with copper salt added is therefore a hypothesis about spontaneous copper loading, and the literature on MelC1 suggests that hypothesis is weak. Co-expressing MelC1 as a second cassette is the obvious response and I treat it as the next design decision on this arm.
gfasPurple.BBa_K1033919, 669 bp, iGEM Part Registry. A chromoprotein from the coral Galaxea fascicularis, coloured through the chemistry of its own folded structure, with no substrate and no external cofactor required. Those are two fewer things that can go wrong in a cell-free reaction. What takes their place is a timing problem, set out in the palette section below. The colour it produces is purple to a human eye, which is a different claim from the one above.
Chassis. An E. coli lysate, cell-free, for reasons set out below. Which lysate preparation matters more than I first assumed, since T7 RNA polymerase is present in some formulations and supplied separately in others. Settling that is a question for the node.
Localisation. The protein stays in the reaction. No signal peptide and no targeting sequence are needed, since there is no cell to leave.
Part 2 — The parts, and why each one
Element
Part
Source
Reason
Promoter
T7 promoter (18 bp)
iGEM registry
Matched to a lysate that carries or is supplemented with T7 RNA polymerase, which makes T7 the practical driver for this chassis
Ribosome binding site
RBS-pET (25 bp)
iGEM registry
Taken from the pET expression system, so it is matched to the T7 promoter above
Coding sequence
TyrSg_Ecoli_optimised (828 bp)
UniProt Swiss-Prot P06845, codon-optimised
The tyrosinase arm
Coding sequence
BBa_K1033919 (669 bp)
iGEM registry
The chromoprotein arm
Terminator
T7 terminator (48 bp)
iGEM registry
Ends transcription cleanly at the end of the cassette
Backbone
pSB1C5C (2046 bp)
iGEM registry
Supplies a pMB1 replication origin and a chloramphenicol resistance marker
Both backbone features are legible in the exported sequence and Kernel names them on the circular map, so this row is confirmed from the file instead of taken from the registry description.
A note on the backbone. The origin and the marker matter for producing and amplifying the DNA before the reaction. Inside a cell-free reaction nothing replicates and nothing is selected, so those two features do their work upstream of the experiment itself.
Part 3 — The constructs
T7-RBS-TyrSg-term, 2,959 bp. The first tyrosinase build. It cannot be synthesised, for reasons given in Part 4, and is kept as a record.
T7-RBS-gfasPurple-term, 2,806 bp. Promoter 1 to 18, RBS 19 to 43, coding sequence 44 to 712, terminator 713 to 760, backbone 761 to 2,806.
T7-RBS-TyrSg-opt-term, 2,965 bp. The tyrosinase cassette rebuilt around a codon-optimised coding sequence. Promoter 1 to 18, RBS 19 to 43, coding sequence 44 to 871, terminator 872 to 919, backbone 920 to 2,965.
All three read: T7 promoter → RBS-pET → coding sequence → T7 terminator → pSB1C5C backbone. Promoter, start marker, gene, full stop. The coordinates above come from the GenBank exports, not from the construct map, and they confirm that the two working builds are identical in every element except the gene. That is what makes them a controlled comparison.
Why cell-free, and why pigment first
Homework #1 proposed an engineered flowering plant with a contained bacterial-cellulose object as its test platform. Cell-free moves one step further toward something I can actually run. An E. coli lysate is the machinery of the cell with the cell discarded: ribosomes, polymerases, tRNAs, no capacity to grow or divide. It transcribes and translates what it is given, and it goes on metabolising while it does so.
That removes the three hardest dependencies in one move. There is no strain to construct, no transformation to optimise, and the containment argument becomes much simpler, since no engineered organism can propagate out of the dish. Ordinary handling and disposal still apply. It also matches Lab #1, which is cell-free manufacturing on the cloud lab, so the method is the one I am being taught this term.
Pigment comes first because it is the subsystem I can read with my eyes. The assignment permits a protein, an enzyme or a small group of enzymes in a pathway, which makes it possible to isolate one component of the larger system and understand it properly before adding the next. Expression I can see is expression I can debug.
What this costs is worth stating plainly. The object stops being grown and becomes made. Bacterial cellulose carried an argument about a material that produces its own structure, and a gel disc carries no such thing. This is the proxy of a proxy, one step further from the flower than Homework #1 already was.
Building a palette for a bee’s eye
A colour that reads as purple to me produces different information for a bee. Bee colour vision is built on three photoreceptors, sensitive in the ultraviolet, the blue and the green, with no red receptor at all. Many flowers carry nectar guides that are conspicuous under ultraviolet and invisible to us, which is the phenomenon the inkblot has always been about.
This gives the pigment work a direction. The project needs a palette addressed to specific channels of a visual system that is not mine. Three quantities have to be kept apart while doing it: what a pigment absorbs, what the material reflects, and what a bee’s photoreceptors are stimulated by. Only the first is a property of the molecule.
Melanin, produced by tyrosinase, absorbs broadly. That breadth includes the near ultraviolet and it also includes the visible, so a melanin mark is dark to a bee and dark to me. What it produces is achromatic contrast, strong against a pale substrate and detectable at distance, since bees locate a target through green-receptor contrast before they judge its colour at close range. What it does not produce is a mark addressed to the ultraviolet channel alone.
A flavonoid is the molecule that does that. Real ultraviolet nectar guides work by absorbing ultraviolet at the centre of the petal while the surrounding tissue reflects it, so the pattern exists in the ultraviolet channel and nowhere else. The chemistry runs through the phenylpropanoid pathway, which is where the compound work in Homework #1 already sat. A chalcone synthase route to a UV-absorbing flavonol is the construct that would actually deliver the original proposal, and naming it here is the honest version of the claim I started with.
A blue chromoprotein sits on the bee’s blue receptor directly. BBa_K4244001 is the candidate. Oligomeric state matters, since many chromoproteins assemble as tetramers and fold less reliably outside a cell, and I have not yet checked that record against the registry. Until I have, the candidate is named and the claim about it is not.
gfasPurple is the one I can confirm by looking, which makes it the instrument for learning the grammar and for producing a first physical object. It carries a constraint of its own. The registry records colour developing over 24 to 48 hours in culture, slower than amilCP, aeBlue and the other chromoproteins in that collection, and structural work on gfasPurple found the protein to be a dimer whose colour is lost when the dimer interface is disrupted. Typical cell-free reactions run four to sixteen hours. Folding, assembly and chromophore maturation all have to happen inside that window, and whether they do is the first thing the purple construct will tell me.
Whether cell-free expression of any of these produces enough pigment for a bee-discriminable contrast is a measurement, not an inference from the molecule’s identity, and I do not yet have the answer.
Part 4 — The design tools, and two things they caught
Kernel’s toolbox holds a codon optimiser, a biosecurity scanner and a pairwise aligner. Running all three on both constructs produced clean results and exposed two problems I would otherwise have carried forward unnoticed.
The expression host field
Both constructs opened with warnings. The tyrosinase build returned seven, the purple one four. Two of them asked for Kozak sequences, 5′ and 3′ UTRs and a polyA signal, and the rest flagged every part as “not recommended”.
The cause was a single field. Under File, Edit construct info, Expression host was set to Cricetulus griseus, Chinese hamster ovary cells. Kernel had been checking a bacterial design against mammalian rules the whole time, which is why it wanted eukaryotic elements my design has no use for. Setting the field to Escherichia coli cleared all eleven warnings across both constructs.
The lesson is about metadata. The sequence was coherent from the start. What was wrong was the declaration of what the sequence was for, and software checks against the declaration.
Codon optimisation
Run with Asimov’s optimiser, algorithm SIMPLE_0_3, target organism Escherichia coli, no preset.
Tyrosinase. The UniProt part holds amino acids, so the optimiser took the protein sequence and designed a coding sequence for it. Output 828 bp against the original 822, the six extra bases being a TGA and a TAA appended as stop codons, since the UniProt entry carries a start and no stop. This is the more dramatic of the two optimisations, because Streptomyces is GC-rich and reads quite unlike E. coli. The optimised sequence is visibly richer in A and T than the original.
gfasPurple. The iGEM part holds DNA, so the optimiser took nucleotides directly. The sequence already ends in a tandem TAA TAA, and setting both stop fields to retain instead of append kept the length at 669 bp. Saved as gfasPurple_Ecoli_optimised.
That null result turned out to be informative. The registry record states the part was codon-optimised for E. coli by GenScript when it was deposited in 2013, so the optimiser was handed a sequence already adapted to the target organism and correctly left it alone. One run rewrote a GC-rich actinobacterial gene substantially, the other returned its input unchanged, and the difference between them is a property of the inputs rather than of the tool.
Both optimised sequences were saved as parts in the project folder, which makes them available to build with.
A note on what the tool reported. Asimov Codon Usage Index and RNA structure score both returned N/A on these runs, which I take to mean those metrics attach to the Asimov presets. A question for office hours.
Biosecurity screen
Both optimised sequences were run through SecureDNA, which compares an input against a database of biosecurity concerns. Both returned no flagged sequences detected. That is a screen against one specific database, which is a narrower statement than a general assurance of safety.
Pairwise alignment
The aligner compares two sequences and reports identity. I used it to answer one question: did codon optimisation change the protein?
Tyrosinase. Original UniProt protein against the translation of the optimised sequence. Kernel’s raw output is 276 aligned positions, 274 matches, 0 mutations, 99.30% identity. The two unmatched positions are the appended stop codons, which the aligner counts as insertions. Stop codons are not residues, so the figure to report biologically is 100% identity across all 274 amino acids.
gfasPurple. Translation of the original against translation of the optimised. Alignment length 223, 223 matches, 0 mismatches. The same correction applies: 669 bp is 223 codons, of which the final two are the tandem stop, so the protein is 221 residues at 100% identity.
Zero mutations in both cases. The optimiser rewrote the DNA and left the protein untouched, which is exactly what codon optimisation is for and is now something I can show instead of asserting.
What the export revealed
Exporting both constructs as GenBank produced the second finding, and the more serious one.
The purple file was complete. Every feature annotated, full sequence, translation present.
The tyrosinase file had a hole in it. Positions 44 to 865, the whole coding region, came out as n, 822 of them. The feature was annotated and carried its full translation, with no nucleotides behind it.
The part type is written into the file. protein-yes-start-no-stop records that the part holds amino acids with a start and no stop, which is precisely why there are no nucleotides to write and why the span is filled with N. Kernel knew what the part was, placed it in a DNA construct, and exported the gap without a warning or a lint error at any point.
The “822 bp” is 274 residues multiplied by three, a notional length. The working build is 828 bp, and the six-base difference is the pair of stop codons the optimiser appended, which the no-stop in that type string also records.
That construct could not be synthesised. It looks complete on screen, passes the checker, and would fail the moment anyone tried to order it.
The fix was already in hand. TyrSg_Ecoli_optimised is real DNA, 828 bp, so I rebuilt the cassette around it as T7-RBS-TyrSg-opt-term, 2,965 bp. Its export carries defined bases from end to end, the coding region running 44 to 871 and closing on a tandem TGA TAA.
What I take from this is a working habit. The screen renders a protein part and a DNA part identically. The export distinguishes them, so exporting is part of the design work.
A second instance of the same lesson, running the other way, appeared later. After I added a description to the gfasPurple construct, Kernel began drawing five duplicate annotation tracks across all three of its views. The export was unchanged, one coding sequence and an identical sequence block, so the data was sound and the display was wrong. The screen and the file disagree in both directions, and the file is the one that decides.
Parts 5 and 6 — Building it, and what I do not know
Synthesis. Each coding sequence is under 1 kb, which sits comfortably within the range for a single ordered synthetic fragment. Reading the exports confirms two BsaI sites in each construct, one at each junction between backbone and insert, with none inside either coding sequence, and Kernel labels them iGEM seams C and D. Golden Gate assembly into the existing backbone is therefore available as an alternative to ordering the whole plasmid. Gibson assembly offers the same route for joining fragments with overlapping ends. Chip-synthesised oligo pools would become relevant at the point where I want many pigment variants at once.
None of the three constructs has been built or expressed. Everything below Part 4 describes designs that are sequence-verified and nothing more.
The unknowns, and how I would test each.
Does the tyrosinase fold into an active enzyme at all? This precedes every optical question. Express the cassette with and without a MelC1 co-expression construct, supply copper, and assay activity against L-DOPA by absorbance at 475 nm. A colourless reaction with copper present would point at maturation rather than at expression.
Does tyrosinase activity destroy the reaction that makes it? A lysate contains free tyrosine because translation requires it, and active tyrosinase oxidises tyrosine to dopaquinone, which crosslinks proteins including ribosomes. The design response is a two-step protocol: run expression to completion, then add copper and tyrosine. Testing it means comparing yield in a one-pot reaction against the staged version.
Does gfasPurple mature inside the reaction window? Photograph the reaction at intervals over 24 hours and measure absorbance at 577 nm. If colour appears only after the reaction has stopped, the protocol needs an extended incubation after expression.
What does the unreacted gel do in the ultraviolet? Contrast is pigment absorbance measured against substrate reflectance, so the blank is half the signal and costs nothing to measure. This may constrain the choice of material more than the choice of pigment.
Does the mark stay sharp, or diffuse through the material? Deposit the template as a defined shape, incubate, then photograph at intervals and measure the edge gradient over time. This sets the minimum feature size the system can hold.
What feature size can a bee resolve at the distance it would approach from? This constrains the composition before any of the biology matters, and it is answered from the pollinator-vision literature instead of at the bench.
The harder half: how does a pattern become symmetrical?
Producing pigment solves one part of the problem. The defining feature of an inkblot is its bilateral organisation, and that is a question about pattern formation.
Two principles frame the investigation.
Reaction–diffusion. Turing’s model describes how interacting diffusible components can generate spatial structure from near-homogeneous starting conditions. Spots, stripes and boundaries emerge from local rules, with nothing specifying their position in advance. The mechanism requires coupled activation and inhibition at different diffusion rates. Pigment spreading through a gel is diffusion alone and produces a gradient, which is a different thing and worth keeping distinct.
Quorum sensing. Bacteria communicate through diffusible signalling molecules and respond at concentration thresholds. A system built this way responds to what is happening collectively across a space. The LuxI/LuxR system and its acyl-homoserine lactone signal exist as characterised registry parts, so there is a real parts path here and not only a metaphor. Threshold response is a component of a patterning circuit, and on its own it generates no pattern.
Together they suggest a different architecture. Genetic information would establish rules for interaction, and the image would be produced by those rules running in a material.
signal → sensing/threshold → activation or inhibition → pigment output
local interaction + longer-range interaction → emergent pattern
One tension to record now. Quorum sensing depends on cells producing and sensing signal, and a cell-free reaction has no cells. Reaction–diffusion patterning has been demonstrated in cell-free genetic circuits held in gels, so the principle survives the move, though the mechanism has to be rebuilt without the organism. That is a real design problem, and naming it now is better than leaving it to sit under the proposal unexamined.
The three constructs in this homework are the pigment output stage of that diagram. The sensing and the coupling are not built, and nothing here is yet a patterning circuit.
Symmetry as a condition of the dish
Reaction–diffusion generates complexity. Complexity on its own gives no reason for an inkblot’s mirror line.
The working hypothesis is that symmetry belongs to the physical layer. Geometry, initial conditions and the boundary of the vessel could impose bilateral organisation while the interior detail stays emergent. A fold, a mirrored deposition, a symmetrical boundary. A symmetrical vessel constrains where pattern can form and stops short of guaranteeing that any particular pattern comes out mirrored, so mirrored initial conditions are likely to be the part that does the work. The system then has three layers that do different work:
Genetic — controls expression and the optical behaviour of the output
Reaction–diffusion and signalling — allows the components to respond to one another across space
Physical — constrains the result toward bilateral organisation
The inkblot would be produced by the relationship between the three.
From the plate to the gel
Inkblot for Bees began in printmaking studios in London in 2023 and 2024, as drypoint. In drypoint the image is decided by the incision. The burr holds the ink, the plate is a deterministic matrix, and every impression carries the mark I made. Control is total and it is exercised in advance.
What is happening in Kernel is a different relationship to the same image. The question has moved.
The old question was how to encode the shape of an inkblot. The one I am working on now is what conditions would let an inkblot-like pattern arise. Biotechnology used as another image-production technology would make the first question sufficient. Treating the dish as a generative matrix makes the second one necessary, and it is more interesting, since the gel would then be doing some of the deciding: where an edge settles, how far a front travels, what the material permits.
The first Living Inkblot
The purple construct is the one I will make an object with. Expressed in a cell-free reaction and deposited as a bilateral form, it would produce the first Living Inkblot: the first work in the series whose colour is made by expression instead of by my hand.
The authorship is worth stating precisely. Expression produces the pigment. The bilateral deposition is still specified by me, and the emergent interior is the goal of the stage after this one. What changes at this point is the origin of the colour, which is a smaller claim than the one the series is heading toward and a true one.
Using gfasPurple for that first object is a deliberate choice about what each construct is for. Purple is the colour I can verify by eye, which makes it the right material for establishing whether the deposition, the diffusion and the edge behaviour hold up at all. The ultraviolet and blue constructs follow once the method works, and those are the ones addressed to the bee.
The drypoints were cut. This one is deposited, and the colour arrives on its own schedule.
AI use
I used two AI assistants on this assignment.
The first draft of this write-up was produced with Claude , working from the assignment document and my notes, as a way of getting the structure and the argument into a first readable shape.
I then worked with ChatGPT to check the molecular biology, orient myself in Kernel’s interface, evaluate which registry parts suited a prokaryotic cell-free design, and reorganise and edit this text into its final form.
Prompts included requests to explain what what tyrosinase does, which of 157 tyrosinase entries suited a bacterial host, which entries in a chromoprotein list were blue coding sequences, and how to read the construct checker’s warnings.
The design decisions, the project and the argument are mine.