# sail-o-bots by sturec

## The work and its context

A sail-o-bot is a face suspended above a small paper boat. Its rectangular head tips from side to side, its eyes change emphasis, and its eyebrows refuse to settle. Behind it, an improbable seascape combines blue cloud-like forms, fine wave lines, a bright sun and a separate planet. The scene is comic, but its restlessness prevents the face from becoming a completely fixed emblem. In the four originals inspected here, recognition depends on simple geometry while personality emerges through the changing relationship between those parts. [^S05] [^S06] [^S07] [^S08]

sturec released sail-o-bots in the Art Blocks Factory category in June 2021, with 750 works. The project description imagines creatures that own boats but prefer to remain in place, watching the sunset. The pictures support that tension between apparent travel and actual suspension: the tiny vessel moves, yet the large face keeps returning around its central position. The [sturec dossier](https://ab5d.xyz/artists/sturec/) provides wider context. [^S01] [^S02]

The current official description also explicitly identifies a predecessor, Che-Yu Wu's Strange Robots, and lists modifications to facial accessories, colours and other features. That acknowledgement is essential to an account of authorship. The work can be examined as a particular adaptation and presentation of a shared computational vocabulary without pretending that its entire robot grammar originated with this release. [^S01] [^S12]

## Conception and development

The artist's collection page connects the nickname SeaHams to the pink colour of the genesis output and describes the figures through a playful narrative of waiting, discomfort and self-discovery. It presents animation, coding and design as parts of one project. These are the artist's interpretations of the collection; a viewer need not recover a specific psychological message from every face to recognise its unsettled expression. [^S03]

In a January 2023 blog post, sturec recalled months of experiments with creative tools before the project. The post discusses p5.js, Processing and other environments as resources for exploration and describes the reception of sail-o-bots as emotionally difficult. This later personal account is useful evidence of how the artist understood the work after release. It does not, by itself, establish the sequence of every code change or resolve questions about the predecessor's contribution. [^S04]

The official description gives a more concrete lineage: it names Strange Robots by Che-Yu Wu, links the OpenProcessing sketch, and reports use under CC BY-SA 3.0. It describes added glasses and lips, custom colour sets, and altered antenna, ear and nose geometry. The linked sketch was opened and its visible Robot class inspected. The present indexed sail-o-bots script contains both procedural facial shapes and embedded vector assets, so the brief description should not be treated as an exhaustive inventory of every current branch. [^S01] [^S02] [^S12]

## How the work was constructed

The complete retrieved script contains 73,753 characters and uses p5.js 1.0.0. Much of its length consists of embedded SVG drawings rather than generative instructions. The inspection covered its executable flow and the structure of all thirty-five embedded assets: ten mouths, eighteen glasses, a paper boat and six celestial bodies. These stored shapes are converted into image data inside the program. They are selected components within the generated scene, rather than independently generated contours on every frame. [^S02]

A numeric value parsed from the beginning of the token hash initialises a custom Random class. Three bitwise shifts update its state; the resulting bounded value supplies number ranges, integer selections and choices from arrays. This generator chooses dimensions, colours and categorical options. The canvas is square, sized to the smaller browser dimension at initialisation. The face's widths, heights and stroke sizes are expressed relative to that size, keeping its components broadly proportionate to the display. [^S02]

The Robot constructor assembles a body rectangle, antenna, ears, paired eyes and colours drawn from several stored palettes. It also receives choices for mouth and glasses. The mouth can be drawn with rectangles or arcs, or selected from the embedded SVG collection. Glasses similarly include procedural frames, an absent-glasses branch, exaggerated frames and stored vector designs. These alternatives explain why the same basic face can appear exposed and vulnerable in one work but heavily accessorised in another. [^S02] [^S05] [^S06]

Animation changes the relationships within that fixed selection. Sine functions tilt the entire head, alter eye diameters, move the eyebrows and antenna, and animate applicable mouth and glasses branches. Several formulas also include the pointer's horizontal or vertical position. The interaction is therefore continuous input into the motion, not a command to mint or select a different token. In the held example, moving the pointer into the canvas changed the scene's placement while the same face and accessories remained. [^S02] [^S11]

The environment is layered behind the robot. A sun is accompanied by translucent circles whose sizes vary with the frame count. A cloud function builds the upper blue region from overlapping circles and a closing polygon, with noise changing its boundary. Lower down, a gradient is drawn line by line. Curved wave paths run across it, their vertical displacement calculated from a noise field whose third coordinate advances during the draw loop. The drawing order separates sky, atmosphere, water and figure without constructing a three-dimensional world. [^S02]

A selected planet is placed near the upper left and rotates gently with the frame count. Its position also includes pointer offsets. The paper boat is drawn after the robot, using a small oscillating rotation and a translation that responds to the pointer. It does not carry a dynamically simulated passenger. Its slight independence from the large head creates the comic mismatch visible in the outputs: the supposed sailor is enormous beside the vessel that would transport it. [^S02] [^S05]

The final overlay uses a noise-derived texture in multiply blending mode. Its strength is selected from three scale-dependent values. This gives some outputs a more granular surface than others, even though the underlying faces use clean geometric edges. Two earlier offscreen drawing loops repeatedly place marks at fixed coordinates; they should not be described as distributing random grain across the entire image. The widespread texture comes from the separate pixel-by-pixel overlay. [^S02]

There is an important reproducibility limit. The script seeds its custom choices and calls randomSeed during drawing, but no noiseSeed call was found. Seeding p5's random function is not the same operation as seeding its noise field. It would therefore be too strong to claim that every cloud, wave and texture pixel is determined by the token hash alone. Frame count, pointer position, viewport size and the runtime's noise state also affect the rendered scene. The indexed script was inspected in full, but not compared with a pinned historical chain retrieval. [^S02] [^S16]

All four originals visibly animated during inspection. No audio routine was found. Motion is driven by frame counts and an incremented variable, so no single exact wall-clock loop duration is asserted. Retaining only a preview would preserve the face's selected attributes while losing the changing expressions and environmental movement that make those attributes feel inhabited. [^S02] [^S05] [^S06] [^S07] [^S08]

## The mint

The Art Blocks collection page gives 28 June 2021 as the release date. The current index records the first token on 23 June at 18:31:11, activation on 26 June at 03:48:10, and the second token on 28 June at 19:59:59. The scheduled-start field matches that second timestamp. Completion is recorded on 29 June at 07:10:07. These are separate indexed events, and the earlier token should not silently replace the public-facing release date. Full timestamps and offsets remain in the evidence record. [^S01]

Current invocations and maximum both equal 750. The price setting now reported is 0.07 ETH. Neither that current setting nor today's maximum independently proves the originally announced terms or what each recipient paid. The research did not classify every transaction into public, reserved or administrative mints, and therefore does not turn the interval between the second mint and completion into an audited public sellout duration. [^S01]

A later Sotheby's catalogue identifies #576 as a unique interactive animation within the 750-work series and records its token and contract. This is evidence of a subsequent auction presentation, not evidence of the original primary-market price or of the edition's reception as a whole. [^S13]

## Copyright and licensing

The inspected sources do not give one consistent rights statement. The current Art Blocks artwork field says NFT License but provides no terms URL. That label alone does not identify a specific version or permission text. Meanwhile, the repository linked from the artist's collection page states that the artwork is licensed under CC BY-NC 4.0 and describes noncommercial sharing and adaptation with credit. Both observations are preserved rather than silently substituting one for the other. [^S01] [^S14] [^S15]

The official project description separately says the source derives from Strange Robots under CC BY-SA 3.0. That deed allows sharing and adaptation, including commercial use, subject to attribution and ShareAlike conditions. This is materially different from a noncommercial restriction. The relationship between the upstream code, later contributions and artwork permissions has not been resolved here. The essay records the attributed source and the conflicting labels; it does not make a finding of infringement or offer a settled reuse licence. [^S01] [^S09] [^S12] [^S14]

The p5.js 1.0.0 dependency carries its own LGPL version 2.1 licence. Its terms do not resolve the separate artist and upstream-code questions. No source program is redistributed with this essay. AB5D's CC0 dedication applies to the original prose, while the artwork retains its separate, unresolved rights status and acknowledged predecessor. [^S10]

## Close reading of four outputs

Editions 0, 1, 10 and 20 were preselected as a small early-edition comparison, with full token identifiers 98000000, 98000001, 98000010 and 98000020 on Ethereum contract 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270. Each original renderer was viewed at more than one moment. The sample supports close comparison, not claims about the statistical frequency of traits. [^S05] [^S06] [^S07] [^S08]

In #0, a broad pink head has no glasses. Purple and orange rings surround its black eyes, while a dark green antenna projects above it. A short blue mouth and differently coloured eyebrows give the face an uncertain expression. As the head rocks, those small features change their apparent alignment. The lack of a frame around the eyes makes their asymmetry especially exposed. A ringed planet at upper left and the tiny white boat below set the figure between cosmic scale and a toy-like activity. [^S05]

In #1, a narrower turquoise face wears large grey rectangular glasses. Their translucent lenses partly veil the eyes, and a wide dark red curved mouth makes the figure seem more openly cheerful than #0. The green antenna remains tall, but the glasses dominate the central structure. In successive observations the face moved from a stronger tilt towards a more upright position while the eyebrows and water changed. Its apparent mood is a reading of these relationships, not a claim that the program assigns an emotional state. [^S06]

In #10, a salmon-coloured head sits behind dark blue rectangular glasses. The purple and ochre eye surrounds remain conspicuous through them, and a small pale mouth supplies relatively little expressive emphasis. The green antenna is broad, making the top of the head feel heavier than the mouth area. Visible grain roughens the otherwise flat surface. Compared with #1, the stronger frame and quieter mouth produce a more guarded appearance, although both use the same vocabulary of a tilted rectangle and paired circular eyes. [^S07]

In #20, a dark purple head carries grey glasses, orange ears and a pale short mouth. Its antenna is much smaller, so the central mass seems more compact. A blue striped planet replaces the ringed bodies seen in #0 and #10. The dark face separates strongly from the blue environment, while its pale mouth becomes an anchor among the moving parts. The paper boat remains small and detached below, preserving the series' peculiar imbalance between character and supposed means of travel. [^S08]

The verified AB5D example, #377, has a yellow rounded head, tall grey oval frames and a stepped red mouth. Its blue planet, orange sun and small white boat form the familiar surrounding scene. Current indexed ownership matches an AB5D wallet. The animated original was inspected, including a pointer-position change; the motion makes its changing expressions visible beyond the fixed traits in its preview. [^S11]

## Significance and limitations

sail-o-bots turns a modular face into a small ongoing performance. Its appeal depends less on intricate geometry than on the instability of ordinary facial cues: a brow tips, an eye expands, a mouth briefly appears more emphatic. The environment echoes that restlessness without carrying the figure to a destination. The four viewed works retain recognisable identities while repeatedly changing their apparent bearing. [^S02] [^S05] [^S06] [^S07] [^S08]

An adequate archive must also preserve the acknowledged Strange Robots lineage and the unresolved relationship among the published rights statements. Those records are part of this series' history, alongside its colour, animation and collecting context. Visual analysis and source attribution strengthen each other when neither is used to erase the other. [^S01] [^S12] [^S14]

Unresolved research questions:

- Recover original sale terms and classify mint allocations before calculating public-sale duration.
- Compare the indexed script against pinned chain history and document revisions.
- Resolve artwork, upstream-code and contributor rights across the three observed labels.
- Compare noise behaviour across fresh renderer sessions and library environments.
- Inspect a broader range of SVG accessories and all available feature branches.

[^S01]: Art Blocks / sturec. [sail-o-bots project record and Art Blocks index](https://www.artblocks.io/collection/sail-o-bots-by-sturec). Accessed 2026-09-17.
[^S02]: sturec; predecessor credited to Che-Yu Wu. [sail-o-bots indexed artist script](https://artblocks-mainnet.hasura.app/v1/graphql). Accessed 2026-09-17.
[^S03]: sturec. [Sailobots NFT Collection on Artblocks.io](https://sturec.art/sailobots-nft-collection.html). Accessed 2026-09-17.
[^S04]: sturec. [Creating Generative Art: Tips, Tricks, and Inspiration](https://sturec.art/blog/creating-generative-art-tips.html). Published 2023-01-12. Accessed 2026-09-17.
[^S05]: sturec. [sail-o-bots #0](https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/98000000). Accessed 2026-09-17.
[^S06]: sturec. [sail-o-bots #1](https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/98000001). Accessed 2026-09-17.
[^S07]: sturec. [sail-o-bots #10](https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/98000010). Accessed 2026-09-17.
[^S08]: sturec. [sail-o-bots #20](https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/98000020). Accessed 2026-09-17.
[^S09]: Creative Commons. [CC BY-SA 3.0 deed](https://creativecommons.org/licenses/by-sa/3.0/). Accessed 2026-09-17.
[^S10]: p5.js contributors / Free Software Foundation. [p5.js 1.0.0 licence](https://raw.githubusercontent.com/processing/p5.js/1.0.0/license.txt). Accessed 2026-09-17.
[^S11]: sturec. [sail-o-bots #377](https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/98000377). Accessed 2026-09-17.
[^S12]: Che-Yu Wu. [210328 Strange Robots](https://openprocessing.org/sketch/1150492). Accessed 2026-09-17.
[^S13]: Sothebys. [sail-o-bots #576, Digital Art Day Sale](https://www.sothebys.com/en/buy/auction/2024/digital-art-day-sale-2/sail-o-bots-576). Accessed 2026-09-17.
[^S14]: sturec. [Sailobots repository README](https://github.com/sturec5/sailobots-nft). Accessed 2026-09-17.
[^S15]: Creative Commons. [CC BY-NC 4.0 deed](https://creativecommons.org/licenses/by-nc/4.0/). Accessed 2026-09-17.
[^S16]: p5.js contributors. [noiseSeed reference](https://p5js.org/reference/p5/noiseSeed/). Accessed 2026-09-17.
