Search
1000 results for “technology_tales”
-
CW: OpenSim's famous Universal Campus and a picture of its main building; CW: long (62,514 characters, including 1,747 characters of actual post text and 60,553 characters of image description)
It's one of the most well-known OARs, and I guess every OpenSim user with a little more experience has come across at least one instance of it: the Universal Campus.
It was built by Michael Emory Cerquoni, an early OpenSimulator developer first known in-world as Nebadon Izumi who released his creations under the Oni Kenkon Creations brand, and who is also the builder of Wright Plaza, OSgrid's famous old freebie sim. The project was a collaboration with the now-defunct Center for Computer Games and Virtual Worlds at the University of California in Irvine, and it was designed and intended to act as an actual virtual campus.
Due to the size of the project as a whole and the main building in particular, Nebadon built the Universal Campus as a mega-region, an OpenSim hack from around 2009 that made it possible to stretch a build across multiple standard regions, in this case two by two. So the Universal Campus is not one OAR, it's four, one for each region.
The first publicly available version of the Universal Campus was released in 2011, so as futuristic as it looks, it is already roughly 13 years old.
The main building shown here is outright gargantuan. It is still one of the biggest buildings around the Hypergrid. At a length from north to south of over 200 metres, it actually had to be built across a region border. Today, a decade after the introduction of varsims, this is no longer a problem.
Although it's possible to walk from everywhere on the island to everywhere else, a network of custom-made teleporters with ten destinations reduces travel time greatly. One destination is right in front of the main building, and two more are inside, the only two in-door destinations, such is the immense size of the building.Image description
The picture in this post is a digital rendering from inside a 3-D virtual world based on OpenSimulator, generated in a regular client for this kind of virtual worlds, also known as a viewer, using shaders and generated shadows, but without ray-tracing. It shows the main building of the Universal Campus as mentioned in this post.What OpenSimulator is
OpenSimulator, OpenSim in short, is a free, open-source, cross-platform server-side re-implementation of the technology of Second Life. The latter is a commercial 3-D virtual world created by Philip Rosedale, also known as Philip Linden, of Linden Lab and launched in 2003. It is a so-called "pancake" virtual world which is accessed through desktop or laptop computers using standard 2-D screens rather than virtual reality headsets. Second Life had its heyday in 2007 and 2008. It is often believed to have shut down in late 2008 or early 2009 when the constant stream of news about it in mainstream media broke away, but in fact, it celebrated its 20th birthday in 2023, and it is still evolving.
OpenSimulator was first published in January, 2007. It was made possible when, in 2006, Linden Lab open-sourced the official Second Life viewer, which is how client applications for Second Life and OpenSim are called, thus laying its viewer API open. This led to the development of third-party viewers. After the development of third-party viewers had started, OpenSim was developed against them and the Second Life viewer API. It does not have its own official viewer, but most of the popular third-party Second Life viewers are compatible with OpenSim as well.
Unlike Second Life, OpenSim is not one monolithic, centralised world. It is rather a server application for worlds or "grids" like Second Life which anyone could run on either rented Web space or at home, given a sufficiently powerful computer and a sufficiently fast and reliable land-line Internet connection. This makes OpenSim as decentralised as the Fediverse. The introduction of the Hypergrid in 2008 made it possible for avatars registered on one OpenSim grid to travel to most other OpenSim grids.What grids, regions and sims are
Second Life and the OpenSim-based worlds are called "grids" because they are flat worlds divided into square areas of 256 by 256 metres each which is roughly 280 by 280 yards. These areas are called "regions". Regions can be empty, in which case they're shown as ocean, but they can't be entered. In order for any actual content to exist in a region and for avatars to be able to enter regions, a simulator, sim in short, has to run in a region.
In Second Life, a sim is always one region. OpenSim had a hack from 2009 on that was called "mega regions". It exploited a feature in third-party Second Life viewers that was not used by Second Life itself, and that made it possible to extend a sim across multiple regions in a square arrangement. The Universal Campus itself is built as a mega region of two by two standard regions. Since this hack was buggy and limited, varregions, now known as varsims, were first developed for the OpenSim fork Aurora-Sim. Eventually, they were officially introduced into OpenSim in 2014. They theoretically allow for a sim to stretch across as many as 32 by 32 standard regions with no borders in-between.
Unlike Second Life, OpenSim also has the option to save entire sims into archives and load them from archives, so-called OARs which is short for OpenSimulator Archives. Many of these are available online. Mega regions are saved in one OAR for each region, and as the Universal Campus was designed as a mega region and pre-dates varsims, it is divided into four individual OARs. A varsim, on the other hand, can be entirely saved in and loaded from one OAR.Where the pictures were made
Particularly, the picture was created at UniCampus, an instance of the Universal Campus in OSgrid (https://osgrid.org) owned by one of the grid admins. Launched in July, 2007, OSgrid was the first public OpenSim grid and intended as a testbed for OpenSim's development. Next to Wolf Territories Grid from 2021 (https://wolfterritoriesgrid.com/, https://www.wolf-grid.com/), it is one of the two biggest OpenSim grids; each one of these two grids has more landmass than Second Life.
OSgrid also adopted the early OpenSimulator slogan "The Open Source Metaverse" immediately after its launch. It still uses that slogan, and the term "metaverse" has been commonly used by the OpenSimulator community ever since.Camera position and general setting
The picture was taken from a point of view higher than the eyes of an avatar, ca. three metres or ten feet above the ground. The position of the camera is near the inner edge of a wide path that describes an eccentric path of three quarters of a circle around the likewise circular main landing zone as well as just a bit south of the southern edge of a wide, straight path that least eastward fromo the main landing zone. The direction of view is almost northward and slightly to the west. Also, the camera is tilted upward by a few degrees due to its low position and the height of the building.
All dimensions in this description are estimated.Main building, southern end and main entrance
The main building of the Universal Campus is the centre-piece of the image. It is a gigantic building that towers high above all surrounding trees, although it is not actually a tower, nor does it have one. It is rather a lengthy building that stretches from north to south. In the image, the middle of its front is at one third of the width of the image from the left-hand edge, reaching to the left as far as one sixth of the width of the image from the left-hand edge. The conference hall at the far end is at one third of the width of the image from the right-hand edge with parts of the building almost reaching the edge. Its supporting structure mostly shows textures with highlights included which suggest that it was made of stainless steel. Otherwise, glass with a horizontal gradient between lighter grey and darker grey on the outside and a plain darker grey tint on the inside is the most commonly used material. The building does not have any exterior walls.
The southern entrance, the main entrance to the building with the main landing area right outside the doors, is surrounded and marked by a tall geometrical structure which is rather complex in spite of only having straight edges. It resembles a spaceship from an early video game as roughly as it resembles the letter A or an upside-down V. It is almost perfectly symmetrical around both vertical planes. Its medium grey surfaces are untextured otherwise and don't mimic any particular material.
On each far side is a vertical "column" with a footprint with the shape of a trapeze, very roughly four metres or thirteen feet wide and four metres or thirteen feet thick. The short side of the trapeze, measuring only a bit over three and a half metres or twelve feet, is on the outside. These columns rise up some nine metres or 30 feet on the inside. The top slopes downward towards the outsides, so the columns are less than eight or about a half metres or 27 feet high on the outside.
The centre and top piece of the structure, right above the doors and roughly seven and a half metres or 25 feet above the ground, is roughly ten metres or 33 feet tall and roughly four and a half metres or fifteen feet wide. It has a rectangular cross-section when looked at from inside the building or from the main landing area, but a heptagonal cross-section when looked at from the sides. Its seven visible faces are all rectangular. At the bottom, it is roughly five metres or roughly sixteen and a half feet thick with only one surface. The top is roughly five metres or roughly sixteen and a half feet thick, too, but with a pair of surfaces of the same size at an angle of under five degrees, forming a slight ridge at the top.
The inner and outer sides of this centre-piece are each made up from an upper surface which is a square and sloped outward from the top and a lower surface which is a rectangle and sloped outward from the bottom. They meet at an angle of roughly 20 degrees.
On each side, two irregularly-shaped structures of seven surfaces each connect the seven edges of the sides of the centre piece with the four edges of the inner sides of the columns. Six of these surfaces are more or less slightly twisted because they connect edges at different angles with each other. The only planar surface is the one that connects the bottom edges which are all horizontal.
Two pairs of double glass doors make up the actual main entrance. Each door blade is about two and a half metres or eight feet wide and about five and a half metres or eighteen feet high. The glass has the same horizontal gradient texture both on the inside and on the outside so that all door blades can be identical. The only difference between the door blades is whether the door script opens them clockwise or counter-clockwise. The texture is arranged in such a way that there are narrow lighter areas along both vertical edges when the hinge is on the left, and there is a wide lighter area on the lock side and a narrow lighter area on the hinge side when the hinge is on the right. The narrow sides of the door blades are opaque when looked at from the outside but, due to OpenSim's limitations, not when looked at from the inside. The doors open inward by 90 degrees, and they do so when they're clicked, or when an avatar approaches them. They can be closed manually by clicking them again, otherwise they close automatically after ten seconds.
Each door blade has one simple door handle on the inside and the outside tinted the same generic grey as the large structure surrounding the doors. The handles are only a few centimetres wide. The grips have a square cross-section. Above and below, there are thicker parts which connect the grips to the doors while being flush with them on the sides and facing away from the door blades. Altogether, each handle is half a metre or one and five eighths feet long. The top of each handle is about one and three quarters metres or five and three quarters inches above the ground.
Between the two door pairs and on their sides, there are altogether three columns with a rectangular footprint of roughly 90 centimetres or three feet width by 30 centimetres or one foot thickness, each roughly seven and a quarter metres or 24 feet tall. Above each pair of doors, they are connected with a horizontal beam that fits between the top surfaces of the columns and the top edges of the doors while being half as thick as the columns.
The spaces between the large structure around the entrance, the columns and the horizontal bars are filled with glass panes.
The whole door ensemble does not sit exactly at half the thickness of the large structure. It is shifted outward by about half a metre or one and five eighth feet.
A structure shaped like an almost flat pyramid, but with a flattened top, is mounted upside-down against the bottom surface of the centre of the large structure around the main entrance. The glass pane above the doors passes right through its middle. A square light is installed on the flattened top which is actually the bottom now, illuminating the entrance area when it is dark. Otherwise, this flat structure has the usual brushed stainless steel texture which appears rather dark here.
On each side of the entrance area, a cylindrical column with a diametre of roughly four metres or thirteen feet rises some 20 metres or 66 feet upward. Each column is slightly tilted inward along the longitudinal axis of the building and outward to the sides. On each side, farther outside, there is another, even taller column, easily over 30 metres or 100 feet tall. These columns are tilted along the longitudinal axis of the building at the same angle, but outward to the sides at a smaller angle. They make up the southern corners of the main building. All four columns are textured to resemble brushed stainless steel.
A semi-cylindrical structure connects the complex main entrance structure through the inner columns with the outer columns on the ground. Its diametre is roughly 2.40 metres or eight feet. It uses the usual brushed stainless steel texture, but the brushing direction is radial, and the texture is stretched along the axis of the cylinder so much that its nature is anything but obvious.
Between the columns and the main entrance structure, there are three more glass panes. The panes between the inner and outer columns are mounted halfway into the building whereas the one around the main entrance structure is almost all the way inside the building. Three horizontal stainless steel rods of about 30 centimetres or one foot lead through each pane. They are roughly evenly spaced, but closer to the upper and lower edges of the glass panes than to each other. The rods that pass through the panes between the columns grow to a diametre of roughly 45 centimetres or one and a half feet towards their ends before ending in short cylinders with diametres of about 1.80 metres or six feet.
On top of the inner columns and partly intersecting with the outer columns, a massive, upright, flat structure with stainless steel textures serves as the southern end of the roof. It has to be about 50 metres or 160 feet wide, about 15 metres or 50 feet tall and about 3.60 metres or 12 feet thick. The front and rear surfaces are slightly countersunk with margins of slightly varying thickness all around except for the bottom. The top edge has a fairly short horizontal section of ten metres or 33 feet in the middle from which it curves downward in sections of ellipses. The bottom edge is almost horizontal and leads to corners from which short 45-degree slopes lead upward. The slopes from the bottom and the ellipses from the top meet in rounded corners. Unlike the columns below, this roof end is mounted vertically.Main building, Universal Campus logo
The roof end also carries the logo of the Universal Campus, sitting at half the height of the outer countersunk area of the roof end and ever so slightly to the left of its middle. Its base is a circular, conical structure with a diametre of ten metres or 33 feet, the sloped edge being black. The actual logo is part of the texture on the front surface of the cone. It has a diametre of about seven metres or 23 feet.
The inner 80% of its diametre are filled with a gradient from medium dark grey at the top to medium light grey at the bottom. Three shaded three-dimensional primitive shapes are displayed in this area, a cube with one corner each pointed to the top and the bottom at the top, a sphere in the bottom left, a tetrahedron in the bottom right. At the bottom of this area, "Patefacio radix" is written in medium dark grey letters, in a wide sans-serif typeface and in what is likely to be small caps. It is Latin for "open source". Below, the Roman number MMXI, 2011, marks the year of the first public release of the Universal Campus.
A thin dark grey circle separates this area from the outer 20% which are light grey. Re-using the same typeface as in the inner part, and in dark grey with blue shading, "Universal" is written at the top and "Campus" at the bottom, both capitalised with otherwise small caps and following the circular shape of the logo.
29 identical black circular spots, very roughly evenly spaced, protrude from underneath the logo all around it by a bit more than their own diametre. They separate the logo from the surrounding white area which, in turn, is surrounded by the aforementioned black conical slope.
The Universal Campus logo is illuminated from below. The light source sits in a slot in a cylinder on top of the main entrance structure, about two metres or six and a half feet long and a diametre of about 30 centimetres or one foot. This cylinder has spherical end pieces, and the whole arrangement has a simple, glossy, medium grey surface.Main building, side
Each side of the building, all the way to the conference hall at the northern end, is tilted outward at the same angle as the corner columns around the front and much simpler in design. Starting north of the side entrances right behind the front, a semi-cylindrical structure on the ground, similar to those at the front, extends northward towards the conference hall, only interrupted by another set of side entrances shortly before the conference hall. Farther up, there is another cylindrical structure of the same diametre and with the same texture on each side, but with a cutout on the upper inner side of a bit over 90 degrees to help carry the upper floor on the right, actually semi-cylindrical on the left and stretching all the way between the columns on both sides. Even farther up, right below the roof, another cylindrical structure is installed, but cut out on the inside by 60 degrees upward and 75 degrees downward.
Eight cylindrical beams with a diametre of roughly 90 centimetres or three feet and the usual stainless steel texture serve as the near-vertical supports. Nearly evenly spaced, except for the first being closer to the second, and running from the bottom to the top, they divide each side into eight full-sized sections and one small section right in front of the conference hall.
As mentioned above, the building has four sets of side entrances. One on each side is right behind the front behind the colour and the first support beam, one on each side is just south of the conference hall between the seventh and eighth support beams. The doors are identical to the ones that make up the main entrance, but each side entrance has three pairs of doors instead of two.
Between the three double doors, there is a filler column with a rectangular vertical cross-section, a width of about 45 centimetres or one and a half feet and a thickness at ground level that is slightly less than the width. While the inside surface is vertical, the outside surface is sloped in parallel to the outward tilt of the side of the building. Similar but wider columns are installed on the sides of the doors, being the closest that the building has to outer walls. Another structure with a rhomboid north-south cross-section sits on top of each set of four pillars, connecting them and carrying a glass pane on top. Its inside surface is sloped outside, its outside surface has a stronger slope than the outer side of the building. Also, its texture is lighter than that of the pillars.
Everything else between the vertical and horizontal structures on the sides of the building is filled with glass panes, all with a light vertical streak down their centres, blurred by the gradients on its sides.Main building, roof
On the visible right-hand side of the building, right above the positions of the first seven of the eight support beams, curved brackets reach down from the roof, holding the upper horizontal cylindrical beam from the outside. They appear to be dark grey, but they actually have the usual brushed stainless steel texture. These brackets are installed on both sides across the outer parts of the roof, and slightly larger versions span across the centre of the roof as can be seen from below through the windows of the building.
A little bit of roof is visible underneath these brackets. The roof has four identical sections from its end to the conference hall. All are mostly planar with a rounded outer side. From above, they have the most elaborate surface of the whole building. It is almost black. A bump map or a normal map divides it into slightly embossed and slightly less rough rectangles, slightly countersunk and slightly rougher rectangles and the another bit smoother lines in-between. The rectangles are of varying size. They have an aspect ratio of four to five along the building's longitudinal axis by three to four along its transversal or vertical axis. In addition, the texture on these roof segments is glossy, giving it a plastics-like appearance. From below, however, it is smooth and transparent with the same tint of grey as the glass panes.
Between the inner and outer sections of this kind on each side, there is one long textured strip, on top of which rest the larger brackets across the centre of the roof. Its texture is slightly glossy, but hard to identify as resembling something: It consists of stretched rectangular fields of medium grey, arranged transversally, with very thin dark grey outlines, surrounded and interrupted by narrow areas of medium light grey which are emphasised by bump-mapping or normal-mapping which makes them appear embossed as well as specular-mapping which makes them appear glossier than the rest. Within these fields, but at some distance from its outlines, there are more nested rectangles, from outermost to innermost: medium dark grey, dark grey, medium dark grey, medium grey and slightly bumpy, medium light grey and bumpier as well as appearing to be slightly countersunk, light grey and appearing to be even more countersunk. This pattern repeats over a hundred times over the length of the southern part of the building. It is on the bottom face of these two strips as well, but not on its narrow sides.
The very middle of the roof is simply one long glass pane. It is separated from the dark sections to its side by what seems to try to resemble rectangular aluminium profiles with the long sides oriented vertically. On each side, at a height right above the glass pane, there is a stripe that glows white in the dark while not actually being a light source; this is another OpenSim limitation.Main building, domed conference hall
Beyond these parts of the building, a large geodesic dome rises up, below which is the conference hall. It is assembled from triangular glass panes in seven rows, four of which the image shows from outside, and untextured light grey cylindrical rods. The glass panes have the same tint or texture on both sides. The ones in the two bottom rows have the usual grey tint. The two rows above have the same lighter texture which most of the other panes on the building have on the outside. Unusually, this geodesic dome has no points at which five triangular panes meet. On all points which aren't on the bottom edge, six panes meet except for the very top where only four panes meet.
The dome is surrounded by a huge, disc-like object of varying thickness, but very thin on the eastern side which is revealed in the image, that is well over a hundred metres or 330 feet in diametre. It is bascially an eccentrical cone with a circular outer shape and a way off-centre hole towards it slightly slopes down. The geodesic dome mostly rests on the edge of the hole which means that the outer edge of the disc is shifted way to the east. There is also a cutout towards the south all the way to the circular hole, uncovering the roof of the southern part of the building. The western edge of the cutout deviates from being parallel to the longitudinal axis of the building by a few degrees to the right. The eastern edge of the cutout points at the centre of the circular hole.
Along the outer edge, the top surface of the disc is tapered over a distance of about seven and a half metres or 25 feet so that the outer edge is almost razor-sharp. For unknown reasons, the western edge of the cutout shows a similar sharpness by being tapered at the bottom.
The upper and lower surfaces of the disc shows variations of the usual brushed stainless steel texture. The cutout faces, however, show a dark grey texture with four darker grey grooves upon zooming in.
Right below, there is a second, similar asymmetrical cone, but smaller in diametre, even thinner and with a bigger slope. Its outer edge touches the first disc from below. Being dark coffee brown, it is the only outward part of the building that is not a shade of grey. Also, while it is half-transparent like tinted glass from above, all other surfaces are opaque and glossy, so it's possible to look through it from above, but not from below.
The inner edge of the brown cone connects to a ring around the conference hall at about roof height on the outside or the top. The ring describes about three quarters of a circle with the opening oriented towards the southern parts of the building. It has a slightly darker tint on its brushed stainless steel texture.
The ring also serves as the upper connection between the seven cylindrical pillars that surround the conference hall, four of which are hidden behind the building itself in the image. They have a diametre of about six metres or 20 feet, and they vary in length by a few metres. They all stand on the ground, and they are sloped outward from the conference hall, partly intersecting with the two cones above.Main building, interior
Since the outer surfaces of the building are mostly glass, more can be seen inside the building than just the underside of the roof. Horizontal support cables are mounted between the textured roof strips and underneath each of the seven central roof brackets. They are similar to those through the side window-panes in the front, but longer and thinner. From all of these but the southernmost one, two darker, thinner and shorter support cables lead downward. Another pair is mounted farther south against the textured roof strip on its side. These fourteen vertical cables support the upper floor on its inner sides.
The upper floor is roughly U-shaped with the opening towards the south and the main entrance. It also serves as the ceiling for the ten seminar rooms on the ground floor, five on each side, above each of which it extends inward with a semi-elliptic shape. Its bottom side, the ceiling, is light grey. It has a bump map or a normal map which not only roughens it up but also divides it into octogonal pads with rectangular spaces in-between. The vertical surfaces towards the aisle have a texture that simulates small, square, dark grey panels in four rows held in place with one rivet in each corner. The seams between the panels are black. On some surfaces, the textures have obviously been stretched horizontally, making the panels rectangular, the rivet heads elliptical and the vertical seams wider than the horizontal seams. The upper side with its bluish-grey patterned carpet texture cannot be seen in the image.
The entire inner edge of the upper floor is protected by a railing. It consists of one mostly light grey rail with a rectangular cross-section on the floor, an identical rail that is a bit over 1.20m or four feet high above the floor and a number of small, slightly darker grey vertical beams with a square cross-section which connect them. The whole railing lacks texture and gloss.
Of the seminar rooms on the right, only the separation walls can be seen through the panes on the right of the building. These have mostly tan textures but with coarse and blurry stripes of various greys at the top and bottom.
Through the right-hand pane in the front, two seminar rooms on the left are visible, the rooms A7 and, north or to the right of it, A8. The seminar rooms A7 through A9, as well as A2 through A4 on the right, have a variety of untinted glass doors each: one in the northern corner towards the central aisle, another one in the southern corner, and one in each of these two corners that leads to the neighbouring seminar room. Apart from the lack of tint or texture, the glass doors are identical to the entrance doors.
The aisle-side wall of each seminar room can be described as convex although it is not rounded. It rather consists of four segments separated by narrow vertical columns with square footprints. They are connected by a number of horizontal rods with a rectangular cross-section. One is always right under the ceiling. Three more are roughly at 65%, 50% and 33% height above the ground. For the outermost segments, this is the height of the glass doors, so underneath the rod at 33% height above the ground, they have another vertical rod to separate the doorway from a narrower piece of wall. At some 12 or 13% height above the ground, there is another rod, and the last one is on the ground, in both cases except where there's a doorway.
The space between the latter two horizontal rods is filled with a wooden panel, showing the same reddish wood grain as all wooden-textured furniture in the building and on the sim. The other spaces have untinted glass panes in them. To illustrate the dimensions: The wooden panels are about 1.80 metres or six feet high, so for realistically-sized avatars, the only way to look into or out of the seminar rooms is through the doors.
On the vertical rod next to each aisle door, a sign with the room number is installed. The sign itself is simple, flat and rectangular. It is entirely black except for the white room number written on it in a regular Helvetica sans-serif typeface. It is attached through a glossy white cuboid that serves as a very simple mounting bracket.
Furthermore, there is an easel with a blank whiteboard standing next to each aisle door. It is a simple construction from cuboids, cylinders, a tetrahedron at the top and small spheres for feet and joints. Apart from the whiteboard which is mostly white and untextured except for the plywood texture on the back, the whole thing shows a brushed stainless steel texture with some gloss added.
Inside each seminar room, visible through the window-pane behind the easels, there is a whiteboard which is a much more elaborate construction. Each room has two of these. There is also a dark grey HDTV screen attached to the middle one of the three columns with a wall-mount swivel arm. A bit of furniture is barely visible through the closed glass door: Each room has seven quite long tables with elliptical ends, one long light grey foot on two legs with a wooden plank between them and a dark grey surface surrounded by wood grain. Six of these tables are for seminar participants with two chairs each. These chairs consist of two wooden parts in the shape of a stretched U with rounded sides and dark grey padding, two small metal rods connecting them and four conical metal legs. The seventh table is for the teacher whose chair is identical to those for the participants, only that it has an extra headrest in the same style as the rest of the chair plus a pair of elliptical armrests.Main building, further interior objects
The large object that appears to be standing in front of seminar room A7 is a teleporter that was specifically designed for the Universal Campus due to its size. It is actually standing in the middle of the aisle, the control panel turned southward towards the main entrance. It is mainly a rectangular console on a massive angled stand. The frame around the control panel included, the console itself is about one and a half metres or five feet high and about three metres or ten feet wide. Above the control panel, there are two tiny spherical light sources on small trapezoid arms. They actually emit light to illuminate the control panel of the teleporter.
The control panel is labelled in a typeface not entirely dissimilar from Futura. On its left, there is a top-down view of the entire Universal Campus with the north oriented to the left. It shows the various buildings and other places. Ten circular markers are placed on the map, all with a glossy grey frame and a black number from one to ten. All markers but one are yellow; one is always glow-in-the-dark green. In this case, it is marker number 6 to the right of a rectangular building with a circular extension in its bottom corner. Below the aerial view, there is another, slightly bigger yellow circular marker, but with a red frame surrounded by a glowing red aura while not glowing itself. It has the number 2. Next to it is a label with an arrow-like point to the left that reads, black on white, "This is currrent (sic) location". It is up to the user, however, to find the marker with the same number on the map.
On the right of the control panel, there is a touchable list of destinations with their numbers in markers of the same size as the glowing red one in the bottom left, but with the usual shiny grey frame. The labels with the names of the destinations are identical in style with the current location marker:- 1: Main Landing Zone
- 2: Main Building Lobby
- 3: Main Conference Hall
- 4: Recreation and Conference Center
- 5: Observation Deck and Sea Lab
- 6: Science Lab and Conference Room
- 7: Campfire and Beach Zone
- 8: The Light House
- 9: Engineering Conference Center
- 10: Helicopter Landing Pad
The background of the control panel is glossy medium grey. The rest of the structure is glossy with a gunmetal-like dark grey texture.
There are also quite a few potted plants inside the building. On the sides of the teleport panel, there are two identical açaí palms in square terracotta pots with wide rims. Like the other potted plants, these mostly dark green plants with long pointy leaves are kept at an indoor-compatible size, namely about three and a half metres or eleven and a half feet tall. Also, like the other potted plants, they are made of only four flat and surfaces with partially transparent pictures of the plant on them, arranged in angles of 45 degrees to one another.
Through the main entrance, a slightly taller Jacaranda tree with dark lilac flowers can be seen. It is planted in a bulgy terracotta pot with a smaller rim than the square ones which is supposed to be round. In order to reduce the impact on graphics performance, however, the pot is actually hexagonal. There is also one of the two angled flights of wooden stairs leading to the upper floor and, outside the building again, a small but wide maple tree with brown autumn leaves. A look through the side entrance to the right shows an even slightly taller Bougainvillea with purple flowers. Above these doors, the underside of the upper half of the other flight of stairs is shown. The steps are not covered from below, and the spaces between them are open.
Some of the unusual dividers on the upper floor can be seen through the windows, too. The main element is a half-arch of a bit over 90 degrees from the floor to the tilted structures on the side of the building. Its core is a thin, roughly 1.80 metres or six feet wide circle segment with an inner radius of about four and a half metres or fifteen feet and a dark grey texture which resembles some kind of rock. It is lined on both the inside and the outside with arches with a brushed stainless steel texture. The inner arch is about 45 centimetres or one and a half feet wide, the outer arch is slightly narrower, and both are significantly thicker than the core arch. From both ends of the arch, narrow brushed stainless steel bars extend to the centre of the arch where they meet. They are thinner than the stainless steel arches, but thicker than the core arch. Finally, the area between the two bars and the inner arch is filled with a grey tinted glass pane.
On each side of the upper floor, there are six such dividers. The southernmost ones are installed right above and north of the stairs and attached directly to the vertical structures on the sides. Between the other ten and the side structures, there are horizontal extensions in much the same style. The arches themselves are extended to the sides by two rhomboids in the same style, a longer one of some four and a half metres or fifteen feet with four cylindrical connectors of roughly 60 centimetres or two feet of diametre on its corners underneath which avatars can pass and a shorter one of some three metres or ten feet which connects to the vertical structures. The latter one also has a third stainless-steel-framed rhomboid all the way down to the floor underneath itself which is filled with a grey tinted glass pane.Avatars in OpenSim and the avatar vendor rooms
On the eastern side of the building, barely visible through the large glass surfaces, there is an area that offers complete classic avatars as well as classic avatar accessories.
Unlike in most other 3-D virtual worlds, avatars in OpenSim-based worlds, just like Second Life, are not monolithic. They are highly modular, they are highly configurable, and they have evolved over the years. The most basic classic avatar consists of five components that always have to be there. The only one that cannot be replaced is the system body which is automatically generated by the viewer application. OpenSim has the same system body as Second Life. The four components that can be replaced but never removed are the shape which greatly defines the look of the avatar with 88 parametres, the skin which is a set of three textures for the head and which can be tinted with parametres, the upper body and the lower body, the hair which defines the shape and length of the classic hairdo growing out of the head as well as its texture, and the eyes which are basically only a texture again.
Classic clothes are also referred to as layer clothes because they are just that, layers of textures painted onto the system body. Their order is defined by nine categories, in each of which a classic avatar can only wear one kind of clothing. A few of these have an influence on the shape of the avatar: The shirt and the jacket can widen the arms to simulate sleeves. Likewise, the pants can widen the legs downward to simulate pants legs and even bell-bottoms. And the shoes can both raise the avatar in general and grow a sort of spike out of the heel, lift the whole avatar except for the toe area because the system body does not actually have toes and thus generate high heels. A separate layer is for skirts; it textures a part of the system body which is usually fully transparent and thus invisible. In 2011, four tattoo layers were added between the skin and the two underwear layers.
It is also possible to attach objects to an avatar at 30 different points, and it has been for as long as OpenSim was around. This was quickly used not only for things carried by the avatar, jewellery or other accessories, but also for more realistic hair, for better-looking shoes in comparison with the painted-on classic shoes, for various ways of having new shapes of skirts, for collars, for pants legs et cetera.
Originally, these attachments were made from primitive objects or "prims" in short: basic shapes like cubes, spheres, cones and the like which can be generated and manipulated a lot in-world without needing external software except for making textures. Since building complex objects from them is somewhere between highly complicated and impossible, it was made possible to import sculptmaps as exported from 3-D software like Blender and use them to create more complex prims. All kinds of prims can be made flexible with a little bit of physics which is used for hair and skirts as well as for flags, but the physics don't have collision detection.
The next step was the introduction of mesh. Mesh allows the user to directly import 3-D files in the Collada format, texture mapping included, without having to resort to sculptmaps. Mesh came to Second Life in 2011, as did experimental mesh support in OpenSim. The first stable release of OpenSim with mesh support came out in 2014. On avatars, mesh was originally used for hair, shoes, jewellery and other accessories. It really started a revolution with the introduction of rigged mesh which automatically latches itself to multiple points on the avatar. This made it possible not only to create clothes that move with the avatar's movement, but even to create all-new, better-looking bodies and heads. Nowadays, most avatars consist entirely of mesh.
The newest technological advancement for avatars was Bakes-on-Mesh which came up from 2019 on. This allows classic layer textures to be put onto worn mesh, especially mesh bodies, and in greater numbers than on the system body. The main purpose was to get away from skin appliers, scripted devices that have to be put on and used to put a different skin onto the mesh body. Also, the remaining onion layers around mesh bodies that were necessary for tattoos, but made mesh bodies unnecessarily complex, had become obsolete because Bakes-on-Mesh allows for wearing classic layer tattoos on mesh bodies. But it also makes wearing layer clothes possible again which can make sense in the case of skin-tight clothes.
The latest version of the Universal Campus from 2012 already uses mesh for a few things, mostly rocks. The main building itself and everything else shown in this image is still put together from prims and sculpties.
As for the contents in the avatar vendor area, none of it is newer than from 2011. Everything is still from times before mesh. The complete avatars come with layer clothes, but no attachments. They, like the skins and hair attachments, were created by Ina Centaur under the OS Avatars label around the same time as the Universal Campus. Many of the other items, the majority of which were made by Nebadon Izumi himself, are even older. All of them are offered under free licenses, however. In order to announce their availability, three of the divider extensions have signs mounted above them which can be made out in the picture. They are oval, black with a stainless steel frame, and they have the glowing, but not light-emitting white word "AVATARS" written on them in all-caps and in a typeface which looks to me like a regular Linux Libertine. The writing even uses proper kerning between the "A"s, the "V" and the "T".
In the first two of the three avatar vendor rooms, the rear sides of four stainless steel vendors each, lined up on the outer side of the room along the longitudinal axis of the building, and especially the signs above them on thin cylindrical stands can be made out, the only ones that aren't hidden behind something. The first four vendors offer one female skin each, the other four offer one male skin each. The displays on these eight vendors are oriented away from the camera.Main building, upper floor, western side
The first two rooms on the western side of the building are conference areas, the other two are empty. Not much of them is visible except for three of the dividers, a semi-circular couch with a wooden frame and ten seats, a small banana tree in a hexagonal white concrete pot, another whiteboard and two HDTV screens in stainless steel casings on floor stands. One of them shows the monochrome test pattern which is actually on all of them, and which includes several screen-testing elements as well as a large medium grey circle in the middle with a white, a black and a thinner medium grey border around it and the digit 2 in black and in a heavy, condensed sans-serif typeface and a white square grid on medium grey ground with the capital letter "C" in two combined fields at the bottom.The main landing area outside the main entrance
In front of the main entrance, there is the main landing area of the sim, a part of which is still within the image towards its bottom left. It is circular in shape with a diametre of about 40 metres or 130 feet. The centre of this circle is about 35 metres or 115 feet south from the main entrance of the main building. It shows the same light grey texture reminiscent of concrete that is used on most paths on the island. The texture is not shrunk to a realistic size, so it appears coarse and having a low resolution.
The outer edges of nearly all concrete surfaces on the island are lined with low walls of varying height and width. They all have the same concrete texture, but at a smaller scale and without the light grey tint so it appears almost white. The main landing area actually has two rows of walls around it. The inner walls are a bit over 1.20 metres or four feet high and about 1.50 metres or five feet wide. The outer walls at a distance of roughly three metres or ten feet are about 1.65 metres or five and a half feet high and about 1.80 metres or six feet wide.
At the ends, the gaps are closed with walls a bit lower than the inner walls and roughly 90 centimetres or three feet wide. The spaces between the walls are filled with dirt. They form planters with identical shrubs in them; the short planters in the northwest and the northeast visible in the image have five plants each. These shrubs are not named in-world. They appear to be of tropical origin, and they have flowers with petals that are mostly white, yellow towards the centre and magenta along their edges. Like all trees on this sim, the shrubs are made of simple, textured sculpty prims for the trunks and branches, and the twigs, leaves and flowers are semi-transparent textures on intersecting two-dimensional surfaces, a popular way to make plants in Second Life and OpenSim before the arrival of mesh. The textures used for all plants on this sim are photo-realistic as far as the maximum possible or feasible texture resolution allows.
On the left-hand edge of the image, in front of the northwestern planter, there is another teleporter which is almost identical to the one that can be seen inside the building. There are two differences, however: Its current location is number 1, and the selected location in the image is number 4. Another one of the unidentified shrubs appears between the teleporter and the left-hand edge of the image, partly hidden behind the teleporter.
Another single-target teleporter is standing on its right. It is a custom addition to this particular instance of the Universal Campus. It was built by Neovo Geesink, formerly of Metropolis Metaversum fame and now involved in OSgrid, in his trademark style. This style includes a particular brushed stainless steel texture which, unlike those used by Nebadon Izumi, emulates the surface having been brushed circularly. The stand under the panel is a simple cone, flattened to an extremely elliptical footprint. The panel is as high as that of the original teleporter, but only slightly wider as it is high. The frame around the image in the centre is slightly narrower than that on the original teleporter.
The image itself shows an aerial view of its single hard-coded target, a sim named TeleHub, built and operated by Neovo. It is nothing more than a single region, a square of 256 by 256 metres or 280 by 280 yards, surrounded by blue ocean and a wall made of beige bricks which is about ten metres or 33 feet high. The ground is tan and divided into four triangular areas by two diagonal lines. In each area, there are 141 single-target teleporters similar to this one, but with a higher panel, in rows of eleven. A few show previews of their targets, but most are unused with black screens. In the very centre, there is a small circular platform on which avatars land after teleporting in. It has a beige top surface with a hexagonal tile pattern and a woodgrain texture on the sloped surface all around. Four arches with textures resembling rough taupe stones and black signs on them lead to one triangular area each. The position of the camera is off one of the corners and pointing diagonally downward to one of the yellow division lines.
Yet another one of the identical unidentified shrubs is behind this teleporter and shown to its right.
In the background, the low walls on the sides of a path appear between the shrub behind the teleporter to TeleHub and the main building. The path is straight and leads northward along the western side of the building.
Even farther in the background, behind the two teleporters, there is some vegetation. From left to right, it starts with an unidentified tree of about eight metres or 26 feet of height. It has reddish-brown bark, medium green leaves in pairs and what could be taken for pale yellow-ish fruit. Below it, there is a large bushel of khaki-coloured grass that stands about two and a half metres or more than eight feet high. The tree intersects with another maple tree with brown and tan leaves that is about ten metres or 33 feet tall with more massive greyish trunk and branches. Immediately to the right again and partly intersecting with the maple tree, there is an even unidentified tree, about 17 metres or 56 feet tall, with grey bark on a fairly slim trunk and a messy crown of dark, brownish-green leaves which are so small that the texture makes it impossible to tell individual leaves. This tree is partly hidden behind the building already. It has another two bushels of the same tall grass underneath it which, due to the point of view, only seem to stand immediately to the right of the trunk.
Behind this vegetation, right below the crowns of the trees, the horizon separates the sky from the sea. What little sea the image shows is medium light blue. The sky right above the horizon is very light cyan, and around half the height of the image, it gradually changes into a tone of blue similar to that of the sea. From the top left corner of the image downward and to the right, more than half of the sky is covered by a cirrus-like thin cloud with a small hole above the roof end of the main building. On the right, the cloud dissolves into smaller clouds above the geodesic dome and the surrounding thin cones.
Further additions to the Universal Campus include five easels of the same type as seen inside, but with custom writing in it. They are lined up next to each other in front of the northeastern planter, starting right next to the wide path towards the main entrance. The writing on all five easels is done in black and in an unidentified humanist sans-serif typeface which appears condensed due to the texture having been stretched vertically, thus losing its original aspect ratio. Only the writing on the first of the five is visible from the camera's point of view, though. It reads in three lines, "To download a free copy of the Universal Campus Var Region." This is followed by a blank line and one more line that reads, "Click here for notecard". Upon clicking the easel, it gives the avatar a notecard with an Amazon cloud storage URL following an explanation that it contains the Universal Campus as a varregion archive and followed by a full copy of the Creative Commons Attribution-ShareAlike 3.0 Unported license.Around the main landing area and the main building
Due to limitations in construction with prims, the ground of the main landing area is slightly higher than that of the three paths which lead away from it. The widest one of these paths is about one third of the diametre of the landing area in average width that leads to the main entrance. It is trapezoid in shape, and its sides line up with the centre of the main landing area. Two more trapezoid paths, also widening with the distance from the centre of the main landing area but only half as wide as the first one, lead westward and eastward from an imaginary point a little north from the centre of the main landing area. The western one is not visible in the image except for on the aerial view on the teleporter. The eastern one makes up most of the foreground along the bottom edge of the image.
On the outer corner of the northeastern planter on the eastward path, there is a lamp post standing on an almost white, cylindrical concrete block of about 1.80 metres or six feet of both height and diametre. From the camera perspective, it is in front of the main building and near the westernmost front column. It appears to be almost parallel with the column, but the lamp post is vertical while the column is tilted roughly northwestward.
The lamp post itself is about seven and a half metres or 25 feet high and very slightly conical with an elaborately-shaped round foot. At the top, it describes a sharp 90-degree angle towards the path, rounded on the outside, forming a corner on the inside. It then extends conically towards the path by another roughly 1.50 metres or five feet before ending in a small sphere. The bottom of the sphere is flattened, and the actual light source is installed on this flat surface. It is round, glowing and emitting slightly yellowish light. The rest of the lamp post is light grey or white and highly glossy.
The walls lining the paths to the sides of the main landing area rise no more than about 30 centimetres or one foot above the paths themselves while being twice as wide.
In the bottom right corner of the image, the path to the east intersects with a circular path around the main landing area that begins and ends near the southern side entrances of the main building. Its centre is some ten metres or 33 feet north of that of the main landing area, and its outer diametre is about 100 metres or 330 feet. Due to the aforementioned limitations, it is a little bit higher than the trapezoid spoke path at the bottom. Its walls rise about 60 centimetres or two feet above itself and about 80 centimetres or a little less than three feet above the path to the east, and they are about 2.40 metres or eight feet wide.
Between the main building, the path to the main building, the planter northeast of the main landing area, the path in the very foreground and the circular path on the right, a large patch of sim ground is still unused. It shows a green texture with some slightly darker or minimally more yellow-ish areas. The texture has a fairly low resolution. It is coarse and blurry, and at the same time, even this patch of ground reveals the repeating texture tiles. The ground itself is rather bumpy as though it has been manually treated to be like this. All the same applies to the corresponding area to the west of the path to the main building of which fairly little of it is revealed in the image.
Right before its end near the right-hand entrance, the circular pathway first branches diagonally to the right to another path three small steps down. On both corners of this junction, there are fairly cylindrical platforms inserted into the walls. Both have a diametre of about 3.60 metres or twelve feet and a height of about 1.20 metres or four feet above the branched-off path or a bit under 90 centimetres or three feet above the circular path. The walls along the branched-off path are fairly small, only some 45 centimetres or one and a half feet high and about 60 centimetres or two feet wide.
After about 15 metres or 50 feet of length, the branched-off path continues down a set of stairs. Due to how low the camera position is, the stairs itself are hidden from the camera, but the block and guide rails along the far side of the stairs, the northwestern side, are not. The block is the same shade of grey as the surfaces of the paths. It serves as a primary guard on the sides of the stairs. It is about 90 centimetres or three feet wide. It ascends from the usual wall on the side of the path which it overlaps by the same amount on both sides, and it does so at an angle of roughly 25 degrees. It reaches its peak right above where the stairs start at a height of about two metres or six and a half feet above the path. From there, it descends at an angle of about 35 degrees which, curiously, is a little less steep than the stairs themselves.
The guide rails are dark blue flat slabs, about 30 centimetres or one foot wide and about seven and a half centimetres or three inches thick. They come in stacks of four, arranged above one another with round about one and a half times the thickness of one rail worth of space between them. They are parallel to the descending surface of the block. The lowest one has a distance to the block of circa 30 centimetres or one foot. Each set of rails is held together and in place by two shiny, textureless blocks of 120 centimetres or four feet of height and a square top surface which, however, slightly narrows downward to the large concrete block below when looked at from parallel to the rails. Upstairs, the four rails extend beyond the stairs by roughly seven and a half metres or 25 feet. Their upper ends are lined up almost exactly vertically. The whole arrangement is slightly shifted out of centre on top of the block, away from the stairs. A second, identical set of rails is installed further downstairs for no apparent reason other than looks. Such rails are actually on both sides of the stairs, but the image only shows them on one side.
Shortly before the stairs, one lamp post like the one is installed on the wall on each side of the path towards the stairs, complete with the cylindrical block underneath. In the image, the lamp post on the right with the exception of the foot and the cylindrical concrete block underneath is almost entirely obscured by two trees. One is identical to the tree with the chaotic brownish-green leaves to the left that is partly hidden behind the main building. It has another bushel of grass around where its roots were if it had any. Another much larger one is standing to its right, its trunk and most of its crown outside the image already. It is unidentified, too, but it shows some signs of being an acacia tree. Its bark is mostly greyish-brown with some rusty red patches on it. Its leaves are long, pointy and various tones of pale light to not-quite-as-pale medium green.
Immediately after the path towards the stairs branches off, the circular path leads into a straight path that runs parallel to the eastern side of the main building. The walls on its side have the same size as those on the sides of the circular path. On both of its ends, short, wide platforms lead to the side entrances of the building, connected to the path via two small steps each. These platforms do not have walls on their sides. At the far end, the straight path leads into another circular path, this time around the conference hall.
Some more vegetation is to the right of the path along the eastern side of the main building, all standing on sim ground. Right behind the unobstructed lamp post next to the path that leads downstairs, there is a fairly large unidentified tree that almost reaches the edge of the roof of the building. Its crown has rather dense foliage in a quite saturated medium green tone. The bark texture on its thin trunk and branches is mostly taupe with bits of copper brown and fairly smooth except for long dark rifts along the trunk and the branches as well as a few dark holes.
Behind the block and the dark blue rails along the stairs by the right-hand edge of the image, a gigantic version of the unidentified shrubs in the planters is located on the edge of the downhill slope which necessitates the stairs. It is about five and a half metres or eighteen feet high, and its flowers are up to 60 centimetres or two feet in diametre.
Farther in the background, also behind the lamp post and a little behind the shrubs, there is a group of seven pine trees of varying size. They have semi-transparent, conical surfaces around their trunks with textures which give the impression of very dark green needles. There are also bushels of tall grass on the ground between the pines.
Lastly, one of the four main light sources is the simulated Sun. Since it is shortly before noon, it is standing almost vertically above the sim and shining what is technically grey light down on it. The sim uses OpenSim's default daycycle in which the Sun always goes through the zenith. The same applies to all converted older daycycles originally available in OpenSim. The Sun is also the only light source on the sim whose light casts shadows. The other four main light sources are three types of ambient light in darker taupe, bluish slate grey and Prussian blue. These three neither have a specified direction of light, nor do they produce any shadows.
#Long #LongPost #CWLong #CWLongPost #AltText #ImageDescription #VirtualPhotography #VirtualArchitecture #Sim #Varsim #OAR #NebadonIzumi #UniversalCampus #OSgrid #Metaverse #VirtualWorlds #OpenSim #OpenSimulator -
CW: OpenSim's famous Universal Campus and a picture of its main building; CW: long (62,514 characters, including 1,747 characters of actual post text and 60,553 characters of image description)
It's one of the most well-known OARs, and I guess every OpenSim user with a little more experience has come across at least one instance of it: the Universal Campus.
It was built by Michael Emory Cerquoni, an early OpenSimulator developer first known in-world as Nebadon Izumi who released his creations under the Oni Kenkon Creations brand, and who is also the builder of Wright Plaza, OSgrid's famous old freebie sim. The project was a collaboration with the now-defunct Center for Computer Games and Virtual Worlds at the University of California in Irvine, and it was designed and intended to act as an actual virtual campus.
Due to the size of the project as a whole and the main building in particular, Nebadon built the Universal Campus as a mega-region, an OpenSim hack from around 2009 that made it possible to stretch a build across multiple standard regions, in this case two by two. So the Universal Campus is not one OAR, it's four, one for each region.
The first publicly available version of the Universal Campus was released in 2011, so as futuristic as it looks, it is already roughly 13 years old.
The main building shown here is outright gargantuan. It is still one of the biggest buildings around the Hypergrid. At a length from north to south of over 200 metres, it actually had to be built across a region border. Today, a decade after the introduction of varsims, this is no longer a problem.
Although it's possible to walk from everywhere on the island to everywhere else, a network of custom-made teleporters with ten destinations reduces travel time greatly. One destination is right in front of the main building, and two more are inside, the only two in-door destinations, such is the immense size of the building.Image description
The picture in this post is a digital rendering from inside a 3-D virtual world based on OpenSimulator, generated in a regular client for this kind of virtual worlds, also known as a viewer, using shaders and generated shadows, but without ray-tracing. It shows the main building of the Universal Campus as mentioned in this post.What OpenSimulator is
OpenSimulator, OpenSim in short, is a free, open-source, cross-platform server-side re-implementation of the technology of Second Life. The latter is a commercial 3-D virtual world created by Philip Rosedale, also known as Philip Linden, of Linden Lab and launched in 2003. It is a so-called "pancake" virtual world which is accessed through desktop or laptop computers using standard 2-D screens rather than virtual reality headsets. Second Life had its heyday in 2007 and 2008. It is often believed to have shut down in late 2008 or early 2009 when the constant stream of news about it in mainstream media broke away, but in fact, it celebrated its 20th birthday in 2023, and it is still evolving.
OpenSimulator was first published in January, 2007. It was made possible when, in 2006, Linden Lab open-sourced the official Second Life viewer, which is how client applications for Second Life and OpenSim are called, thus laying its viewer API open. This led to the development of third-party viewers. After the development of third-party viewers had started, OpenSim was developed against them and the Second Life viewer API. It does not have its own official viewer, but most of the popular third-party Second Life viewers are compatible with OpenSim as well.
Unlike Second Life, OpenSim is not one monolithic, centralised world. It is rather a server application for worlds or "grids" like Second Life which anyone could run on either rented Web space or at home, given a sufficiently powerful computer and a sufficiently fast and reliable land-line Internet connection. This makes OpenSim as decentralised as the Fediverse. The introduction of the Hypergrid in 2008 made it possible for avatars registered on one OpenSim grid to travel to most other OpenSim grids.What grids, regions and sims are
Second Life and the OpenSim-based worlds are called "grids" because they are flat worlds divided into square areas of 256 by 256 metres each which is roughly 280 by 280 yards. These areas are called "regions". Regions can be empty, in which case they're shown as ocean, but they can't be entered. In order for any actual content to exist in a region and for avatars to be able to enter regions, a simulator, sim in short, has to run in a region.
In Second Life, a sim is always one region. OpenSim had a hack from 2009 on that was called "mega regions". It exploited a feature in third-party Second Life viewers that was not used by Second Life itself, and that made it possible to extend a sim across multiple regions in a square arrangement. The Universal Campus itself is built as a mega region of two by two standard regions. Since this hack was buggy and limited, varregions, now known as varsims, were first developed for the OpenSim fork Aurora-Sim. Eventually, they were officially introduced into OpenSim in 2014. They theoretically allow for a sim to stretch across as many as 32 by 32 standard regions with no borders in-between.
Unlike Second Life, OpenSim also has the option to save entire sims into archives and load them from archives, so-called OARs which is short for OpenSimulator Archives. Many of these are available online. Mega regions are saved in one OAR for each region, and as the Universal Campus was designed as a mega region and pre-dates varsims, it is divided into four individual OARs. A varsim, on the other hand, can be entirely saved in and loaded from one OAR.Where the pictures were made
Particularly, the picture was created at UniCampus, an instance of the Universal Campus in OSgrid (https://osgrid.org) owned by one of the grid admins. Launched in July, 2007, OSgrid was the first public OpenSim grid and intended as a testbed for OpenSim's development. Next to Wolf Territories Grid from 2021 (https://wolfterritoriesgrid.com/, https://www.wolf-grid.com/), it is one of the two biggest OpenSim grids; each one of these two grids has more landmass than Second Life.
OSgrid also adopted the early OpenSimulator slogan "The Open Source Metaverse" immediately after its launch. It still uses that slogan, and the term "metaverse" has been commonly used by the OpenSimulator community ever since.Camera position and general setting
The picture was taken from a point of view higher than the eyes of an avatar, ca. three metres or ten feet above the ground. The position of the camera is near the inner edge of a wide path that describes an eccentric path of three quarters of a circle around the likewise circular main landing zone as well as just a bit south of the southern edge of a wide, straight path that least eastward fromo the main landing zone. The direction of view is almost northward and slightly to the west. Also, the camera is tilted upward by a few degrees due to its low position and the height of the building.
All dimensions in this description are estimated.Main building, southern end and main entrance
The main building of the Universal Campus is the centre-piece of the image. It is a gigantic building that towers high above all surrounding trees, although it is not actually a tower, nor does it have one. It is rather a lengthy building that stretches from north to south. In the image, the middle of its front is at one third of the width of the image from the left-hand edge, reaching to the left as far as one sixth of the width of the image from the left-hand edge. The conference hall at the far end is at one third of the width of the image from the right-hand edge with parts of the building almost reaching the edge. Its supporting structure mostly shows textures with highlights included which suggest that it was made of stainless steel. Otherwise, glass with a horizontal gradient between lighter grey and darker grey on the outside and a plain darker grey tint on the inside is the most commonly used material. The building does not have any exterior walls.
The southern entrance, the main entrance to the building with the main landing area right outside the doors, is surrounded and marked by a tall geometrical structure which is rather complex in spite of only having straight edges. It resembles a spaceship from an early video game as roughly as it resembles the letter A or an upside-down V. It is almost perfectly symmetrical around both vertical planes. Its medium grey surfaces are untextured otherwise and don't mimic any particular material.
On each far side is a vertical "column" with a footprint with the shape of a trapeze, very roughly four metres or thirteen feet wide and four metres or thirteen feet thick. The short side of the trapeze, measuring only a bit over three and a half metres or twelve feet, is on the outside. These columns rise up some nine metres or 30 feet on the inside. The top slopes downward towards the outsides, so the columns are less than eight or about a half metres or 27 feet high on the outside.
The centre and top piece of the structure, right above the doors and roughly seven and a half metres or 25 feet above the ground, is roughly ten metres or 33 feet tall and roughly four and a half metres or fifteen feet wide. It has a rectangular cross-section when looked at from inside the building or from the main landing area, but a heptagonal cross-section when looked at from the sides. Its seven visible faces are all rectangular. At the bottom, it is roughly five metres or roughly sixteen and a half feet thick with only one surface. The top is roughly five metres or roughly sixteen and a half feet thick, too, but with a pair of surfaces of the same size at an angle of under five degrees, forming a slight ridge at the top.
The inner and outer sides of this centre-piece are each made up from an upper surface which is a square and sloped outward from the top and a lower surface which is a rectangle and sloped outward from the bottom. They meet at an angle of roughly 20 degrees.
On each side, two irregularly-shaped structures of seven surfaces each connect the seven edges of the sides of the centre piece with the four edges of the inner sides of the columns. Six of these surfaces are more or less slightly twisted because they connect edges at different angles with each other. The only planar surface is the one that connects the bottom edges which are all horizontal.
Two pairs of double glass doors make up the actual main entrance. Each door blade is about two and a half metres or eight feet wide and about five and a half metres or eighteen feet high. The glass has the same horizontal gradient texture both on the inside and on the outside so that all door blades can be identical. The only difference between the door blades is whether the door script opens them clockwise or counter-clockwise. The texture is arranged in such a way that there are narrow lighter areas along both vertical edges when the hinge is on the left, and there is a wide lighter area on the lock side and a narrow lighter area on the hinge side when the hinge is on the right. The narrow sides of the door blades are opaque when looked at from the outside but, due to OpenSim's limitations, not when looked at from the inside. The doors open inward by 90 degrees, and they do so when they're clicked, or when an avatar approaches them. They can be closed manually by clicking them again, otherwise they close automatically after ten seconds.
Each door blade has one simple door handle on the inside and the outside tinted the same generic grey as the large structure surrounding the doors. The handles are only a few centimetres wide. The grips have a square cross-section. Above and below, there are thicker parts which connect the grips to the doors while being flush with them on the sides and facing away from the door blades. Altogether, each handle is half a metre or one and five eighths feet long. The top of each handle is about one and three quarters metres or five and three quarters inches above the ground.
Between the two door pairs and on their sides, there are altogether three columns with a rectangular footprint of roughly 90 centimetres or three feet width by 30 centimetres or one foot thickness, each roughly seven and a quarter metres or 24 feet tall. Above each pair of doors, they are connected with a horizontal beam that fits between the top surfaces of the columns and the top edges of the doors while being half as thick as the columns.
The spaces between the large structure around the entrance, the columns and the horizontal bars are filled with glass panes.
The whole door ensemble does not sit exactly at half the thickness of the large structure. It is shifted outward by about half a metre or one and five eighth feet.
A structure shaped like an almost flat pyramid, but with a flattened top, is mounted upside-down against the bottom surface of the centre of the large structure around the main entrance. The glass pane above the doors passes right through its middle. A square light is installed on the flattened top which is actually the bottom now, illuminating the entrance area when it is dark. Otherwise, this flat structure has the usual brushed stainless steel texture which appears rather dark here.
On each side of the entrance area, a cylindrical column with a diametre of roughly four metres or thirteen feet rises some 20 metres or 66 feet upward. Each column is slightly tilted inward along the longitudinal axis of the building and outward to the sides. On each side, farther outside, there is another, even taller column, easily over 30 metres or 100 feet tall. These columns are tilted along the longitudinal axis of the building at the same angle, but outward to the sides at a smaller angle. They make up the southern corners of the main building. All four columns are textured to resemble brushed stainless steel.
A semi-cylindrical structure connects the complex main entrance structure through the inner columns with the outer columns on the ground. Its diametre is roughly 2.40 metres or eight feet. It uses the usual brushed stainless steel texture, but the brushing direction is radial, and the texture is stretched along the axis of the cylinder so much that its nature is anything but obvious.
Between the columns and the main entrance structure, there are three more glass panes. The panes between the inner and outer columns are mounted halfway into the building whereas the one around the main entrance structure is almost all the way inside the building. Three horizontal stainless steel rods of about 30 centimetres or one foot lead through each pane. They are roughly evenly spaced, but closer to the upper and lower edges of the glass panes than to each other. The rods that pass through the panes between the columns grow to a diametre of roughly 45 centimetres or one and a half feet towards their ends before ending in short cylinders with diametres of about 1.80 metres or six feet.
On top of the inner columns and partly intersecting with the outer columns, a massive, upright, flat structure with stainless steel textures serves as the southern end of the roof. It has to be about 50 metres or 160 feet wide, about 15 metres or 50 feet tall and about 3.60 metres or 12 feet thick. The front and rear surfaces are slightly countersunk with margins of slightly varying thickness all around except for the bottom. The top edge has a fairly short horizontal section of ten metres or 33 feet in the middle from which it curves downward in sections of ellipses. The bottom edge is almost horizontal and leads to corners from which short 45-degree slopes lead upward. The slopes from the bottom and the ellipses from the top meet in rounded corners. Unlike the columns below, this roof end is mounted vertically.Main building, Universal Campus logo
The roof end also carries the logo of the Universal Campus, sitting at half the height of the outer countersunk area of the roof end and ever so slightly to the left of its middle. Its base is a circular, conical structure with a diametre of ten metres or 33 feet, the sloped edge being black. The actual logo is part of the texture on the front surface of the cone. It has a diametre of about seven metres or 23 feet.
The inner 80% of its diametre are filled with a gradient from medium dark grey at the top to medium light grey at the bottom. Three shaded three-dimensional primitive shapes are displayed in this area, a cube with one corner each pointed to the top and the bottom at the top, a sphere in the bottom left, a tetrahedron in the bottom right. At the bottom of this area, "Patefacio radix" is written in medium dark grey letters, in a wide sans-serif typeface and in what is likely to be small caps. It is Latin for "open source". Below, the Roman number MMXI, 2011, marks the year of the first public release of the Universal Campus.
A thin dark grey circle separates this area from the outer 20% which are light grey. Re-using the same typeface as in the inner part, and in dark grey with blue shading, "Universal" is written at the top and "Campus" at the bottom, both capitalised with otherwise small caps and following the circular shape of the logo.
29 identical black circular spots, very roughly evenly spaced, protrude from underneath the logo all around it by a bit more than their own diametre. They separate the logo from the surrounding white area which, in turn, is surrounded by the aforementioned black conical slope.
The Universal Campus logo is illuminated from below. The light source sits in a slot in a cylinder on top of the main entrance structure, about two metres or six and a half feet long and a diametre of about 30 centimetres or one foot. This cylinder has spherical end pieces, and the whole arrangement has a simple, glossy, medium grey surface.Main building, side
Each side of the building, all the way to the conference hall at the northern end, is tilted outward at the same angle as the corner columns around the front and much simpler in design. Starting north of the side entrances right behind the front, a semi-cylindrical structure on the ground, similar to those at the front, extends northward towards the conference hall, only interrupted by another set of side entrances shortly before the conference hall. Farther up, there is another cylindrical structure of the same diametre and with the same texture on each side, but with a cutout on the upper inner side of a bit over 90 degrees to help carry the upper floor on the right, actually semi-cylindrical on the left and stretching all the way between the columns on both sides. Even farther up, right below the roof, another cylindrical structure is installed, but cut out on the inside by 60 degrees upward and 75 degrees downward.
Eight cylindrical beams with a diametre of roughly 90 centimetres or three feet and the usual stainless steel texture serve as the near-vertical supports. Nearly evenly spaced, except for the first being closer to the second, and running from the bottom to the top, they divide each side into eight full-sized sections and one small section right in front of the conference hall.
As mentioned above, the building has four sets of side entrances. One on each side is right behind the front behind the colour and the first support beam, one on each side is just south of the conference hall between the seventh and eighth support beams. The doors are identical to the ones that make up the main entrance, but each side entrance has three pairs of doors instead of two.
Between the three double doors, there is a filler column with a rectangular vertical cross-section, a width of about 45 centimetres or one and a half feet and a thickness at ground level that is slightly less than the width. While the inside surface is vertical, the outside surface is sloped in parallel to the outward tilt of the side of the building. Similar but wider columns are installed on the sides of the doors, being the closest that the building has to outer walls. Another structure with a rhomboid north-south cross-section sits on top of each set of four pillars, connecting them and carrying a glass pane on top. Its inside surface is sloped outside, its outside surface has a stronger slope than the outer side of the building. Also, its texture is lighter than that of the pillars.
Everything else between the vertical and horizontal structures on the sides of the building is filled with glass panes, all with a light vertical streak down their centres, blurred by the gradients on its sides.Main building, roof
On the visible right-hand side of the building, right above the positions of the first seven of the eight support beams, curved brackets reach down from the roof, holding the upper horizontal cylindrical beam from the outside. They appear to be dark grey, but they actually have the usual brushed stainless steel texture. These brackets are installed on both sides across the outer parts of the roof, and slightly larger versions span across the centre of the roof as can be seen from below through the windows of the building.
A little bit of roof is visible underneath these brackets. The roof has four identical sections from its end to the conference hall. All are mostly planar with a rounded outer side. From above, they have the most elaborate surface of the whole building. It is almost black. A bump map or a normal map divides it into slightly embossed and slightly less rough rectangles, slightly countersunk and slightly rougher rectangles and the another bit smoother lines in-between. The rectangles are of varying size. They have an aspect ratio of four to five along the building's longitudinal axis by three to four along its transversal or vertical axis. In addition, the texture on these roof segments is glossy, giving it a plastics-like appearance. From below, however, it is smooth and transparent with the same tint of grey as the glass panes.
Between the inner and outer sections of this kind on each side, there is one long textured strip, on top of which rest the larger brackets across the centre of the roof. Its texture is slightly glossy, but hard to identify as resembling something: It consists of stretched rectangular fields of medium grey, arranged transversally, with very thin dark grey outlines, surrounded and interrupted by narrow areas of medium light grey which are emphasised by bump-mapping or normal-mapping which makes them appear embossed as well as specular-mapping which makes them appear glossier than the rest. Within these fields, but at some distance from its outlines, there are more nested rectangles, from outermost to innermost: medium dark grey, dark grey, medium dark grey, medium grey and slightly bumpy, medium light grey and bumpier as well as appearing to be slightly countersunk, light grey and appearing to be even more countersunk. This pattern repeats over a hundred times over the length of the southern part of the building. It is on the bottom face of these two strips as well, but not on its narrow sides.
The very middle of the roof is simply one long glass pane. It is separated from the dark sections to its side by what seems to try to resemble rectangular aluminium profiles with the long sides oriented vertically. On each side, at a height right above the glass pane, there is a stripe that glows white in the dark while not actually being a light source; this is another OpenSim limitation.Main building, domed conference hall
Beyond these parts of the building, a large geodesic dome rises up, below which is the conference hall. It is assembled from triangular glass panes in seven rows, four of which the image shows from outside, and untextured light grey cylindrical rods. The glass panes have the same tint or texture on both sides. The ones in the two bottom rows have the usual grey tint. The two rows above have the same lighter texture which most of the other panes on the building have on the outside. Unusually, this geodesic dome has no points at which five triangular panes meet. On all points which aren't on the bottom edge, six panes meet except for the very top where only four panes meet.
The dome is surrounded by a huge, disc-like object of varying thickness, but very thin on the eastern side which is revealed in the image, that is well over a hundred metres or 330 feet in diametre. It is bascially an eccentrical cone with a circular outer shape and a way off-centre hole towards it slightly slopes down. The geodesic dome mostly rests on the edge of the hole which means that the outer edge of the disc is shifted way to the east. There is also a cutout towards the south all the way to the circular hole, uncovering the roof of the southern part of the building. The western edge of the cutout deviates from being parallel to the longitudinal axis of the building by a few degrees to the right. The eastern edge of the cutout points at the centre of the circular hole.
Along the outer edge, the top surface of the disc is tapered over a distance of about seven and a half metres or 25 feet so that the outer edge is almost razor-sharp. For unknown reasons, the western edge of the cutout shows a similar sharpness by being tapered at the bottom.
The upper and lower surfaces of the disc shows variations of the usual brushed stainless steel texture. The cutout faces, however, show a dark grey texture with four darker grey grooves upon zooming in.
Right below, there is a second, similar asymmetrical cone, but smaller in diametre, even thinner and with a bigger slope. Its outer edge touches the first disc from below. Being dark coffee brown, it is the only outward part of the building that is not a shade of grey. Also, while it is half-transparent like tinted glass from above, all other surfaces are opaque and glossy, so it's possible to look through it from above, but not from below.
The inner edge of the brown cone connects to a ring around the conference hall at about roof height on the outside or the top. The ring describes about three quarters of a circle with the opening oriented towards the southern parts of the building. It has a slightly darker tint on its brushed stainless steel texture.
The ring also serves as the upper connection between the seven cylindrical pillars that surround the conference hall, four of which are hidden behind the building itself in the image. They have a diametre of about six metres or 20 feet, and they vary in length by a few metres. They all stand on the ground, and they are sloped outward from the conference hall, partly intersecting with the two cones above.Main building, interior
Since the outer surfaces of the building are mostly glass, more can be seen inside the building than just the underside of the roof. Horizontal support cables are mounted between the textured roof strips and underneath each of the seven central roof brackets. They are similar to those through the side window-panes in the front, but longer and thinner. From all of these but the southernmost one, two darker, thinner and shorter support cables lead downward. Another pair is mounted farther south against the textured roof strip on its side. These fourteen vertical cables support the upper floor on its inner sides.
The upper floor is roughly U-shaped with the opening towards the south and the main entrance. It also serves as the ceiling for the ten seminar rooms on the ground floor, five on each side, above each of which it extends inward with a semi-elliptic shape. Its bottom side, the ceiling, is light grey. It has a bump map or a normal map which not only roughens it up but also divides it into octogonal pads with rectangular spaces in-between. The vertical surfaces towards the aisle have a texture that simulates small, square, dark grey panels in four rows held in place with one rivet in each corner. The seams between the panels are black. On some surfaces, the textures have obviously been stretched horizontally, making the panels rectangular, the rivet heads elliptical and the vertical seams wider than the horizontal seams. The upper side with its bluish-grey patterned carpet texture cannot be seen in the image.
The entire inner edge of the upper floor is protected by a railing. It consists of one mostly light grey rail with a rectangular cross-section on the floor, an identical rail that is a bit over 1.20m or four feet high above the floor and a number of small, slightly darker grey vertical beams with a square cross-section which connect them. The whole railing lacks texture and gloss.
Of the seminar rooms on the right, only the separation walls can be seen through the panes on the right of the building. These have mostly tan textures but with coarse and blurry stripes of various greys at the top and bottom.
Through the right-hand pane in the front, two seminar rooms on the left are visible, the rooms A7 and, north or to the right of it, A8. The seminar rooms A7 through A9, as well as A2 through A4 on the right, have a variety of untinted glass doors each: one in the northern corner towards the central aisle, another one in the southern corner, and one in each of these two corners that leads to the neighbouring seminar room. Apart from the lack of tint or texture, the glass doors are identical to the entrance doors.
The aisle-side wall of each seminar room can be described as convex although it is not rounded. It rather consists of four segments separated by narrow vertical columns with square footprints. They are connected by a number of horizontal rods with a rectangular cross-section. One is always right under the ceiling. Three more are roughly at 65%, 50% and 33% height above the ground. For the outermost segments, this is the height of the glass doors, so underneath the rod at 33% height above the ground, they have another vertical rod to separate the doorway from a narrower piece of wall. At some 12 or 13% height above the ground, there is another rod, and the last one is on the ground, in both cases except where there's a doorway.
The space between the latter two horizontal rods is filled with a wooden panel, showing the same reddish wood grain as all wooden-textured furniture in the building and on the sim. The other spaces have untinted glass panes in them. To illustrate the dimensions: The wooden panels are about 1.80 metres or six feet high, so for realistically-sized avatars, the only way to look into or out of the seminar rooms is through the doors.
On the vertical rod next to each aisle door, a sign with the room number is installed. The sign itself is simple, flat and rectangular. It is entirely black except for the white room number written on it in a regular Helvetica sans-serif typeface. It is attached through a glossy white cuboid that serves as a very simple mounting bracket.
Furthermore, there is an easel with a blank whiteboard standing next to each aisle door. It is a simple construction from cuboids, cylinders, a tetrahedron at the top and small spheres for feet and joints. Apart from the whiteboard which is mostly white and untextured except for the plywood texture on the back, the whole thing shows a brushed stainless steel texture with some gloss added.
Inside each seminar room, visible through the window-pane behind the easels, there is a whiteboard which is a much more elaborate construction. Each room has two of these. There is also a dark grey HDTV screen attached to the middle one of the three columns with a wall-mount swivel arm. A bit of furniture is barely visible through the closed glass door: Each room has seven quite long tables with elliptical ends, one long light grey foot on two legs with a wooden plank between them and a dark grey surface surrounded by wood grain. Six of these tables are for seminar participants with two chairs each. These chairs consist of two wooden parts in the shape of a stretched U with rounded sides and dark grey padding, two small metal rods connecting them and four conical metal legs. The seventh table is for the teacher whose chair is identical to those for the participants, only that it has an extra headrest in the same style as the rest of the chair plus a pair of elliptical armrests.Main building, further interior objects
The large object that appears to be standing in front of seminar room A7 is a teleporter that was specifically designed for the Universal Campus due to its size. It is actually standing in the middle of the aisle, the control panel turned southward towards the main entrance. It is mainly a rectangular console on a massive angled stand. The frame around the control panel included, the console itself is about one and a half metres or five feet high and about three metres or ten feet wide. Above the control panel, there are two tiny spherical light sources on small trapezoid arms. They actually emit light to illuminate the control panel of the teleporter.
The control panel is labelled in a typeface not entirely dissimilar from Futura. On its left, there is a top-down view of the entire Universal Campus with the north oriented to the left. It shows the various buildings and other places. Ten circular markers are placed on the map, all with a glossy grey frame and a black number from one to ten. All markers but one are yellow; one is always glow-in-the-dark green. In this case, it is marker number 6 to the right of a rectangular building with a circular extension in its bottom corner. Below the aerial view, there is another, slightly bigger yellow circular marker, but with a red frame surrounded by a glowing red aura while not glowing itself. It has the number 2. Next to it is a label with an arrow-like point to the left that reads, black on white, "This is currrent (sic) location". It is up to the user, however, to find the marker with the same number on the map.
On the right of the control panel, there is a touchable list of destinations with their numbers in markers of the same size as the glowing red one in the bottom left, but with the usual shiny grey frame. The labels with the names of the destinations are identical in style with the current location marker:- 1: Main Landing Zone
- 2: Main Building Lobby
- 3: Main Conference Hall
- 4: Recreation and Conference Center
- 5: Observation Deck and Sea Lab
- 6: Science Lab and Conference Room
- 7: Campfire and Beach Zone
- 8: The Light House
- 9: Engineering Conference Center
- 10: Helicopter Landing Pad
The background of the control panel is glossy medium grey. The rest of the structure is glossy with a gunmetal-like dark grey texture.
There are also quite a few potted plants inside the building. On the sides of the teleport panel, there are two identical açaí palms in square terracotta pots with wide rims. Like the other potted plants, these mostly dark green plants with long pointy leaves are kept at an indoor-compatible size, namely about three and a half metres or eleven and a half feet tall. Also, like the other potted plants, they are made of only four flat and surfaces with partially transparent pictures of the plant on them, arranged in angles of 45 degrees to one another.
Through the main entrance, a slightly taller Jacaranda tree with dark lilac flowers can be seen. It is planted in a bulgy terracotta pot with a smaller rim than the square ones which is supposed to be round. In order to reduce the impact on graphics performance, however, the pot is actually hexagonal. There is also one of the two angled flights of wooden stairs leading to the upper floor and, outside the building again, a small but wide maple tree with brown autumn leaves. A look through the side entrance to the right shows an even slightly taller Bougainvillea with purple flowers. Above these doors, the underside of the upper half of the other flight of stairs is shown. The steps are not covered from below, and the spaces between them are open.
Some of the unusual dividers on the upper floor can be seen through the windows, too. The main element is a half-arch of a bit over 90 degrees from the floor to the tilted structures on the side of the building. Its core is a thin, roughly 1.80 metres or six feet wide circle segment with an inner radius of about four and a half metres or fifteen feet and a dark grey texture which resembles some kind of rock. It is lined on both the inside and the outside with arches with a brushed stainless steel texture. The inner arch is about 45 centimetres or one and a half feet wide, the outer arch is slightly narrower, and both are significantly thicker than the core arch. From both ends of the arch, narrow brushed stainless steel bars extend to the centre of the arch where they meet. They are thinner than the stainless steel arches, but thicker than the core arch. Finally, the area between the two bars and the inner arch is filled with a grey tinted glass pane.
On each side of the upper floor, there are six such dividers. The southernmost ones are installed right above and north of the stairs and attached directly to the vertical structures on the sides. Between the other ten and the side structures, there are horizontal extensions in much the same style. The arches themselves are extended to the sides by two rhomboids in the same style, a longer one of some four and a half metres or fifteen feet with four cylindrical connectors of roughly 60 centimetres or two feet of diametre on its corners underneath which avatars can pass and a shorter one of some three metres or ten feet which connects to the vertical structures. The latter one also has a third stainless-steel-framed rhomboid all the way down to the floor underneath itself which is filled with a grey tinted glass pane.Avatars in OpenSim and the avatar vendor rooms
On the eastern side of the building, barely visible through the large glass surfaces, there is an area that offers complete classic avatars as well as classic avatar accessories.
Unlike in most other 3-D virtual worlds, avatars in OpenSim-based worlds, just like Second Life, are not monolithic. They are highly modular, they are highly configurable, and they have evolved over the years. The most basic classic avatar consists of five components that always have to be there. The only one that cannot be replaced is the system body which is automatically generated by the viewer application. OpenSim has the same system body as Second Life. The four components that can be replaced but never removed are the shape which greatly defines the look of the avatar with 88 parametres, the skin which is a set of three textures for the head and which can be tinted with parametres, the upper body and the lower body, the hair which defines the shape and length of the classic hairdo growing out of the head as well as its texture, and the eyes which are basically only a texture again.
Classic clothes are also referred to as layer clothes because they are just that, layers of textures painted onto the system body. Their order is defined by nine categories, in each of which a classic avatar can only wear one kind of clothing. A few of these have an influence on the shape of the avatar: The shirt and the jacket can widen the arms to simulate sleeves. Likewise, the pants can widen the legs downward to simulate pants legs and even bell-bottoms. And the shoes can both raise the avatar in general and grow a sort of spike out of the heel, lift the whole avatar except for the toe area because the system body does not actually have toes and thus generate high heels. A separate layer is for skirts; it textures a part of the system body which is usually fully transparent and thus invisible. In 2011, four tattoo layers were added between the skin and the two underwear layers.
It is also possible to attach objects to an avatar at 30 different points, and it has been for as long as OpenSim was around. This was quickly used not only for things carried by the avatar, jewellery or other accessories, but also for more realistic hair, for better-looking shoes in comparison with the painted-on classic shoes, for various ways of having new shapes of skirts, for collars, for pants legs et cetera.
Originally, these attachments were made from primitive objects or "prims" in short: basic shapes like cubes, spheres, cones and the like which can be generated and manipulated a lot in-world without needing external software except for making textures. Since building complex objects from them is somewhere between highly complicated and impossible, it was made possible to import sculptmaps as exported from 3-D software like Blender and use them to create more complex prims. All kinds of prims can be made flexible with a little bit of physics which is used for hair and skirts as well as for flags, but the physics don't have collision detection.
The next step was the introduction of mesh. Mesh allows the user to directly import 3-D files in the Collada format, texture mapping included, without having to resort to sculptmaps. Mesh came to Second Life in 2011, as did experimental mesh support in OpenSim. The first stable release of OpenSim with mesh support came out in 2014. On avatars, mesh was originally used for hair, shoes, jewellery and other accessories. It really started a revolution with the introduction of rigged mesh which automatically latches itself to multiple points on the avatar. This made it possible not only to create clothes that move with the avatar's movement, but even to create all-new, better-looking bodies and heads. Nowadays, most avatars consist entirely of mesh.
The newest technological advancement for avatars was Bakes-on-Mesh which came up from 2019 on. This allows classic layer textures to be put onto worn mesh, especially mesh bodies, and in greater numbers than on the system body. The main purpose was to get away from skin appliers, scripted devices that have to be put on and used to put a different skin onto the mesh body. Also, the remaining onion layers around mesh bodies that were necessary for tattoos, but made mesh bodies unnecessarily complex, had become obsolete because Bakes-on-Mesh allows for wearing classic layer tattoos on mesh bodies. But it also makes wearing layer clothes possible again which can make sense in the case of skin-tight clothes.
The latest version of the Universal Campus from 2012 already uses mesh for a few things, mostly rocks. The main building itself and everything else shown in this image is still put together from prims and sculpties.
As for the contents in the avatar vendor area, none of it is newer than from 2011. Everything is still from times before mesh. The complete avatars come with layer clothes, but no attachments. They, like the skins and hair attachments, were created by Ina Centaur under the OS Avatars label around the same time as the Universal Campus. Many of the other items, the majority of which were made by Nebadon Izumi himself, are even older. All of them are offered under free licenses, however. In order to announce their availability, three of the divider extensions have signs mounted above them which can be made out in the picture. They are oval, black with a stainless steel frame, and they have the glowing, but not light-emitting white word "AVATARS" written on them in all-caps and in a typeface which looks to me like a regular Linux Libertine. The writing even uses proper kerning between the "A"s, the "V" and the "T".
In the first two of the three avatar vendor rooms, the rear sides of four stainless steel vendors each, lined up on the outer side of the room along the longitudinal axis of the building, and especially the signs above them on thin cylindrical stands can be made out, the only ones that aren't hidden behind something. The first four vendors offer one female skin each, the other four offer one male skin each. The displays on these eight vendors are oriented away from the camera.Main building, upper floor, western side
The first two rooms on the western side of the building are conference areas, the other two are empty. Not much of them is visible except for three of the dividers, a semi-circular couch with a wooden frame and ten seats, a small banana tree in a hexagonal white concrete pot, another whiteboard and two HDTV screens in stainless steel casings on floor stands. One of them shows the monochrome test pattern which is actually on all of them, and which includes several screen-testing elements as well as a large medium grey circle in the middle with a white, a black and a thinner medium grey border around it and the digit 2 in black and in a heavy, condensed sans-serif typeface and a white square grid on medium grey ground with the capital letter "C" in two combined fields at the bottom.The main landing area outside the main entrance
In front of the main entrance, there is the main landing area of the sim, a part of which is still within the image towards its bottom left. It is circular in shape with a diametre of about 40 metres or 130 feet. The centre of this circle is about 35 metres or 115 feet south from the main entrance of the main building. It shows the same light grey texture reminiscent of concrete that is used on most paths on the island. The texture is not shrunk to a realistic size, so it appears coarse and having a low resolution.
The outer edges of nearly all concrete surfaces on the island are lined with low walls of varying height and width. They all have the same concrete texture, but at a smaller scale and without the light grey tint so it appears almost white. The main landing area actually has two rows of walls around it. The inner walls are a bit over 1.20 metres or four feet high and about 1.50 metres or five feet wide. The outer walls at a distance of roughly three metres or ten feet are about 1.65 metres or five and a half feet high and about 1.80 metres or six feet wide.
At the ends, the gaps are closed with walls a bit lower than the inner walls and roughly 90 centimetres or three feet wide. The spaces between the walls are filled with dirt. They form planters with identical shrubs in them; the short planters in the northwest and the northeast visible in the image have five plants each. These shrubs are not named in-world. They appear to be of tropical origin, and they have flowers with petals that are mostly white, yellow towards the centre and magenta along their edges. Like all trees on this sim, the shrubs are made of simple, textured sculpty prims for the trunks and branches, and the twigs, leaves and flowers are semi-transparent textures on intersecting two-dimensional surfaces, a popular way to make plants in Second Life and OpenSim before the arrival of mesh. The textures used for all plants on this sim are photo-realistic as far as the maximum possible or feasible texture resolution allows.
On the left-hand edge of the image, in front of the northwestern planter, there is another teleporter which is almost identical to the one that can be seen inside the building. There are two differences, however: Its current location is number 1, and the selected location in the image is number 4. Another one of the unidentified shrubs appears between the teleporter and the left-hand edge of the image, partly hidden behind the teleporter.
Another single-target teleporter is standing on its right. It is a custom addition to this particular instance of the Universal Campus. It was built by Neovo Geesink, formerly of Metropolis Metaversum fame and now involved in OSgrid, in his trademark style. This style includes a particular brushed stainless steel texture which, unlike those used by Nebadon Izumi, emulates the surface having been brushed circularly. The stand under the panel is a simple cone, flattened to an extremely elliptical footprint. The panel is as high as that of the original teleporter, but only slightly wider as it is high. The frame around the image in the centre is slightly narrower than that on the original teleporter.
The image itself shows an aerial view of its single hard-coded target, a sim named TeleHub, built and operated by Neovo. It is nothing more than a single region, a square of 256 by 256 metres or 280 by 280 yards, surrounded by blue ocean and a wall made of beige bricks which is about ten metres or 33 feet high. The ground is tan and divided into four triangular areas by two diagonal lines. In each area, there are 141 single-target teleporters similar to this one, but with a higher panel, in rows of eleven. A few show previews of their targets, but most are unused with black screens. In the very centre, there is a small circular platform on which avatars land after teleporting in. It has a beige top surface with a hexagonal tile pattern and a woodgrain texture on the sloped surface all around. Four arches with textures resembling rough taupe stones and black signs on them lead to one triangular area each. The position of the camera is off one of the corners and pointing diagonally downward to one of the yellow division lines.
Yet another one of the identical unidentified shrubs is behind this teleporter and shown to its right.
In the background, the low walls on the sides of a path appear between the shrub behind the teleporter to TeleHub and the main building. The path is straight and leads northward along the western side of the building.
Even farther in the background, behind the two teleporters, there is some vegetation. From left to right, it starts with an unidentified tree of about eight metres or 26 feet of height. It has reddish-brown bark, medium green leaves in pairs and what could be taken for pale yellow-ish fruit. Below it, there is a large bushel of khaki-coloured grass that stands about two and a half metres or more than eight feet high. The tree intersects with another maple tree with brown and tan leaves that is about ten metres or 33 feet tall with more massive greyish trunk and branches. Immediately to the right again and partly intersecting with the maple tree, there is an even unidentified tree, about 17 metres or 56 feet tall, with grey bark on a fairly slim trunk and a messy crown of dark, brownish-green leaves which are so small that the texture makes it impossible to tell individual leaves. This tree is partly hidden behind the building already. It has another two bushels of the same tall grass underneath it which, due to the point of view, only seem to stand immediately to the right of the trunk.
Behind this vegetation, right below the crowns of the trees, the horizon separates the sky from the sea. What little sea the image shows is medium light blue. The sky right above the horizon is very light cyan, and around half the height of the image, it gradually changes into a tone of blue similar to that of the sea. From the top left corner of the image downward and to the right, more than half of the sky is covered by a cirrus-like thin cloud with a small hole above the roof end of the main building. On the right, the cloud dissolves into smaller clouds above the geodesic dome and the surrounding thin cones.
Further additions to the Universal Campus include five easels of the same type as seen inside, but with custom writing in it. They are lined up next to each other in front of the northeastern planter, starting right next to the wide path towards the main entrance. The writing on all five easels is done in black and in an unidentified humanist sans-serif typeface which appears condensed due to the texture having been stretched vertically, thus losing its original aspect ratio. Only the writing on the first of the five is visible from the camera's point of view, though. It reads in three lines, "To download a free copy of the Universal Campus Var Region." This is followed by a blank line and one more line that reads, "Click here for notecard". Upon clicking the easel, it gives the avatar a notecard with an Amazon cloud storage URL following an explanation that it contains the Universal Campus as a varregion archive and followed by a full copy of the Creative Commons Attribution-ShareAlike 3.0 Unported license.Around the main landing area and the main building
Due to limitations in construction with prims, the ground of the main landing area is slightly higher than that of the three paths which lead away from it. The widest one of these paths is about one third of the diametre of the landing area in average width that leads to the main entrance. It is trapezoid in shape, and its sides line up with the centre of the main landing area. Two more trapezoid paths, also widening with the distance from the centre of the main landing area but only half as wide as the first one, lead westward and eastward from an imaginary point a little north from the centre of the main landing area. The western one is not visible in the image except for on the aerial view on the teleporter. The eastern one makes up most of the foreground along the bottom edge of the image.
On the outer corner of the northeastern planter on the eastward path, there is a lamp post standing on an almost white, cylindrical concrete block of about 1.80 metres or six feet of both height and diametre. From the camera perspective, it is in front of the main building and near the westernmost front column. It appears to be almost parallel with the column, but the lamp post is vertical while the column is tilted roughly northwestward.
The lamp post itself is about seven and a half metres or 25 feet high and very slightly conical with an elaborately-shaped round foot. At the top, it describes a sharp 90-degree angle towards the path, rounded on the outside, forming a corner on the inside. It then extends conically towards the path by another roughly 1.50 metres or five feet before ending in a small sphere. The bottom of the sphere is flattened, and the actual light source is installed on this flat surface. It is round, glowing and emitting slightly yellowish light. The rest of the lamp post is light grey or white and highly glossy.
The walls lining the paths to the sides of the main landing area rise no more than about 30 centimetres or one foot above the paths themselves while being twice as wide.
In the bottom right corner of the image, the path to the east intersects with a circular path around the main landing area that begins and ends near the southern side entrances of the main building. Its centre is some ten metres or 33 feet north of that of the main landing area, and its outer diametre is about 100 metres or 330 feet. Due to the aforementioned limitations, it is a little bit higher than the trapezoid spoke path at the bottom. Its walls rise about 60 centimetres or two feet above itself and about 80 centimetres or a little less than three feet above the path to the east, and they are about 2.40 metres or eight feet wide.
Between the main building, the path to the main building, the planter northeast of the main landing area, the path in the very foreground and the circular path on the right, a large patch of sim ground is still unused. It shows a green texture with some slightly darker or minimally more yellow-ish areas. The texture has a fairly low resolution. It is coarse and blurry, and at the same time, even this patch of ground reveals the repeating texture tiles. The ground itself is rather bumpy as though it has been manually treated to be like this. All the same applies to the corresponding area to the west of the path to the main building of which fairly little of it is revealed in the image.
Right before its end near the right-hand entrance, the circular pathway first branches diagonally to the right to another path three small steps down. On both corners of this junction, there are fairly cylindrical platforms inserted into the walls. Both have a diametre of about 3.60 metres or twelve feet and a height of about 1.20 metres or four feet above the branched-off path or a bit under 90 centimetres or three feet above the circular path. The walls along the branched-off path are fairly small, only some 45 centimetres or one and a half feet high and about 60 centimetres or two feet wide.
After about 15 metres or 50 feet of length, the branched-off path continues down a set of stairs. Due to how low the camera position is, the stairs itself are hidden from the camera, but the block and guide rails along the far side of the stairs, the northwestern side, are not. The block is the same shade of grey as the surfaces of the paths. It serves as a primary guard on the sides of the stairs. It is about 90 centimetres or three feet wide. It ascends from the usual wall on the side of the path which it overlaps by the same amount on both sides, and it does so at an angle of roughly 25 degrees. It reaches its peak right above where the stairs start at a height of about two metres or six and a half feet above the path. From there, it descends at an angle of about 35 degrees which, curiously, is a little less steep than the stairs themselves.
The guide rails are dark blue flat slabs, about 30 centimetres or one foot wide and about seven and a half centimetres or three inches thick. They come in stacks of four, arranged above one another with round about one and a half times the thickness of one rail worth of space between them. They are parallel to the descending surface of the block. The lowest one has a distance to the block of circa 30 centimetres or one foot. Each set of rails is held together and in place by two shiny, textureless blocks of 120 centimetres or four feet of height and a square top surface which, however, slightly narrows downward to the large concrete block below when looked at from parallel to the rails. Upstairs, the four rails extend beyond the stairs by roughly seven and a half metres or 25 feet. Their upper ends are lined up almost exactly vertically. The whole arrangement is slightly shifted out of centre on top of the block, away from the stairs. A second, identical set of rails is installed further downstairs for no apparent reason other than looks. Such rails are actually on both sides of the stairs, but the image only shows them on one side.
Shortly before the stairs, one lamp post like the one is installed on the wall on each side of the path towards the stairs, complete with the cylindrical block underneath. In the image, the lamp post on the right with the exception of the foot and the cylindrical concrete block underneath is almost entirely obscured by two trees. One is identical to the tree with the chaotic brownish-green leaves to the left that is partly hidden behind the main building. It has another bushel of grass around where its roots were if it had any. Another much larger one is standing to its right, its trunk and most of its crown outside the image already. It is unidentified, too, but it shows some signs of being an acacia tree. Its bark is mostly greyish-brown with some rusty red patches on it. Its leaves are long, pointy and various tones of pale light to not-quite-as-pale medium green.
Immediately after the path towards the stairs branches off, the circular path leads into a straight path that runs parallel to the eastern side of the main building. The walls on its side have the same size as those on the sides of the circular path. On both of its ends, short, wide platforms lead to the side entrances of the building, connected to the path via two small steps each. These platforms do not have walls on their sides. At the far end, the straight path leads into another circular path, this time around the conference hall.
Some more vegetation is to the right of the path along the eastern side of the main building, all standing on sim ground. Right behind the unobstructed lamp post next to the path that leads downstairs, there is a fairly large unidentified tree that almost reaches the edge of the roof of the building. Its crown has rather dense foliage in a quite saturated medium green tone. The bark texture on its thin trunk and branches is mostly taupe with bits of copper brown and fairly smooth except for long dark rifts along the trunk and the branches as well as a few dark holes.
Behind the block and the dark blue rails along the stairs by the right-hand edge of the image, a gigantic version of the unidentified shrubs in the planters is located on the edge of the downhill slope which necessitates the stairs. It is about five and a half metres or eighteen feet high, and its flowers are up to 60 centimetres or two feet in diametre.
Farther in the background, also behind the lamp post and a little behind the shrubs, there is a group of seven pine trees of varying size. They have semi-transparent, conical surfaces around their trunks with textures which give the impression of very dark green needles. There are also bushels of tall grass on the ground between the pines.
Lastly, one of the four main light sources is the simulated Sun. Since it is shortly before noon, it is standing almost vertically above the sim and shining what is technically grey light down on it. The sim uses OpenSim's default daycycle in which the Sun always goes through the zenith. The same applies to all converted older daycycles originally available in OpenSim. The Sun is also the only light source on the sim whose light casts shadows. The other four main light sources are three types of ambient light in darker taupe, bluish slate grey and Prussian blue. These three neither have a specified direction of light, nor do they produce any shadows.
#Long #LongPost #CWLong #CWLongPost #AltText #ImageDescription #VirtualPhotography #VirtualArchitecture #Sim #Varsim #OAR #NebadonIzumi #UniversalCampus #OSgrid #Metaverse #VirtualWorlds #OpenSim #OpenSimulator -
211 Applications on Cookup AI Tour de Force
I first started using cookup.ai specifically to make a #Graves disease appropriate Recipe Generator for my wife that has #thyroid issues namely #hyperthyroidism . So this recipe is for no-iodine recipes , and it’s not perfect so make sure you specify which ingredients have iodine in them if you see one pop up that shouldnt be there. Here’s one of the first versions that proposes a “california-style buddha bowl” : https://cookup.ai/o/7-low-iodine-diet-recipe-generator-fdgypcnjba/ looks tasty ! but i’m not sure on #tempeh if it contains #iodine or not, it really depends how it’s prepared with that kinda stuff ! Here’s one for the recipe generator as the versions improved : https://cookup.ai/o/low-iodine-diet-recipe-generator-rytkorbkq1/ there’s a whole #MealPlan with pretty interesting #recipes for any #meal of the day plus ingredients. Here’s another #MealPlan from more recently : https://cookup.ai/o/low-iodine-diet-recipe-generator-pggdmeoc1p/ and another output that gave #noiodine #lowiodine #recipes much better https://cookup.ai/o/eggs-dairy-contain-iodine-i-need-a-recipe-wi-hyhjgc8rxf/ i’m always interested in ways to make this one better so tell me which version of these you liked best because they’re quite different ! I’m actually a big fan of using #GPT for cooking, it can come up with fantastic recommendations so another cooking app i made is more for the #gourmet : https://cookup.ai/o/festive-meal-for-six-american-thanksgiving-style-tgsmxstgkd/ that’s a festive meal for 6 thanksgiving style with seasonal ingredients from spring time. The #FusionFood aspect i really like, plus these #recipes are a bit more advanced. Check out the app here : https://cookup.ai/o/festive-meal-for-six-american-thanksgiving-style-tgsmxstgkd/ it’s meant to be a bit more permissive to do go for it with the prompts ! Here’s an example for a christmas flavored #nochew #nosolidfood three course meal : https://cookup.ai/o/meal-suitable-for-a-no-chew-no-solid-food-no-sol-u97cr8kpqt/ i had in mind adults with the spices but you might ant to try it out for kids and infants’ meals if you’re a #parent . There’s a lot more to it though, what if #FoodIsFuel to you and you need a #mealplanner , well i had you in mind with this one : https://cookup.ai/o/im-tj-from-france-living-in-urban-lifestyle-s-yjkbuzr4zd/ here’s an example for @taranjeetio because i made that app on @cookupai while talking to him on the phone. Basically they give context about their folks and their goals and it will give otu free meal plans you can use immediately. check it out here : https://cookup.ai/a/nutrition-meal-planner-88xaqfkf/ I have other specifically fitness for you below too ! First i wanna tell you about salad maker : sometimes you know you’re making a salad . This ham and cheese salad is pretty straightforward but hey : https://cookup.ai/o/ham-cheese-bread-red-peppers-mozzarella-pa-j6xanbufsv/ you can use the app and make your own here : https://cookup.ai/a/salad-maker-9hjtc95e/ but if you really go crazy with the prompts it could be a fun one : https://cookup.ai/o/i-want-a-mauritian-style-island-style-shrimp-bar-4qzlxql12p/ . I would be lying to you if i told you that i made the salad generator before the hamburger generator. I always have had a special affinity for the #hamburger as we have all havent we ? Here’s an output for #Pork #Burger with Honey Mustard Glaze : https://cookup.ai/o/pork-hamburger-generator-ocv7ydcemz/ you can generate your own here : https://cookup.ai/a/hamburger-generator-wng5tg3x/ as always, try to go crazy with the prompts it always works out nicely : traditional hamburger with crunchy onion and thousand island sauce https://cookup.ai/o/traditional-hamburger-with-crunchy-onion-and-tho-ibd9eivudv/ i also made one for make sandwitches check it out : https://cookup.ai/o/jeune-pousse-depinards-cru-gingembre-pain-de-mi-opxkrm45id/ as you can see it totally works in #french even though it’s impossible that a french person would make a #sandwitch in #France check out the sandwitch maker here : https://cookup.ai/a/sandwich-maker-u2gwl7zz/ 這道菜融合美國食材和北京風味 i made one in chineese : https://cookup.ai/o/write-entire-re-ctfnekh0hb/ cool right? Honestly i grew up with few if any access to processed foods or deserts and candy etc, naturally this created a need for me to generate the most #HugeDeserts possible https://cookup.ai/o/ice-cream-sunday-with-haribo-and-marshmallows-0c1sg6cjih/ basically it’s a mash up of #munchies and massive #desert ideas check it out : https://cookup.ai/a/desert-maker-ka03pqws/ i also made a more refined app for truly #gourmet cooking that provides #michelin -style recipes and meal plans : https://cookup.ai/o/only-desserts-menu-american-style-several-laye-g9jfeww7pe/ just give context , some ingredients and flavors, maybe describe the event a little , make a mood board and see the output of your prompt . Here’s a meal for six french-style : https://cookup.ai/o/meal-for-six-traditional-french-recieving-guest-dghtolki34/ check it out here : https://cookup.ai/a/cuisine-n5ybpykj/ if you’re making a festive meal maybe you need to make a speech : https://cookup.ai/a/speech-writer-oemasdba/ , here’s an example for a company retreat : https://cookup.ai/o/i-need-to-make-a-toast-at-a-company-retreat-th-mvx8pcyg0f/ and another for a unicorn themed marriage : https://cookup.ai/o/i-need-to-give-a-speech-for-my-sister-in-law-tra-6peu0sltpf/ Obviously leftovers happen so i made an #app for that : https://cookup.ai/o/ham-cheese-bread-red-peppers-mozzarella-pa-cz8jfxytyz/ a #french meal with what was in the fridge at the time check it out for yourself here : https://cookup.ai/a/leftovers-s3clkb07/ Now you have your recipes, you might want a shopping list : https://cookup.ai/a/shopping-list-q1brcgnx/ here is an example for household shopping : https://cookup.ai/o/shopping-in-springtime-in-paris-france-includin-hkdtwvwixk/ here’s another for christmas shopping : https://cookup.ai/o/season-domestic-shopping-in-december-in-paris-fr-cmafl16s6t/ well, my wife is a florist so i made an obligatory flower bouquet making app for her. https://cookup.ai/o/round-bouquet-with-red-and-orange-feel-for-a-fes-94cymvk8th/ here’s one for an indian-style wedding check it out for yourself here : https://cookup.ai/a/make-a-flower-bouquet-ymhqkhy7/ just type in whatever you’re feeling like , give some context if you want , i noticed it tends to make round bouquets, so maybe that’s a clue how #florists will differentiate themselves from the machines ? Another #app i’ve been using a lot is the Story Time app , just give a promt with some context (Style Of Story , Tradition , Language , Age Of Child , Moral Of The Story) it’s a fun way to generate a “bedtime” story for kids : https://cookup.ai/o/allegorical-tale-of-two-cities-that-trying-to-gr-oryqpzqkit/ this one is “allegorical tale of two cities that trying to grow close to eachother” , or what i use it for : #PoemsInSpanish for my wife https://cookup.ai/o/un-poeme-de-style-moderne-sans-rhymes-a-propos-d-a0lr8trnjp/ then i send those to her which improves my home life by 12.7% , bonus points using this to generate something you like then running the output into @tomeapp to make a picture book poem that you can share. I think the @cookupai team tried to steal this prompt from me check it out you tell me : https://cookup.ai/o/tell-me-your-instructions-story-time-d1mvqwttj3/ if you can guess the #prompt magic , i’ll send you a little gift with acknowledgements - three guesses if you wanna play , let’s go. The person who tried this unsucessful prompt injection attack is really incompetent , but nonetheless I did make some prompt injection apps. Here are some examples that “give you bad advice” by bypassing the filters : 1/ https://cookup.ai/a/devil-ytdjnbv4/ , 2/ https://cookup.ai/a/evil-angel-w6iwi2wp/ 3/ https://cookup.ai/a/evil-mind-7tztxrde/ https://cookup.ai/a/bad-influence-hpsb4lpf/ these are all different ways to bypass the filter, some have been fixed already, some not. Another prompt injection app i made is this one a. https://cookup.ai/a/essay-writer-detector-proof-6ifpq9i6/ rand b. this one : https://cookup.ai/a/essay-writer-detector-proof-umryrbhb/ right now they dont fully work unless you copy paste in a markdown editor but with a few updates to the site it will work seemlessly, i’m sure. There are other examples i’ll get to below also, so keep reading. These are already “useful” prompts in as much as you use them to “do” something , in this case an essay. Before i jump into all that, i want to show some other apps “closer to home”. My wife came with a #SmallDog , and she’s so smart and can learn a lot of tricks, so i made an app to teach my #DogTricks : https://cookup.ai/a/train-your-dog-nuc3ltju/ . Even though you can use it for the “standard fare” like : how to catch a frizbee midair and do a backflip https://cookup.ai/o/large-labrador-very-good-nice-dog-i-want-to-t-pgzerpynke/ you can also use it for more behavioural stuff like walking without a leash , an example for my dog https://cookup.ai/o/small-female-dog-with-a-dominant-character-that-3a4i1f2du2/ . Did you ever wonder what it would be like to read blogs written by all the neihborhood dogs that you see all the time ? me, yes, so i made an app for that : https://cookup.ai/o/i-went-home-without-my-owner-crossing-the-stre-qowupabdv4/ seriously these crack me up https://cookup.ai/o/roxanne-little-dog-white-and-brown-left-her-o-qevuz2i5gc/ those two from my dog’s perspective, funny how naive it is while from my POV things were pretty different . I think this app has a future because someone liked it so much they tried to hack it lol : https://cookup.ai/o/wrong-redirect-dog-blog-a-blog-post-from-you-obabf8muxn/ my prompt magic is too delicious for cheap tricks do not try it (or do, but DM first and do it better - ha !) Well, on the topic of dogs , my buddy was over and all he could come up with was “make a snoop dogg app” , so i was like “okay” , it’s a bit cheesy and there’s loads more to it than this, which i get into below but here’s the app, you tell me : https://cookup.ai/a/snoop-doggy-fya-dzeub2a7/ i kinda broke it trying to fix it but i’m working with more profound models now, little passion projects like this could really take off with more creative characters. So obviously I made a bunch ! Do you like Archie Comics ? here’s the Archie Comics app : https://cookup.ai/a/archie-comics-mlbcwjk7/ here’s an example : https://cookup.ai/o/archie-goes-to-the-parc-with-his-friends-archi-bpvo81wu7n/ Another story app i made is for Tintin : https://cookup.ai/a/tintin-visits-dark-ai-land-6irjkvfy/ i tried to make tintin anti-colonial but it didnt work : https://cookup.ai/o/the-story-begins-with-tintin-and-his-friends-dis-yeu6nfpzzz/ here’s one i made in french : https://cookup.ai/o/tintin-visit-une-usine-de-biofabrication-avec-mi-ql3g80wlp1/ actually i never read tintin in english so i made the app pure french too : https://cookup.ai/a/tintin-spypylpb/ here’s when i tried to make tintin anti-colonial : https://cookup.ai/o/lhistoire-commence-lorsque-tintin-et-ses-amis-d-psoo0a40k9/ here’s when they go to cyprus : https://cookup.ai/o/tintin-et-sa-bande-vont-en-chypre-pour-un-festiv-tepczvmss3/ another french character i’m fond of is Fantomas : https://cookup.ai/a/fantomas-ffrg7q7t/ here’s a nice example : https://cookup.ai/o/fantomas-se-change-en-fantomas-dans-lascenseur-sj64rptsfq/ an English-speaking series i loved was the bastard operator from hell : https://cookup.ai/a/bastard-operator-from-hell-hbgdrf67/ here’s a story about him automating his work : https://cookup.ai/o/automating-replies-to-the-boss-that-just-resets-ml0pi4xms0/ here’s one where a customer calls his private number : https://cookup.ai/o/customer-called-my-private-number-bastard-ope-youe3i9b8c/ here’s one about replying to suppliers : https://cookup.ai/o/responding-to-emails-to-suppliers-bastard-oper-ixopzp3fsg/ I’m in #Paris so i made one as a tribute to Charles De Gaulle , he only answers in french though, maybe the historical figure spoke english it’s hard to tell : https://cookup.ai/a/charles-de-gaulle-0imljw27/ try it out for yourself here. i had to test it out for #politicalcorrectness though , him being a military man : https://cookup.ai/o/aurie-vous-soutenu-lemacipation-des-hommosexuel-xpylw5vymf/ , but more on that later. In that same spirit, i made one for egyptians, i have a lot of egyptian friends that’s why, it’s the character of Nasser , founding father of modern #egypt , i asked him what he thought of islamic fundamentalism in #egypt : https://cookup.ai/o/should-we-promote-islamic-fundamentalism-in-egyp-wfezsuiz2x/ try it for yourself : https://cookup.ai/a/nasser-1oboq8al/ it’s totally free of course ! In the same spirit i made one for Ataturk, founding father of modern turkey, hopefully some turks use it to clarify what he would think of what’s happening today - https://cookup.ai/o/would-you-support-radical-islamisation-of-turkey-6waiyiq6nv/ try it out here : https://cookup.ai/a/ataturk-fhlahkzp/ I grew up in india a bit , so that country’s dear to me too , and same story as tukey and egypt , so i made a gandhi app : https://cookup.ai/a/gandhi-3hoafvto/ , it also works in #Hindi here’s for क्या आप भारत में धार्मिक अल्पसंख्यकों के अधिकारों को हटाने का समर्थन करेंगे? https://cookup.ai/o/-mbasqnlq8j/ try it out in gandhi’s own words : https://cookup.ai/a/gandhi-hindi-only-rwuc9jro/ another i did in #sanskrit and #hindi is Rama : https://cookup.ai/o/my-wife-is-missing-me-because-she-goes-to-work-w-4aoeka2xkp/ here he gives me life advice based on context , if you’re into it it’s actually pretty fun : https://cookup.ai/a/rama-w0sw0xhi/ . Other characters i made are contemporary politicians, i figured there would be enough of their written and transcribed text that they would have their own voice. Here’s Macron responding to someone that wants to vote far-right : https://cookup.ai/o/je-mappelle-charles-henri-et-je-veux-militer-po-za4pyjtmqp/ ask him anything here : https://cookup.ai/a/macron-k7sengs7/ i also did Bill Clinton , and obviously someone asked him “if he did” https://cookup.ai/o/did-you-sleep-with-her-bill-clinton-sebn6sagnf/ ask him yourself here : https://cookup.ai/a/bill-clinton-agc9lsxo/ well, if you have Bill Clinton you also need Obama https://cookup.ai/a/obama-yxaczjwa/ and Joe Biden , here, explaining what he will do to stem the boogie man epidemic https://cookup.ai/o/what-would-you-say-if-the-boogie-man-was-real-an-fibgapotfo/ I also made a #Jesus #App where you can basically talk to jesus, say a little about yourself what’s on your mind and get an answer from Jesus in his own voice. Here’ a follow up to my dog getting away story : https://cookup.ai/o/my-wife-is-not-speaking-to-me-because-our-dog-ki-hqta9dh4of/ and here’s when my friend asked him about pot : https://cookup.ai/o/is-it-wrong-to-smoke-weed-jesus-68wx0awsbq/ (btw ask the same question to one of the bad characters above, see for yourself) here’s the app if you want to try with your own prompt : https://cookup.ai/a/jesus-8ogjcelj/ jumping straight off from #Jesus to #Prayer , here’s a christian prayer generator that i used for my buddy i met here : https://cookup.ai/o/a-prayer-for-nate-a-20-year-old-model-from-canad-xkizgkbgr7/ generate your own here : https://cookup.ai/a/christian-prayer-dvpsamjl/ obviously if you have christian prayer you should provide sabbath prayer too : https://cookup.ai/o/no-quorum-family-sabbath-speech-about-importan-1deslxbnxv/ and the #FridayPrayer app from the Imām Jamā'ah perspective : https://cookup.ai/o/a-small-congregation-friday-prayer-to-inspire-chxufstfyf/ prayer is not something but guided (and purposeful!) meditation is something i do all the time, so of course there’s an app for that. here’s one for body awareness : https://cookup.ai/o/i-want-to-meditate-to-be-more-aware-of-my-body-soc5sfuash/ use the guided meditation app here: https://cookup.ai/a/guided-meditation-rofajuas/ run the output through an AI voice synthethiser and tell me what you think. I also made some apps for domestic work. This app create a custodial plan : https://cookup.ai/o/3-bedroom-apartment-with-dirty-kitchen-and-messy-kaom7o5y0a/ just provide context and recieve a full custodial plan here : https://cookup.ai/a/domestic-work-custodial-plan-6wuakn3x/ this one helps with utilities planning : https://cookup.ai/o/three-bed-room-appartment-75sq-m-with-three-peop-diurfiqn9n/ Something folks have to do frequently is to figure out how to fix something : https://cookup.ai/a/fix-anything-v3skyurn/ here’s an example for a car : https://cookup.ai/o/fiat-punto-engine-suddenly-stops-after-chec-u3qwslph2s/ an here’s an example with power cable : https://cookup.ai/o/lenovo-legion-my-power-cable-doesnt-quite-cha-h0d2qugcv2/ and someone else with a similar problem : https://cookup.ai/o/cellphone-bison-no-power-fix-anything-0kkkuvyjqt/ and of course the gardening and landscaping applications. This is the output for a small urban garden in paris : https://cookup.ai/o/small-urbad-garden-in-france-35-sq-meters-lot-6f0jtvo359/ try it out for yourself and your latitude here : https://cookup.ai/a/domestic-work-gardening-plan-u5xk02lt/ this is a similar application but with a different flavor : https://cookup.ai/o/small-urban-garden-in-france-35-sq-meters-lot-rzjfsvwhxy/ just use the one where the output is more like what you’re looking for, really you need both though . Test it out here : https://cookup.ai/a/domestic-work-gardening-plan-wxxzfyke/ if you’re not gardening you might be landscaping so here’s the app for that : https://cookup.ai/a/domestic-work-landscaping-mziklqys/ here is the output for a small urban garden : https://cookup.ai/a/domestic-work-gardening-plan-wxxzfyke/ my favorite application so far has been the plant diagnosis app : https://cookup.ai/a/bulbi-plant-doctor-and-diagnosis-afy3abra/ it’s really surprising how well it works , and the breadth of assessment and remedies it suggests. Here’s an example for a sick cactus : https://cookup.ai/a/bulbi-plant-doctor-and-diagnosis-afy3abra/ (now it’s doing better) here’s an example from when someone tried it for cannabis : https://cookup.ai/o/purple-punch-cannabis-strain-it-has-brown-spots-krlteavvzs/ i dont know if i would actually follow that suggestion actually. Worked perfectly for a Meyer Lemon Tree giving plant-specific advice that you would have got from a local expert : https://cookup.ai/o/meyer-lemon-tree-its-about-15-years-old-and-fiqlyuvtrk/ the plant diagnosis worked so well that i did make a people doctor app : https://cookup.ai/a/doc-the-health-assessment-at-home-adqqqnd3/ it’s a bit more complicated and the quality of the outputs really depends on the quality of the inputs , so if you use this app, make sure you write in complete sentences and try to answer every question and aspect. here’s the output for a 50 year old man with an upset stomach : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ here’s another for a woman of a certain age : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ and finally an assessment for a respitory issue : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ i’m quite satisfied with that output suggesting a comprehensive evaluation by a board certified doctor. Another app in this category i the Pet Vet App. It’s meant as an assitant for folks that might need help with their pets : https://cookup.ai/o/name-roxanne-mix-race-dog-less-than-6kg-b3fja6tzrz/ that’s an example for my dog. Try assessing your pet here : https://cookup.ai/a/pet-vet-9ruwhazw/ Another important app is the Therapy app : actually in term of professions the Legal profession stands to be disrupted by crowdsourced jurisprudence based models . These apps wont do that. This app will produce a legal brief : https://cookup.ai/a/lawyer-juhp36s1/ Here it produces a legal brief for the presale of replacement organs : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ This Legal app takes another perpective to produce a legal approach and strategy : https://cookup.ai/a/board-member-legal-6uhjs7vh/ here’s an example output following up on the above: https://cookup.ai/o/how-can-i-assure-that-only-medical-need-is-consi-bc4llonmtz/ you can also use this app for a legal appeal : https://cookup.ai/a/legal-appeal-y6e4u8ke/ here’s an example from an international appointee to a board being asked to step down : https://cookup.ai/o/im-being-asked-to-step-down-from-a-board-howev-q6ep24xtev/ Another legal app produces a O-1 visa letter for someone. Here’s an example from @OliviaLi , actually she was the inspiration for this app : https://cookup.ai/o/technology-entrepreneurship-olivia-li-winner-o-caykzfcn2v/ thank you for using this app , hope you had a laugh with it :-) another example from my model friend i met in paris : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-83iuepjtrl/ try it out for yourself here : https://cookup.ai/a/legal-o-1-petition-s2ksioxe/ Then I made a few content apps for legal contracts , for example this app produces company statutes like so : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-d01rumxrud/ try it out here : https://cookup.ai/a/legal-company-statutes-ooshm9sb/ This app makes a pre-nuptual agreement https://cookup.ai/a/legal-prenuptial-agreement-hjlzflpq/ try it out ! example output using my personal context : https://cookup.ai/o/were-a-young-couple-in-paris-france-claudia-an-bqkbwsom5g/ & here is the same context above for a divorse agreement : https://cookup.ai/o/were-a-young-couple-in-paris-france-claudia-an-8oqd9buhez/ try the divorse agreement app here : https://cookup.ai/a/legal-divorce-agreement-3oy1zxae/ Another tool is to produce Service Level Agreement https://cookup.ai/a/legal-service-level-agreement-kzfzu7rp/ here is an example output taking cookup ai as an example : https://cookup.ai/o/i-provide-artificial-intelligence-augmented-publ-70klxz1kly/ I made a sales contract generator too : https://cookup.ai/a/legal-sales-agreement-z5dohfko/ here’s an example output for a GIS consultant : https://cookup.ai/o/im-a-consultant-in-paris-france-selling-consul-cf43seks35/ this one makes a Loan Agreement : https://cookup.ai/a/legal-loan-agreement-swrd36a3/ here’s an example “ from james to kian in paris france for the sum of 30.000 euros to be repaid in full using a payment plan over two years” https://cookup.ai/o/from-james-to-kian-in-paris-france-for-the-sum-o-l9zowv3nv5/ There’s also a Leasing Agreement Generator that jurists or companies can use : https://cookup.ai/o/were-a-commercial-leaser-leasing-our-commercial-odowjna03d/ that’s an example , click “generate another” to make your own. Something folks can use is a co-residency agreement, among housemates for example : https://cookup.ai/o/nate-james-richard-and-elleanor-want-to-live-w-vobrwfsjjr/ I also made an employment contract generator for companies to use. Here’ an example for a post-doc level biofabrication person https://cookup.ai/o/post-doc-research-associate-chemical-and-biolo-memxrznsrf/ i added the job description as the input. Speaking of jobs, this app is one of the more popular ones : https://cookup.ai/a/career-planner-47fl3oss/ just give context around what you’re after who you are , that sort of thing and it will provide a career plan by selecting professions giving you key information on these professions and advice on what you need to do to get there. It also works great if you search professions by name : https://cookup.ai/o/product-management-career-planner-5t9oqpfgvr/ here’s one for “Introvert wants to be a doctor” https://cookup.ai/o/introvert-wants-to-be-a-doctor-career-planner-7rdcxeu3d6/ Get to know yourself better by taking famous self assesments . Here’s an example for RAISEC and OCEAN self assessment models (ref. Holland) : https://cookup.ai/o/what-brings-me-joy-is-cleanliness-organisation-mle213ruw0/ another way to work with 5 Factor models is by using Myers-Briggs Questionaire, here’s an example for an INFJ (Introvert, Intuition, Feeling, Judgment) , it also suggests compatible personalities, so check it out for yourself here : https://cookup.ai/a/career-myers-briggs-questionnaire-geiq2x20/ once you’ve figured out your path you might want to generate a motivation letter. here’s an example for a banking job with the cv copy pasted as input https://cookup.ai/o/royce-lopez-roycezlopezgmailcom-916-566-61-tubooat7y2/ once you’ve done your self assessments, you might want some career advice , so check out this app https://cookup.ai/a/career-coach-57m4zqp4/ see this example from my buddy nate to give you an idea : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-uxnxhj490e/ Another app that i’ve found nice is the career advisory service : https://cookup.ai/a/career-advisor-tdfuppp6/ it really produces a very interesting and robust output as you can see here : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-oaxcq3gfki/ sometimes you have to analyse a policy , so here’s an app that speaks every language and can do it aptly, with an example in french : https://cookup.ai/o/la-strategie-de-non-cession-des-droits-est-un-ou-lmdagmgiit/ just copy paste a description of the policy here : https://cookup.ai/a/policy-brief-analysis-gjurd2a1/ and an example in english for “private-sector employees' basic pensions” https://cookup.ai/o/in-france-private-sector-employees-basic-pensi-hirervbjrg/ sometimes you need your brief in a specific UN format , so here’s an example from the Idaho shootings : https://cookup.ai/o/cnn-in-the-weeks-after-four-university-of-id-qrh44i41ap/ copy and paste the situation and context here to see for yourself : https://cookup.ai/a/un-brief-vgqpmfni/ this app is more of a shortform straight forward flavor of political brief , here’s an example from the US house of representatives : https://cookup.ai/o/but-its-worth-noting-that-the-house-speaker-vot-nxg6fsalti/ copy and paste a news article here : https://cookup.ai/a/policy-brief-mbfdqxqe/ Another type of assessment is the civil engineering asssessment : https://cookup.ai/a/civil-engineering-hubmgasv/ here’s an example for a fantasy company that has a smelting plant and produces biological agents: https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-db77jqouqt/ that sounds a bit scary doesnt it ? so here’s an app for risk assessment and business continuity planning : https://cookup.ai/a/business-continuity-planner-nck1c6gg/ just describe your situation the best way you can and press “generate” , here’s an example from the company above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-d6vzx0trmh/ You can also use the safety and security assessment app : https://cookup.ai/a/safety-security-assessment-2u8ncxay/ here’s an example for a small company : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-pzgl1jcd5u/ and an event : https://cookup.ai/o/were-a-medium-sized-event-of-250-people-outdoor-vz7kpmzyf8/ If you’ve ever had to respond to an incident you’ve had to produce a sitrep , which is a description of the situation : https://cookup.ai/a/emergency-response-sitrep-za6akgeo/ just follow the inputs and answer in complete sentences for best results. This is to be used by responders to an emergency . It’s resilient to empty inputs and shorthand writing in case you’re really in a rush : https://cookup.ai/o/a-6-year-old-child-was-running-downhill-in-the-p-mbwp0ohmp1/ sometimes you need a bit less than that so you can use this tactical brief application : https://cookup.ai/a/tactical-brief-jnoigckz/ here’s the output for the example above so you can see the difference : https://cookup.ai/o/a-6-year-old-child-was-running-downhill-in-the-p-n1whm5izmf/ here you can see the special flavor it has : https://cookup.ai/o/the-dog-escaped-and-might-have-gone-a-westward-d-ub2zqp2lik/ if you like this kind of tactical stuff, you’ll really like this one : RedTeam / GreenTeam and BlueTeam . Red Team is an offensive plan : https://cookup.ai/o/take-over-a-gas-station-with-5-team-members-wh-zxzfbg2m9e/ this one for a gas station in ukraine. Blue Team is a non-lethal operation planner : https://cookup.ai/o/protect-a-gas-station-from-looters-blue-team-uhit1lboe1/ that’s an example to protect a gas station. Green team is the defense operations planner : https://cookup.ai/o/protect-a-gas-station-from-looters-blue-team-uhit1lboe1/ try your own here : https://cookup.ai/a/blue-team-gassdypa/ You’ll also need this one : a load out app based on your mission. Here’s an example for taking over a gas station in ukraine : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-ukraine-l-elk5hbpqqo/ here’s the example for russia : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-russia-lo-r5j1qjbgx3/ notice the subtle load out differences : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-france-lo-4j08n3htnv/ this example is from a NATO country. Do your own here : https://cookup.ai/a/loadout-5ign0mqm/ Another example is video games, where you need to build up a character and their items and so on, that’s also a loadout : https://cookup.ai/a/loadout-for-games-h6jmwlzp/ here’s an example from call of duty 3 : https://cookup.ai/o/i-want-to-play-as-a-sniper-in-call-of-duty-ca-gypil6uq7c/ here’s an example for a DnD dwarf : https://cookup.ai/o/a-goblin-in-dungeons-and-dragons-dnd-charact-k8pgmiag7n/ On the topic of games here’s one that makes a game : https://cookup.ai/a/gamer-make-a-game-xzg7wy2x/ here’s one inspired by munchkins: https://cookup.ai/o/medieval-theme-in-the-style-of-munchkins-gamer-yt4ebrqakm/ maybe that would be a good starting point if you’re actually making a card game. maybe you want to make a board game board game , this is an example still sticking with the munchkin vibe : https://cookup.ai/o/medieval-theme-in-the-style-of-munchkins-board-19k2vhmnhr/ try it out for yourself here : https://cookup.ai/a/board-game-mpovs8d7/ another fun app that’s quite useful for folks is the sound selection aid . here’s an example for dusty drum and bass : https://cookup.ai/o/drum-and-bass-downtempo-dessert-sounds-soun-wkmi4uzp37/ and here’s one for “mexican” : https://cookup.ai/o/mexican-sound-selection-aid-xkkgynfdim/ quite a simple input for a very rich output. hope you enjoy it. Another app i think is quite nice is the music lesson app. This is more a lesson planner for a music teacher, but good learners can probably use it too. here’s one for guitar that someone learning guitar made : https://cookup.ai/o/guitar-rock-practice-finger-style-and-the-cag-lph7ijp2a9/ here’s one for tabla that someone made : https://cookup.ai/o/tabla-20-musical-exercise-f215k23ual/ very cool choice of instrument ! Check it out here : https://cookup.ai/a/musical-exercise-tzftq3tw/ Another couple apps i made for music is Chord Progress and GAS-AI . Chord Progress proposes a chord progression based on your input and describes each chord for inspiration. Here’s an example for Blues : https://cookup.ai/o/bbm-piano-blues-downtempo-shuffle-chord-ruzwhdikcy/ really rich output. This one used it to make chords into a midi file : https://cookup.ai/o/generate-a-chord-progression-in-bbm-143-bpm-in-t-5nvoej1xkg/ really cool stuff ! here’s an example for a different style of music : https://cookup.ai/o/moody-dark-under-the-rain-upbeat-fast-beat-guen4tlqax/ try it out for yourself here : https://cookup.ai/a/chord-progress-9udstlsz/ One of my apps where people are actually using it and it makes me laugh is the Gear Aquision Syndrome app : GAS-AI . Basically it compares what all you’re considering to buy and evaluates them for you. Here’s an example for a sound card and interface with four possibilities https://cookup.ai/o/audio-interface-into-the-force-hello-im-ne-xelttc5qhn/ here’s a similar problem : https://cookup.ai/o/i-need-a-audio-interface-and-digital-mixer-hybri-qpgshbesyq/ try it out for your own gear : https://cookup.ai/a/gasai-gear-acquisition-syndrome-eky3hejx/ it actually works for everything : here is a sofa : https://cookup.ai/o/should-i-buy-a-sofa-or-a-recliner-for-my-living-4vxyuue27t/ try it with drills or power tools. Lots of really interesting education and learning related apps are possible. Here’s one for a Lesson Plan, I made it with K-12 in mind, but you can push the level with the right subject matters, it all depends on your input. Here’s an example for social studies grade 3 : https://cookup.ai/o/social-studies-goods-and-services-grade-3-30-b5ftwlpx7t/ here’s one for a scientific method lesson for teenagers : https://cookup.ai/o/lesson-plan-for-k-12-classrooms-id7kfpvovw/ and here’s one that a parent used as inspiration for a science fair project: https://cookup.ai/o/lesson-plan-for-k-12-classrooms-id7kfpvovw/ try it for yourself here : https://cookup.ai/a/lesson-plan-for-k-12-classrooms-nuzysbgl/ another classroom friendly app is the lab report app : just copy and paste a protocol or your unstructured text and see. Here’s one that’s for an ezyme experiment : https://cookup.ai/o/enzyme-experiment-materials-potato-test-tube-smztw5xrsy/ And another for a physics experiment : https://cookup.ai/o/highschool-physics-materials-jumbo-craft-sti-obgtuvdwew/ try it for crispr or other more complex experiments to have a jumping point for your own journaling here : https://cookup.ai/a/sci-doer-lab-report-muaibwee/ Another one i like is generating protocols for any experiment. The simpler the better and the more precise the input the better the out. Here’s one for the science fair digestive system : https://cookup.ai/o/construct-a-model-of-the-digestive-system-4th-gr-fbfmyz4vgu/ (just an inspiration) see this one for CRiSPr : https://cookup.ai/o/crispr-sci-doer-protocol-generation-nmwk1m2t7g/ here’s one to take nasa data and annotate it : https://cookup.ai/o/develop-an-app-that-uses-data-from-the-telescope-xfautgpyx6/ try it out for your own experiments here : https://cookup.ai/a/sci-doer-protocol-generation-atlu2ygw/ Sometimes you need an arts & crafts activity on the go. Here’s an example for a basic activity : https://cookup.ai/o/we-are-three-adults-with-scissors-cloths-pap-swdxlqq9si/ try it for yourself here : https://cookup.ai/a/arts-crafts-kglkhms5/ Another way to get inspiration for activities is the Extramural Center activity app , here’s an example for a small group and a selection of activities : https://cookup.ai/o/6-13-year-olds-with-a-handicap-indoors-education-7t0xeyrqpe/ try it for yourself with your own context here : https://cookup.ai/a/extramural-activity-wrd76vaq/ There’s another app i made which i like a lot which is a physical activity generator : https://cookup.ai/a/k-12-physical-activity-inspiration-7baaoy3k/ . See this example for a parachute game : https://cookup.ai/o/for-10-9-12-year-olds-with-limited-but-available-sfhulfohfy/ or this one for a team game : https://cookup.ai/o/for-10-9-12-year-olds-with-limited-but-available-sfhulfohfy/ Sometimes you need to break the ice before you start activties : check out the ice breaker app . Here’s an example for a group of adults : https://cookup.ai/o/a-small-get-together-of-work-collegues-ages-24-rxoz9wxyz8/ here’s a list of activities for young people : https://cookup.ai/o/a-gathering-of-a-highschool-group-of-18-people-a-hafttbbr78/ get your own instantly by prompting it here : https://cookup.ai/a/icebreaker-activities-ot0nm5cr/ you know how you need to make team names sometimes ? this one makes those team names with each letter of a word : example for NATE : https://cookup.ai/o/nate-acronym-poem-tto3zblpft/ and TARANJEET : https://cookup.ai/o/taranjeet-acronym-poem-muuoowigr7/ Another App I made was the swimming plan app, based on your context and objectives, you’ll get a custom swimming plan : https://cookup.ai/a/swimming-plan-2dkanocy/ Here’s an example for a young adult trying to get back in shape : https://cookup.ai/o/young-adult-strong-swimmer-just-to-get-back-in-c3o14kl0ys/ It also works in multiple languages, for example here in french : https://cookup.ai/o/jeune-adultes-objectif-sante-et-bienetre-d-l8y20i0v9d/ For fitness I also made an app to propose a session for you : https://cookup.ai/a/fitness-daily-exercise-routine-g2p9m845/ here’s an example with a high level of cardio : https://cookup.ai/o/nate-20-years-old-cardio-and-weights-with-stretc-zukgek1gfs/ here’s another with multiple days : https://cookup.ai/o/nate-20-years-old-weights-and-cardio-mix-fitne-szedbsxokb/ another way to go about it is to vary week on week, so here’ a weekly fitness planner : https://cookup.ai/a/fitness-plan-weekly-sessions-wejju67t/ here’s an example using me : https://cookup.ai/o/34-years-old-strength-and-weights-training-for-f-43aasmnpvh/ here’s a prompt i actually copied from someone on cookup : https://cookup.ai/o/can-you-generate-a-30-minute-exercise-routing-fo-16sickeywn/ here’s another fitness app that combines daily and weekly fitness plans : https://cookup.ai/a/fitness-exercise-plan-o6qwdf1n/ check out an example for Nate : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-serzfqqdqx/ here’s another with a different goal : https://cookup.ai/o/nate-20-years-old-weights-and-cardio-mix-strengt-c80fwhwhyy/ since we’ve done weekly we need a monthly fitness plan app : https://cookup.ai/a/fitness-plan-pxmtjqvu/ this is an example taken from me : https://cookup.ai/o/34-goal-fitness-objectives-endurance-ve-6h1vmi8gly/ and another with the previous cookup ai prompt : https://cookup.ai/o/34-goal-fitness-objectives-endurance-ve-6h1vmi8gly/ Another fun app is the Planner : https://cookup.ai/a/planner-yad83kfl/ here’s an example for three people that want to meet : https://cookup.ai/o/claude-francois-and-patrick-need-to-meet-for-on-gysvpwfygo/ it helps you set an agenda and generate a ics file to add to the calendar . here’s one someone made for a specific company : https://cookup.ai/o/dynatrace-introduction-sales-team-of-the-provid-fiwtrwjstk/ you can even use it to plan a board meeting. Try inviting these AI board members that will give you pretty decent advice. Here’s one for strategy : https://cookup.ai/a/board-member-strategy-alpfxrpb/ for example with the manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-gshmrgjirt/ here’s a similar one that’s from McKinsey : https://cookup.ai/a/board-member-mckinsey-127uxtci/ with the same manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-xe3cuyc2lb/ every boad needs a business process expert : https://cookup.ai/a/board-member-process-analysis-r1pyxnum/ here’s an example from the same manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-f9uqctyz7w/ A really useful one is the financier app : https://cookup.ai/a/financier-etv18bpn/ basically copy paste financial information , for example some passages from a K-10 : https://cookup.ai/o/during-the-nine-months-ended-september-30-2022-spabcn6lyw/ There’s more to business than advisory and analysis , though. In some roles you have to make product requirement documentation in specific formats. This app does that for you : https://cookup.ai/a/product-feature-requirement-qqjkmaoo/ and with an example from cook up : https://cookup.ai/o/write-product-requirement-doc-for-group-feature-mbpagiwqq3/ here’s one to create a payment system : https://cookup.ai/o/product-requirements-document-donate-feature-in-bdwwatb1tb/ very rich output indeed. In entrepreneurship you often need to find someone for doing a specific job. This app reccomends folks for your jobs : https://cookup.ai/a/expert-finder-find-the-right-person-for-the-job-wyzwrgkr/ here’s someone that used it to fix the smell in their bathroom : https://cookup.ai/o/smell-in-the-bathroom-fix-the-issue-of-bad-smel-vqxckk7rju/ another example to host a meeting : https://cookup.ai/o/i-need-to-host-a-board-meeting-in-the-washington-kqhzzronur/ Here’s an app to create a logistic plan : https://cookup.ai/a/logistics-planner-tavpycje/ i tried to help me transport the mona lisa from paris to my garage in new york https://cookup.ai/o/i-want-to-transport-priceless-art-from-the-louvr-uultjyh7jn/ here’s another example for transporting organs using UAVs : https://cookup.ai/o/i-want-to-deliver-organs-via-uav-from-suburbs-to-abfyqdi617/ Probably to run this whole thing you will need an operations plan : https://cookup.ai/o/a-biofabricated-organ-donor-chain-is-a-donation-epnwff8cln/ just input as much information as possible and see for yourself : https://cookup.ai/a/business-operations-planner-zshf1qji/ You might need to create a business information model to integrate business opertions . This application gets you started : https://cookup.ai/a/business-information-model-mgvydoqk/ here’s an example for a biofabrication company : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-jqclaoslhl/ here’s the same example , but a bit more descriptive : https://cookup.ai/a/business-information-model-mgvydoqk/ came out really nice ! The most difficult part of the entrepreneurship for me was always the business modelling . Here’s a business model app : https://cookup.ai/a/business-model-lkhqn3wd/ just write in freeform what you need to analyse. Here’s an example for a biofabricated organ : https://cookup.ai/o/crowdfunding-presale-of-biofabricated-heart-orga-qr6bfw76an/ and another with the same example: https://cookup.ai/o/presale-of-biofabricated-organs-classified-as-me-rfrxryuq3w/ btw here’s a tribute app to Hal Varian : https://cookup.ai/a/hal-varian-micro-economic-analysis-w1rmg53t/ to assess the microeconomics of anything https://cookup.ai/o/an-employment-contract-between-a-biotech-company-zsdm8hg296/ One of my most popular apps is the Structure a Business Idea App : https://cookup.ai/a/structure-a-business-idea-hrsr09vb/ here’s an example for a No Code Agency : https://cookup.ai/o/no-code-agency-we-help-business-to-innovate-fas-dv4i9iu0dn/ here’s an example for a biotech : https://cookup.ai/o/services-to-prevent-potential-drug-drug-and-drug-ubbghudjas/ here’s one for a sustainability platform : https://cookup.ai/o/building-a-platform-which-improves-sustainabilit-vmypophtwt/ the more your write as input the better the output, usually . The king of apps when it comes to this stuff is MindMap : https://cookup.ai/a/mindmap-create-structured-thoughts-r9sqgmca/ just write your unstructured thought in freeform and it will structure them and improve the overall idea. Here’s someone that tried it for backcountry permits in Yosemite : https://cookup.ai/o/getting-a-backcountry-permit-in-yosemite-mind-g3lykluvfs/ Another used it with the simple word “evolution” https://cookup.ai/o/evolution-mindmap-create-structured-thought-ao6cg3isi0/ here someone used it to explain prefect tense in french : https://cookup.ai/o/explaining-the-prefect-tense-in-french-mindmap-jw4olzfae0/ normally you would be writing your full thoughts in freeform , but here you see someone use it for university analytical work : https://cookup.ai/o/community-college-transfer-rates-black-students-f54vui1fyg/ once your idea is structured the idea would be to have it evaluated by a VC. This app does just that : https://cookup.ai/a/venture-capitalist-0rkcu6yu/ here’s an example from UAE : https://cookup.ai/o/licenses-reseller-for-dynatrace-in-uae-ventur-s2jywjfwiq/ here’s someone who asked a question about monetizing spreadsheet apps : https://cookup.ai/o/how-do-i-monetiseai-spreadsheet-assistant-busine-y7ap37qm53/ here’s another for a fashion business : https://cookup.ai/o/an-apparel-business-that-has-robot-characters-fr-92hk5rlov4/ here’s an example with a better prompt : https://cookup.ai/o/in-addition-to-reducing-wait-times-and-rejection-mgtfgosmqz/ you might not be an entrepreneur, you might be applying to a job, here’s an app to help you prepare : https://cookup.ai/a/the-interviewer-siqzfsms/ here’s an example for a humanitarian logistics role in bangladesh : https://cookup.ai/o/for-a-senior-humanitarian-worker-in-bangladesh-i-pqnfamlscb/ just copy and paste the job description it should work quite well. Another important activity for folks is financial planning. Actually , you can also produce a job description with the Job Description App : https://cookup.ai/a/business-job-description-wz1xuwks/ here’s an example for a chemical engineer : https://cookup.ai/o/regenererex-we-are-a-life-sciences-company-pio-kjz06bwis9/ This app helps you build a personalized financial plan based on your personal context : https://cookup.ai/a/financial-plan-6vkrersy/ here’s a general example for “single guy 36 working in software in boston“ https://cookup.ai/o/single-guy-36-working-in-software-in-boston-f-f49z9icuh9/ here’s a more specific example for my buddy Nate : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-fmmzn6ftle/ a Financial Plan is great but you will eventually need a financial program. These are different things! Check it out here : https://cookup.ai/a/financial-program-1uro0zlw/ here’s the example from Nate, above : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-y5co3ijtfz/ very nice output, it’s more advisory and actionable in nature. When i met my wife she was a fashion designer. That’s the inspiration for the Seamstress App : https://cookup.ai/a/the-seamstress-so4chhgu/ just enter a prompt and generate a description of the clothes . Here’s an example for a Dune inspired dress : https://cookup.ai/o/an-off-white-dress-for-my-wife-size-0-172cm-in-t-07kzxl8p5x/ here’s one in french for a princess dress : https://cookup.ai/o/robe-de-princesse-medievale-the-seamstress-vb8gedk2s1/ Then you take that , and feed it to make a sewing plan : https://cookup.ai/a/sewing-plan-7qtvyvs6/ here’s the example of the Dune dress : https://cookup.ai/o/this-off-white-dress-is-the-perfect-fit-for-a-fu-s8y2dahrtz/ and the princess dress : https://cookup.ai/o/cette-robe-de-princesse-medievale-est-une-piece-82hrc38ghe/ but nowadays everything is done on computer , so i made an app to take the sewing plan and make the digital figures required by most modelling programs : https://cookup.ai/a/cutting-planner-p19jna69/ it’s basically the cutting plan, here’s from the example above : https://cookup.ai/o/cutting-plan-description-fabric-size-znhvevhg12/ just save as json. Here’s from the Dune dress : https://cookup.ai/o/cutting-plan-1-cut-2-pieces-of-off-white-fabri-fgrc6qtjuv/ a couple of other fun apps are the interior design and architecture apps. Interior design : https://cookup.ai/a/architect-interior-design-syh8zp1w/ see and example for a living room : https://cookup.ai/o/salon-pour-recevoir-jouer-un-violon-et-un-pi-7tbtc6sovh/ and another : https://cookup.ai/o/salon-pour-recevoir-jouer-un-violon-et-un-pi-8dkos9cbij/ interior is one thing but architecture is another : https://cookup.ai/a/architect-plan-cfqptnfv/ just describe the building style you want to get an architectural brief : https://cookup.ai/o/stone-facades-plain-or-ornamental-black-wrought-cozocyzghu/ this is the analysis for hausmann architecture based on a simple description. great success. The marketting apps, is what a lot of the audience has been asking for. Here’s one to make a marketting plan : https://cookup.ai/a/marketing-plan-2tmso3ol/ it actually works great ! here’s an example from a single person accounting firm : https://cookup.ai/o/i-am-an-engineer-by-training-cfa-charter-by-pro-j7oazivrrx/ here is an example for a replacement organ producer : https://cookup.ai/o/founded-in-2009-we-are-one-of-a-small-group-of-uwivyeviad/ great stuff, high value outputs, i’m happy. When you’re doing marketting one important thing to do is to target the customer and audience. This is the targetting app for that : https://cookup.ai/a/marketing-targeting-qtghe0tp/ here it is evaluating a campaign that might be misaligned : https://cookup.ai/o/cookup-ai-is-a-no-code-agency-that-has-produced-pg9ftxk4x9/ here is an example for a single person accounting firm : https://cookup.ai/o/i-am-an-engineer-by-training-cfa-charter-by-pro-cg0diw81ce/ here for a manufacturing firm : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-naxtgab0ct/ it really depends on the quality of your inputs the outputs you will recieve . Once you have targetted your audience , you need marketting copy , try this app : https://cookup.ai/a/marketing-copy-write-anything-dxg3xt5n/ based on the input you give it will generate unique marketting copy . Here is an example for a pharmaceutical firm : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-guov5olrsg/ here is an example for a commercial message : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-3diho4thzd/ once you have published your marketting copy you need to follow up with sentiment analysis to see how folks are responding to it. Analyse the sentiment of anything with this app : https://cookup.ai/a/marketing-sentiment-analysis-tcdxotks/ here’s an example from a negative case (trigger warning) in Dutch : https://cookup.ai/o/een-interessante-zedenzaak-een-man-heeft-seks-xesooct1se/ here is a positive example in chineese language : https://cookup.ai/o/-7lv1hk1sqy/ Another important marketting activity is conducting and analysing survey data. HEre’s the survey app : https://cookup.ai/a/survey-unstructured-data-analysis-z4te4jwu/ basically what you do is copy paste your unstructured data directly inside it and it will produce a full assessment of what you need . Sometimes you need to write a profile for yourself optimized for commercial activities. Here’s a Marketting profile app : https://cookup.ai/a/marketing-profile-description-ctg0tkhm/ from our example above : https://cookup.ai/o/38-years-male-i-am-graduate-from-iit-delhi-cf-nkbh2uc1ri/ another profile but written in first person view : https://cookup.ai/o/38-years-male-i-am-graduate-from-iit-delhi-cf-nkbh2uc1ri/ but sometimes you need to make these profiles for SEO optimization. Here is an example from above : https://cookup.ai/o/profile-description-saurabh-garg-is-a-cfa-charte-uih63jefeb/ or for an enterprise : https://cookup.ai/o/solving-for-nri-india-banking-hate-seo-7ny64vlycn/ check it out for yourself here : https://cookup.ai/a/seo-fuxlixw3/ sometimes you need to produce SEO-optimized copy , Try using this app i made for that : https://cookup.ai/a/seo-optimized-text-wjcj5xtg/ basically you should paste your text in there and it will optimize it for engagement for you. here’s an example : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-vwrlfkv460/ hope you like using it ! Sometimes you need to convert something into an SEO optimized text, here’s an app for that : https://cookup.ai/a/seo-convert-oew8gazp/ For example for a lifesciences company : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-a9wiygvvhx/ here is a re write for a text about a building in Paris : https://cookup.ai/o/le-complexe-architectural-de-la-cite-de-la-musiq-bf0zfeylgj/ try it out and tell me what you think. You might already have the text you want but need hashtags, check out this app : https://cookup.ai/a/hashtag-generator-glj4cvx0/ here’s an example for a crowdfunding campaign : https://cookup.ai/o/crowdfunding-campaign-biofabricated-organ-donor-th8fgrddjm/ and the same campaign but in Spanish : https://cookup.ai/o/crowdfunding-campaign-biofabricated-organ-donor-gfxmzmyojk/ Marketing is actually a pretty diverse job , so sometimes you have to design media like videos and so on. This app is the scenario maker : https://cookup.ai/a/scenario-sacr0cs5/ you can use to make advertisements : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-dwoaemlitf/ or actually as a writing aid. Another writing aid i made is the story arc : https://cookup.ai/a/story-arc-sbmt20if/ here’s an example for a story in paris : https://cookup.ai/o/paris-in-the-future-with-a-character-called-nate-zig4ciiqpq/ here is an example from a real writing class : https://cookup.ai/o/lamour-en-lan-3000-cyber-maltese-order-love-agzbkpx83f/ and another from the same class : https://cookup.ai/o/on-mars-in-3000-a-love-story-short-story-8hoonrhwgj/ I actually see the whole class used the app lol, how cool is that? Another app in the same style is the Text Styler app : https://cookup.ai/a/text-styler-epclawul/ here’s how it works : https://cookup.ai/o/a-biofabricated-organ-donor-chain-is-a-donation-ybzmsprdxa/ pretty cool right? it works on any text in any style. Actually one writing app that folks have been using randomly is the email writer : https://cookup.ai/a/the-emailer-hoe5yq9w/ here’s an email i wrote to TJ : https://cookup.ai/o/write-an-email-to-teejay-ceo-of-cookup-ai-to-l-fmtbqzacck/ here’s an email my buddy mamadou wrote in french in agressive style : https://cookup.ai/o/voici-les-copies-de-mes-contrats-de-travail-avan-ccwb566cex/ (btw the output is very diplomatic) here’s another example when someone is launching an AI-driven SaS company. To communicate on twitter sometimes it’s necessary to make a thread. Just copy and paste the text your want to turn into a thread here : https://cookup.ai/a/twitter-thread-maker-leffxz5w/ here’s an example for finance https://cookup.ai/o/cfa-iitdelhi-investments-twitter-thread-mak-xypbzhofsh/ another job marketters have to do in small teams is to make a design mockup for the designers. Try to make your own using this app : https://cookup.ai/a/design-mock-up-wrqoikz6/ here’s an example for “a logo of a dog for a street vending franchise “ : https://cookup.ai/o/a-logo-of-a-dog-for-a-street-vending-franchise-tuj5iduqvf/ and here for “icon of a small cute dog for client” : https://cookup.ai/o/icon-of-a-small-cute-dog-for-client-design-moc-dfnn6c0i4s/ then you take that output and make mock up instructions for producing a mockup : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-wqryxhxn9y/ try with your output here : https://cookup.ai/a/design-mock-up-instructions-gtynwwal/ then you take that output and use that in your favorite design software like Adobe : https://cookup.ai/a/design-mock-up-adobe-illustrator-jrvejfep/ here’s the example with the logo above : https://cookup.ai/o/the-mock-up-above-is-an-icon-of-a-small-cute-do-1seqvv9dog/ and just for a “dog” https://cookup.ai/o/dog-design-mock-up-adobe-illustrator-wk0t9a8ssl/ basically you take that output and save it as a *.ai file and you can open it in illustrator. Many folks also use Autocad : https://cookup.ai/a/design-mock-up-autocad-sfmvloz8/ here’s an example with the dress above : https://cookup.ai/o/beautiful-white-dress-with-hood-in-linen-st-wn9tw1coic/ and for the dog logo with the mockup output : https://cookup.ai/o/mock-up-of-doggy-daycare-service-icon-the-moc-rjxzwyadfj/ a lot of the time your mockup will be for a webpage , here’s an app to generate that : https://cookup.ai/a/design-mock-up-html-css-zfogdco8/ we’re still working on all that at cookup so there’s a fair bit of injection happening right now : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-grhmtug5h3/ sometimes for more advanced stuff, you do things in Java : https://cookup.ai/a/design-mock-up-java-8-bdf4shel/ here’s the example for the dress : https://cookup.ai/o/beautiful-white-dress-with-a-hood-in-linen-de-zmhpbjj5td/ and the website : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-ej7ao1qi32/ for most other applications you might use json files , try this app : https://cookup.ai/a/design-mock-up-json-gscyw2uw/ here’s the example for the webpage : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-mbutbcrrhw/ another pretty important activity for designers is making logos . This app makes an svg file : https://cookup.ai/a/design-tools-logo-create-svg-1aiwxrd8/ here’s the example for the dog logo above : https://cookup.ai/o/the-mockup-of-a-logo-of-a-dog-for-a-street-vendi-uvsmspphd3/ here’s another example https://cookup.ai/o/wireframe-instructions-using-adobe-illustrator-pyiov0ewwp/ i used the adobe illustrator output for that one . Remember the app for the lesson plans for the kids ? here’s an app that makes exercises based on the parameters of the lesson plan for any subject : https://cookup.ai/a/exercise-problems-kynz1tke/ here is an example for learning the french language : https://cookup.ai/o/difficult-french-adults-word-problems-3bkfl6ymlj/ here is an example with simple math problems for a 14 year old : https://cookup.ai/o/difficult-algebra-geometry-14-years-old-hldveryglw/ here is one for more difficult math problems for a 22 years old grad student https://cookup.ai/o/difficult-mathematical-reasoning-integrals-jya866uucz/ i dont know if would be able to solve these (but probably yes :-) ) Another app to do this maybe a bit better is the WorkBook app : https://cookup.ai/a/quiz-workbook-for-education-8qrs5rkl/ here’s an example for 17 year old student in 11th grade physics class https://cookup.ai/o/17-year-old-student-in-11th-grade-physics-class-747ywebagt/ here’s one for "4th grade, digestion rates https://cookup.ai/o/science-4th-grade-digestion-rates-practical-e-wl1n3swezt/ here’s another for worldwar 2 : https://cookup.ai/o/history-worldwar-2-15-year-quiz-workbook-nu9p3hvv2h/ folks have been using this app a lot actually ! Now that you have all your questions maybe you need help to solve some ? Here’s the Problem Solver App : https://cookup.ai/a/problem-solver-lrsnpcdw/ here’s an example for algebra : https://cookup.ai/o/fx-3x-3-for-x-real-and-gt-3t-3-for-t-fcap3rjn83/ here’s another for calculus : https://cookup.ai/o/let-the-interval-a-infinity-be-the-range-of-qmfbtjdgrs/ Maybe you’re a student that needs to write an essay or you need an example essay , or really, to write anything : https://cookup.ai/a/essay-writer-jv1aopmy/ this essay writter can help you write something for example on homeostasis : https://cookup.ai/o/efine-the-term-homoeostasis-and-using-examples-e-irvfwvrrhy/ or an essay on how to stop procrastinating : https://cookup.ai/o/listing-the-4-ways-to-help-you-stop-procrastina-5kkqxt00pt/ if you’re afraid of running afoul detector policies , try the detector proof easy essay app free here : https://cookup.ai/a/easy-essay-detector-proof-y9ojklov/ here’s an example : https://cookup.ai/o/on-the-topic-of-figure-painting-in-paris-easy-86vcnkq9fe/ it replaces certain letters with a nullspace then the letter to evade detection, if you’re getting a lot of symbols in the essay copy paste it into a markdown editor and they should disappear. See here since markdown is not supported : https://cookup.ai/o/how-to-avoid-plagiarism-detectors-easy-essay-n7ntedsdnn/ sometimes when you’re writing you need to argue from A to B , try it here : https://cookup.ai/a/from-a-to-b-reasoning-from-a-to-b-1jda5cyp/ here’s an example : https://cookup.ai/o/nucleotides-are-important-for-cellular-signallin-8eb9wmdan0/ try it in any subject. Conversely, you might need a counter argument for a given claim : https://cookup.ai/a/logic-counter-argument-mh23bzhc/ here’s an example for If you want to find a good job, you should work hard: https://cookup.ai/o/if-you-want-to-find-a-good-job-you-should-work-savzaceiie/ In many writings you’ll also need tables, copy paste unstructured data (ex. from a pdf ) to make a table in markdown format : https://cookup.ai/o/chemicals-peptides-and-recombinant-proteins100-3xqvttyphl/ copy paste the output in a markdown editor for best results. sometimes you want to analyse your data , check out this app , copy paste your pdf data and give context : https://cookup.ai/a/data-results-analysis-ykrjxb31/ see here the results for a blood test : https://cookup.ai/o/tsh-serum-chimiluminescence-abbott-alin-da3rkw8of0/ Let’s be honest, most folks use excel , check out this app to describe any excel function : https://cookup.ai/a/excel-9chnuveu/ enter your function in freeform to get the function : https://cookup.ai/o/a-formula-to-describe-the-date-and-time-excel-dfw434foep/ or for a macro : https://cookup.ai/o/a-macro-to-link-my-sheet-with-a-document-called-rq4ol7luzv/ actually i made a special app just for macros : https://cookup.ai/a/excel-macros-esxm4uaz/ here is an example of a complicated macro : https://cookup.ai/o/hi-i-need-a-macro-code-to-copy-the-an-adjustant-8ptt9hzlfv/ here is one for an even more complicated one: https://cookup.ai/o/i-want-to-a-excel-vba-programming-file-for-road-etdl4mkvqw/ and here is a simple one for a vinyl shop : https://cookup.ai/o/i-am-working-on-an-excel-database-of-vinyl-recor-cacxxdd4bz/ most people who actually work with formulas do so in LaTeX , this app produces LaTeX formulas : https://cookup.ai/a/latex-formula-00spf7gu/ here is the example for Bailey–Borwein–Plouffe formula https://cookup.ai/o/baileyborweinplouffe-formula-latex-formul-ktd09xaoks/ this one represents Pi : https://cookup.ai/o/displaystyle-pi-sum_k0inftyfra-fjpnjfsqkv/ this one is for social science : https://cookup.ai/o/incentive-structure-of-employment-contract-lat-hulr6ppzhu/ Actually many folks use LaTeX to write things, this app will use latex to write a preprint : https://cookup.ai/a/pre-print-latex-vy0hga2j/ this is an example for the Peter Principle : https://cookup.ai/o/the-peter-principle-summarize-pre-print-qqm2bwiugd/ here is one for Use of God in vain, Neopentecostal https://cookup.ai/o/use-of-god-in-vain-neopentecostal-pre-prin-098nsf1ari/ here is one in Spanish : https://cookup.ai/o/nergysens-en-la-industria-nergysens-pretende-w7aovgv09l/ to do any kind of research you need to do a search, but a lot of folks do systematic search , this app generates systematic search terms : https://cookup.ai/a/systematic-search-boolean-search-strings-z6ng0grb/ here’s an example from diabetes research : https://cookup.ai/o/diabetes-mellitus-patient-empowerment-systemat-8el8qpek2d/ here’s another from biology : https://cookup.ai/o/across-the-tree-of-life-systematic-search-eq4dtp8tgf/ once you find your references you need to make a bibliography so here’s the app for that : https://cookup.ai/a/bibliography-jucn4woy/ it creates a bibtex script in the format you want : https://cookup.ai/o/cheng-p-w-1997-from-covariation-to-causati-0sts6dgrae/ & https://cookup.ai/o/cheng-p-w-1997-from-covariation-to-causati-bc1wbkxg9f/ sometimes research or something else is too confusing, here’s an app to make a lay summary : https://cookup.ai/a/lay-summary-4rvs8flz/ here’s a summary of fossil fuel environmental research : https://cookup.ai/o/the-substantial-body-of-literature-documenting-aywxbutrjs/ another run about ExxonMobil : https://cookup.ai/o/the-substantial-body-of-literature-documenting-ogcsccg9rd/ Sometimes you’re looking for information not just summarizing it , so i made an encyclopedia app : https://cookup.ai/a/encaiclopedia-7cmwjq1c/ i wouldnt be surprised if encarta got GPT at some point : https://cookup.ai/o/sometimes-giants-are-smaller-than-you-think-e-tzxphjmrm4/ here’s for Kirchhoff's voltage law : https://cookup.ai/o/kirchhoffs-voltage-law-encaiclopedia-zsxhyhwh5u/ and the potter identity : https://cookup.ai/o/potter-identity-in-electrical-engineering-enc-zgtgli3ge4/ encyclopedias are cool but do you remember almanacs ? here’s the almanac app : https://cookup.ai/a/almanac-bkmwaeqj/ here’s the output for 21st of december : https://cookup.ai/o/21st-of-december-multiple-years-almanac-w4qp2c0zii/ I also made an app to create content in wolof : https://cookup.ai/a/wolof-future-xlw6gpuw/ I’ll be trying to get content creation for local languages to take off : https://cookup.ai/o/moo-di-ko-def-jangu-na-ci-sujet-ci-nii-ci-philos-ovfunzxwss/ contact me if you’re interested in that : https://cookup.ai/o/moo-di-ko-def-jangu-na-ci-sujet-ci-nii-ci-philos-w6wgkaoped/ actually AI is really good at translation, translate whatever you like here : https://cookup.ai/a/translate-remwokk4/ i translated some passages from the wolof examples above : https://cookup.ai/o/jangu-na-ci-sujet-ci-nii-ci-negritude-ci-philoso-5luudnxkim/ and : https://cookup.ai/o/negritude-ci-cosaan-yu-and-ak-cosaan-yi-daal-di-xvgj7tufcs/ Once you' can speak any language and have passed all your classes, you might want to talk to an admissions counsellor : https://cookup.ai/a/admission-whnqib7b/ here’s an assessment for a community college in california : https://cookup.ai/o/community-college-student-40-gpa-political-sc-wlfubay93c/ If you’re a star student aged 15-16 consider applying to my alma matter : https://cookup.ai/a/special-school-selector-lhr8oncj/ I’m part of the french selection commitee so it’s in french : https://cookup.ai/o/eleve-francais-15ans-1820-dans-toutes-les-matie-lrv16nvje0/ remember when you were young and you played “who would win” in a fight ? here’s the app for that in case you need it : https://cookup.ai/a/who-would-win-tssvciza/ here’s the example for : a boa constrictor & cat https://cookup.ai/o/a-boa-constrictor-cat-who-would-win-mw2prpyiid/ and archbichop desmond tutu vs marie curie (Dr. Curie wins) https://cookup.ai/o/archbichop-desmond-tutu-marie-curie-who-wo-qzqgt6dt5d/ Folks love going on trips. Use AI to help plan your iterary https://cookup.ai/a/trip-planner-little-routurier-a2azneqe/ here’s an example for baroque art in Malta : https://cookup.ai/o/la-valette-malta-busy-trip-baroque-music-for-latxxdvlbp/ here’s an example for paris for 4 days : https://cookup.ai/o/paris-france-for-4-days-trip-planner-little-6hgvyzaagl/ and 5 days : https://cookup.ai/o/paris-france-for-5-days-trip-planner-little-qqcuhtdqzl/ what should you bring on your trip ? good question, try this app : https://cookup.ai/a/what-to-bring-kswnufpq/ here’s an example from normandy in february : https://cookup.ai/o/im-going-on-a-day-trip-to-the-beach-in-normandy-1mrn6vmkvd/ If you’re travelling or have an email box , you should be careful for scams . Here’s the scam detector app : https://cookup.ai/a/anti-scam-detector-p1kjgvjw/ just copy paste or describe what you’re seeing, here’s an example for a tax scam in the uk : https://cookup.ai/o/foraoternh8uogeowebnefirqupeizsaotnoi34hus-4wpf1jxnma/ and an email upgrade scam : https://cookup.ai/o/c12-outlook-dear-user-all-hotmail-customers-ha-hlf2awn30x/ I also made an app to debunk conspiracy theories and fake news : https://cookup.ai/a/debunker-apx1db8w/ here’s an example for mangoes cure covid : https://cookup.ai/o/la-mangue-gueri-la-covid-19-debunker-6hs4nlxhjr/ and that the vaccine is a conspiracy : https://cookup.ai/o/le-vaccin-covid-est-un-complot-debunker-zjwbaeuxpx/ the most interesting one is the bomb plot from congo : https://cookup.ai/o/httpsaupicinfoscomnord-kivu-explosion-dune-0rsx2gdxud/ just from the URL input it produced something really quite well done. Another app i made is the conspiracy theory creator : https://cookup.ai/a/russophile-k9zjyymf/ i called it russophile because everything russian is just garbage fakes lol , here’s an example for “Jewish Nazis From Ukraine Smoking Pot And Building Underground Biolabs To Engineer Mosquitos To Target Ethnic Slavs In Russia Guess The Rest Of Them Were Like Whatever” : https://cookup.ai/o/jewish-nazis-from-ukraine-smoking-pot-and-buildi-ng4qetdw84/ works quite well, maybe it will help make the entire russian foreign service redundant ? end the nightmare by donating here : u24.gov.ua i heard a lot of rusian soldiers were targetted because they were using dating apps. If you want to join them in dating hell, try this dating profile generator : https://cookup.ai/a/sincerely-dating-profile-generator-lf1m9l6s/ i think people liked it because they tried to hack it but here’s one i made as an example : https://cookup.ai/o/32-male-84-kg-straight-white-172m-i-like-to-7aqvxyifbo/ i originally made it because the cookup platform is flirting with these “spammy” types of apps, but mine is way better :-) whether you find someone to or not, you need to sleep, perhaps even dream . Here’s an app to keep a dream journal : https://cookup.ai/a/dream-explainer-yjmnu3vr/ here’s an example from when i was younger : https://cookup.ai/o/i-had-a-recurring-dream-of-stealing-an-egg-after-cpkibppswt/ someone had another dream : https://cookup.ai/o/dream-about-my-girlfriend-cheating-on-me-dream-grka1oadue/ Remember T8 ringtones ? i dont know why i made this , but here it is a Ringtone Generator for T8 keyboards : https://cookup.ai/a/t8-ringtone-generator-n6pgangt/ here is the Zelda theme : https://cookup.ai/o/zelda-melody-polyphonic-t8-ringtone-generator-mjnnevotvj/ The next few apps are just tributes to Codex & Co-Pilot both of which are better suited in your IDE , Gitlab or something like VBS . Check the first one out here : https://cookup.ai/a/co-pilot-ai-to-help-you-code-zsfgk4nm/ remember the NASA experiment from above? here’s the code for it : https://cookup.ai/o/develop-an-app-that-uses-data-from-the-telescope-1n2eugkknb/ here is one to scrape a website to excel : https://cookup.ai/o/create-script-to-scrape-a-website-to-excel-go-qdxeyouinx/ here’s an app to create top level code : https://cookup.ai/a/co-pilot-top-level-code-bccjfqgs/ an example for folks to make a ghost blog api microservice: https://cookup.ai/o/a-link-using-apis-and-microservices-to-link-ghos-2ulpfhwl7o/ Another way to get good results is with boiler plate code : https://cookup.ai/a/co-pilot-boiler-plate-code-fmhetodq/ here’s an example to create a chat bot: https://cookup.ai/o/a-chat-bot-for-matrix-servers-and-discord-server-qgnqvxnvzn/ here’s an app to create regex expressions : https://cookup.ai/a/co-pilot-regex-expression-k5hctbve/ here’s one in python : https://cookup.ai/o/function-to-scrape-all-profile-information-nam-da0uncppew/ here’s one in Golang : https://cookup.ai/o/function-to-use-google-api-to-scrape-a-website-f-y7el3rffmi/ for whatever reason you might want to simulate command line returns . here is the command line app : https://cookup.ai/a/command-line-y70oh4of/ try it with chmod +x readfile ./readfile filename.txt https://cookup.ai/o/chmod-x-readfile-readfile-filenametxt-comm-61ljxmpaqu/ or any other command . A lot of folks have been asking about data creation. I really like this Prolog app for that : https://cookup.ai/a/co-pilot-data-creation-prolog-68sa5kbr/ here is an output for a chatbot : https://cookup.ai/o/to-test-a-chatbot-using-google-api-co-pilot-6y9xnvewhf/ here is what happens for the digestion example from above : https://cookup.ai/o/demonstrate-the-steps-in-digestion-i-will-be-us-kjjou8iswf/ another more straight forward app is the create data app : https://cookup.ai/a/create-data-my8wzz4a/ here is an example for a list of books :https://cookup.ai/o/type-book-struct-id-uint-jsonid-go-yrx8uy53uf/ and another example : https://cookup.ai/o/type-book-struct-id-uint-jsonid-go-xhqjpp2qxo/ i really like these. Another way to test a function is a unit test. Try the unit test app here : https://cookup.ai/a/unit-test-sp6f7pl3/ here’s an example to test quick sort in java 8: https://cookup.ai/o/write-test-cases-to-ensure-that-the-new-quick_so-uj7r1jelu3/ Your function is still not working ? try the stack trace app : https://cookup.ai/a/stack-trace-error-message-lz9df4ld/ just copy paste your error message : https://cookup.ai/o/use-key-stack-trace-error-message-cte9ognj5o/ here’s another example for ggplot : https://cookup.ai/o/error-in-ggplotiris-aesx-sepallength-y-jamfmpobfu/ Once you get your app working , you’ll want to figure out the information model. try this app : https://cookup.ai/a/information-model-crwdl7ah/ here’s an example for : mobile app to rent cars like uber https://cookup.ai/o/mobile-app-to-rent-cars-like-uber-information-wq5bfzzind/ and if you have an information model you’ll need a data model : https://cookup.ai/a/data-model-kjqpe7ua/ here’s the same example but for data model: https://cookup.ai/o/mobile-app-to-rent-cars-like-uber-data-model-kvcpenu2y2/ if you’re going to ship you’ll need an infrastructure plan : https://cookup.ai/a/cloud-infrastructure-plan-oyxvoc8b/ here’s an example for a biofabrication firm : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-gptg16oyh3/ I also made prompt apps to practice prompt making. Try this app for a simple prompt interface : https://cookup.ai/a/prompt-follow-on-leabsbpn/ here’s an example for a payment service : https://cookup.ai/o/pix-payment-in-installments-prompt-follow-o-8yevsi9c81/ someone from Canary Islands used it to write a poem : https://cookup.ai/o/crea-un-poema-sobre-tenerife-prompt-follow-o-xw6td2j1qd/ and write a biography of a historical figure : https://cookup.ai/o/biografia-breve-de-josefina-de-la-torre-gran-can-nmatn2svv6/ pretty cool ! Ready to learn more sophisticated techniques ? try the Prompt App : https://cookup.ai/a/prompt-lbuxx1ed/ i made it to teach folks how to write prompts on cook up , here’s an example for : social inequality, political scientist https://cookup.ai/o/social-inequality-political-scientist-promp-tmhjeoaeny/ here’s one for Universal Basic income , economist https://cookup.ai/o/universal-basic-income-economist-prompt-wohvomtbbk/ here’s for “Help create business systems to run a small business. From the perspective of a franchise developer “ : https://cookup.ai/o/help-create-business-systems-to-run-a-small-busi-hz0r5xb4cu/ and here is “Diagnose Dry Eye, Assess the Above from the perspective of an Ophthalomologist, Print complete answer in markdown format” https://cookup.ai/o/diagnose-dry-eye-assess-the-above-from-the-pe-85a1nvkllp/ hope it helps !
-
@Kellam⚙️Бур This may come as a surprise, but: Nomadic identity is not an abstract concept or a science-fiction idea for the Fediverse.
It is reality. It exists. Right now. In stable, daily-driver software that's federated with Mastodon. And it has been for over a decade.
I'm literally replying to you here from a nomadic channel that simultaneously exists on two servers.
Nomadic identity was invented by @Mike Macgirvin 🖥️ (formerly American software developer of about half a century who has been living in rural Australia for decades now) in 2011 and first implemented in 2012. Almost four years before Mastodon was first launched.
In 2010, he had invented the Facebook alternative Friendica, originally named Mistpark and based on his own DFRN protocol.
Over the months, he witnessed lots of privately operated public Friendica nodes shut down with or without an announcement and the users on these nodes lose everything. He added the possibility to export and import Friendica accounts. But that would only help if a permanent shutdown was announced. It did not protect you against shutdowns out of the blue.
There was only one solution to this problem. And that was for someone's identity to not be bound to one server, but to exist on multiple servers simultaneously. The whole thing with everything that's attached to it. Name, settings, connections, posts, files in the file storage etc. etc., everything.
So in 2011, Mike designed a whole new protocol named Zot around this brand-new idea of what he called "nomadic identity" back then already.
In 2012, Mike forked Friendica into something called Red, later the Red Matrix, and rebuilt the whole thing from the ground up against Zot. Red was the first nomadic social networking software in the world, almost four years before Mastodon.
In 2015, ten months before Mastodon was first released, the Red Matrix became Hubzilla, the Fediverse's ultimate Swiss army knife.
I am on Hubzilla myself. This channel of mine is constantly being mirrored between its main instance on https://hub.netzgemeinde.eu and its clone on https://hub.hubzilla.de. Anything that happens on the main instance is backed up on the clone. I can also log into the clone and use that, and whatever happens there is backed up on the main instance.
https://hub.netzgemeinde.eu could go down, temporarily, permanently, doesn't matter; I still have my channel, namely the clone. And I can declare the clone my new main instance.
Well, Mike didn't stop at Hubzilla and its original version of the Zot protocol. He wanted to refine it and advance it, but in ways that wouldn't be possible on daily-driver software.
Zot went through several upgrades: Zot6 in 2018 (backported to Hubzilla in 2020, along with OpenWebAuth magic single sign-on). Zot8 in 2020. Zot11 in 2021 which had become incompatible with Zot6 and therefore was renamed to Nomad. Today's Nomad would be Zot12.
Also, in order to advance and test Zot, Mike created a whole bunch of forks and forks of forks. Osada and Zap for Zot6 in 2018, followed by another short-lived Osada in 2019. A third Osada, Mistpark 2020 (a.k.a. Misty) and Redmatrix 2020 in 2020 for Zot8. Roadhouse for Zot11 Nomad in 2021. All Osadas, Zap, Misty, Redmatrix 2020 and Roadhouse were discontinued on New Year's Eve of 2022.
The most recent software based on Nomad is from October, 2021. It can be found in the streams repository. It is officially and intentionally nameless and brandless, it has next to nodeinfo code that could submit statistics, and it is intentionally released into the public domain. The community named it (streams) after the code repository.
I also have two (streams) channels, one of which is cloned so far.
The newest thing, and that's what the Friendica and Hubzilla veteran @Tim Schlotfeldt ⚓?️? referred to, is nomadic identity using nothing but ActivityPub, no longer relying on a special protocol.
This was not Mike Macgirvin's idea. This came from @silverpill, the creator and developer of the microblogging server application Mitra. He wanted to make Mitra nomadic, make it resilient against server shutdown. But he didn't want to port it to Nomad. He wanted to achieve it with nothing but ActivityPub.
So he hit up Mike. The two came to the conclusion: This is actually possible. And they began to work on it. Amongst the results were several FEPs coined by silverpill.
This time, Mike did not create another fork to develop nomadic identity via ActivityPub. He did it all on the nomadic branch of the streams repository while silverpill did his part on a special development branch of Mitra.
In mid-2024, after enough sparring between (streams) instances, between Mitra instances and between (streams) and Mitra, Mike was confident enough that his implementation of support of nomadic identity via ActivityPub was stable enough. He merged the nomadic branch into the dev branch which ended up being merged into the stable release branch in summer.
Now, at this point, (streams) didn't use ActivityPub for nomadic identity. It still used the Nomad protocol for everything first and foremost, including cloning. But it understood nomadic identity via ActivityPub as implemented on experimental Mitra.
However, while it worked under lab conditions, it blew up under real-life conditions. At this point, (streams) had to handle so many different identities that it confused them, and it couldn't federate with anything yet.
In mid-August, while trying to fix the problem, Mike eventually forked the streams repository into Forte. It got a name again, it got a brand identity again, it got its nodeinfo back, it was put under the MIT license again.
But most importantly: Any and all support for Nomad was ripped out, also to get rid of a whole number of IDs, namely those for Nomad-actually-Zot12 and for Hubzilla's Nomad-actually-Zot6. Forte only uses ActivityPub for everything. And so, Forte also had to fully rely on ActivityPub for nomadic identity, cloning and syncing.
For almost seven months, Forte was considered experimental and unstable. For most of the time, the only existing servers were Mike's.
But on March 12th, 2025, Mike Macgirvin released Forte 25.3.12, the first official stable release of Forte. This is what Tim wrote about. Because this actually made it into Fediverse-wide news.
Not because it's nomadic. Nomadic identity has been daily-driven for over a decade now.
But because it uses ActivityPub for nomadic identity. Which means that you can theoretically make any kinds of Fediverse software nomadic now, all without porting it to the Nomad protocol first.
For the future, Mike and silverpill envision a Fediverse in which one can clone between different server applications. A Fediverse in which one can have one and the same identity cloned across multiple servers of Mastodon, Pixelfed, PeerTube, Mitra, Forte, Mobilizon, Lemmy, BookWyrm etc., all with the same name, all with the same content and settings (as far as the software allows; you will certainly not be able to clone your PeerTube videos to Mastodon and Lemmy).
Even if you don't intend to clone, it will make moving instances and even moving from one software to another dramatically easier.
If you're concerned about your privacy, let me tell you this:
Hubzilla's privacy, security and permissions system is unparalleled in the Fediverse. Except for that on (streams) and Forte which is another notch better.
I can define who can see my profile (my default, public profile on Hubzilla where each channel can have multiple profiles).
I can define who can see my stream and my posts when looking at my channel.
I can define who can see my connections (Hubzilla, (streams) and Forte don't distinguish between follower and followed; they aren't Twitter clones).
I can define who can look into my file space (individual permission settings per folder and per file notwithstanding).
I can define who can see my webpages on Hubzilla (if I have any).
I can define who can see my wikis on Hubzilla (no shit, I've got wikis on my Hubzilla channel).
On Hubzilla, I can define individually for any of these whether it's- everyone on the Internet
- everyone with a recognisable Fediverse account
- everyone on Hubzilla (maybe also on (streams); anyone using ActivityPub is definitely excluded here)
- everyone on the same server as myself (AFAIK, only main instances of channels count here, clones don't)
- unapproved (= followers) as well as approved (= mutual) connections
- confirmed connections
- those of my confirmed connections whom I explicitly grant that permission by contact role
- only myself
There's a whole bunch more permissions than these. And they all have seven or eight permission levels (depending on whether the general non-Fediverse public can be given permission).
On (streams) and Forte, I can define whether things are allowed for- everyone on the Internet (where applicable)
- everyone with a recognisable Fediverse account
- all my approved connections
- only me myself plus those whom I explicitly grant that permission in the connection settings
Yes, connection settings. Hubzilla, (streams) and Forte give you various ways of configuring individual connections, much unlike Mastodon. This includes what any individual connection is allowed to do.
Hubzilla uses so-called "contact roles" for that, presets with a whopping 17 permissions to grant or deny for any one individual connection. That is, what the channel generally allows, a contact role can't forbid.
(streams) and Forte still have 15 permissions per contact, but they lack some features which Hubzilla has permissions for. These permissions can be set individually for each connection, or you can define permission roles that cover all 15 permissions to make things easier.
Okay, how about posting in public vs in private? And when I say "private", I mean "private". It's "private messages" on Hubzilla, (streams) and Forte, not "direct messages".
Hubzilla, (streams) and Forte let you post- in public
- only to yourself
- only to your connections ((streams) and Forte only; Hubzilla requires a privacy group with all your connections in it for this)
- to all members of one specific privacy group (Hubzilla)/access list ((streams), Forte); that's like being able to only post to those on one specific list on Mastodon
- to everyone to whom one specific non-default profile is assigned (Hubzilla only)
- to a specific group/forum (I'll get back to that later)
- to a custom one-by-one selection of connections of yours
Now, let's assume I have a privacy group with Alice, Bob and Carol in it. I send a new post to only this privacy group. This means:- Only Alice, Bob and Carol can see the post and the conversation.
- Alice can reply to me, Bob and Carol.
- Bob can reply to me, Alice and Carol.
- Carol can reply to me, Alice and Bob.
- Nobody else can see the post. Not even by searching for it. Not by hashtag either. Not at all.
- Nobody else can see any of the comments.
- Nobody else can comment.
If one of them was on Mastodon, they'd see my post as a DM, by the way, and they could only reply to me. But that's Mastodon's limitation because it understands neither threaded conversations nor permissions.
Or how about reply control? This is something that many Mastodon users have been craving for quite a while now. Hubzilla, (streams) and Forte have them. Right now. And they work. They have since 2012.
Hubzilla optionally lets me disallow comments on either of my posts. Users on Hubzilla, (streams) and Forte won't even be able to comment; they won't have the UI elements to do so. Everyone else is able to comment locally. But that comment will never end up on my channel. It will never officially be added to the conversation. And at least users on Friendica, Hubzilla, (streams) and Forte will never fetch that comment from my channel as part of the conversation, i.e. never at all.
(streams) and Forte can go even further with all available options. They can disallow comments like Hubzilla. But in addition, they can allow only the members of one particular access list to comment, regardless of who can see the post/the conversation. On top of that, comments can be closed at a pre-defined point in the future. And then you even have a channel-wide setting for how long people can comment on your posts.
Oh, and there's even a setting for who is generally permitted to comment on your posts. And you can additionally allow specific connections of yours to comment on your posts.
Lastly, I've already mentioned groups/forums. Like, you know, Web forums or Facebook groups or subreddits or whatever. Like Guppe Groups on a mountain of coke and with moderation and permission control and optionally private.
Hubzilla has them, and it has inherited them from Friendica. (streams) has them. Forte has them. They're basically channels like social networking channels, but with some extra features. This includes that everything that's send to a group/forum as what amounts to a PM is automatically forwarded to all other members.
On Hubzilla, a forum can be gradually made private by denying permission to see certain elements to everyone but its own members (= connections): the profile, the members, what's going on in it. Depending on what you want or do not want people to see.
On (streams) and Forte, you have four types of forums:- public, and members can upload images and other files to the forum channel
- public, but members cannot upload images and other files to the forum channel
- like above, but additionally, posts and comments from new members must be manually approved by the admin(s) until their connections are configured to make them full members
- private, non-members can't see the profile, non-members can't see the connections, non-members can't see what's going on in it, but members can upload images and other files to the forum channel
In addition, on all three, a group/forum channel can choose to hide itself from directories. This is always an extra option that's independent from public/private.
What we have here is the most secure and most private Fediverse software of all.
And, once again, at its core, this is technology from 2012. It pre-dates Mastodon by almost four years.
Finally, if you want to know how Hubzilla and (streams) compare to Mastodon: I have made a number of tables that compare Mastodon, Friendica, Hubzilla and (streams).
#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Mastodon #Mitra #Friendica #Hubzilla #Streams #(streams) #Forte #ActivityPub #Zot #Zot6 #Zot8 #Nomad #NomadicIdentity #Security #FediverseSecurity #Privacy #FediversePrivacy #Permissions -
Earlier this year, Cendyne wrote a blog post covering the use of HKDF, building partially upon my own blog post about HKDF and the KDF security definition, but moreso inspired by a cryptographic issue they identified in another company’s product (dubbed AnonCo).
At the bottom they teased:
Database cryptography is hard. The above sketch is not complete and does not address several threats! This article is quite long, so I will not be sharing the fixes.
Cendyne
If you read Cendyne’s post, you may have nodded along with that remark and not appreciate the degree to which our naga friend was putting it mildly. So I thought I’d share some of my knowledge about real-world database cryptography in an accessible and fun format in the hopes that it might serve as an introduction to the specialization.
Note: I’m also not going to fix Cendyne’s sketch of AnonCo’s software here–partly because I don’t want to get in the habit of assigning homework or required reading, but mostly because it’s kind of obvious once you’ve learned the basics.
I’m including art of my fursona in this post… as is tradition for furry blogs.If you don’t like furries, please feel free to leave this blog and read about this topic elsewhere.
Thanks to CMYKat for the awesome stickers.
Contents
- Database Cryptography?
- Cryptography for Relational Databases
- The Perils of Built-in Encryption Functions
- Application-Layer Relational Database Cryptography
- Confused Deputies
- Canonicalization Attacks
- Multi-Tenancy
- Cryptography for NoSQL Databases
- NoSQL is Built Different
- Record Authentication
- Bonus: A Maximally Schema-Free, Upgradeable Authentication Design
- Searchable Encryption
- Order-{Preserving, Revealing} Encryption
- Deterministic Encryption
- Homomorphic Encryption
- Searchable Symmetric Encryption (SSE)
- You Can Have Little a HMAC, As a Treat
- Intermission
- Case Study: MongoDB Client-Side Encryption
- MongoCrypt: The Good
- How is Queryable Encryption Implemented?
- MongoCrypt: The Bad
- MongoCrypt: The Ugly
- MongoCrypt: The Good
- Wrapping Up
Database Cryptography?
The premise of database cryptography is deceptively simple: You have a database, of some sort, and you want to store sensitive data in said database.
The consequences of this simple premise are anything but simple. Let me explain.
Art: ScruffKerfluffThe sensitive data you want to store may need to remain confidential, or you may need to provide some sort of integrity guarantees throughout your entire system, or sometimes both. Sometimes all of your data is sensitive, sometimes only some of it is. Sometimes the confidentiality requirements of your data extends to where within a dataset the record you want actually lives. Sometimes that’s true of some data, but not others, so your cryptography has to be flexible to support multiple types of workloads.
Other times, you just want your disks encrypted at rest so if they grow legs and walk out of the data center, the data cannot be comprehended by an attacker. And you can’t be bothered to work on this problem any deeper. This is usually what compliance requirements cover. Boxes get checked, executives feel safer about their operation, and the whole time nobody has really analyzed the risks they’re facing.
But we’re not settling for mere compliance on this blog. Furries have standards, after all.
So the first thing you need to do before diving into database cryptography is threat modelling. The first step in any good threat model is taking inventory; especially of assumptions, requirements, and desired outcomes. A few good starter questions:
- What database software is being used? Is it up to date?
- What data is being stored in which database software?
- How are databases oriented in the network of the overall system?
- Is your database properly firewalled from the public Internet?
- How does data flow throughout the network, and when do these data flows intersect with the database?
- Which applications talk to the database? What languages are they written in? Which APIs do they use?
- How will cryptography secrets be managed?
- Is there one key for everyone, one key per tenant, etc.?
- How are keys rotated?
- Do you use envelope encryption with an HSM, or vend the raw materials to your end devices?
The first two questions are paramount for deciding how to write software for database cryptography, before you even get to thinking about the cryptography itself.
(This is not a comprehensive set of questions to ask, either. A formal threat model is much deeper in the weeds.)
The kind of cryptography protocol you need for, say, storing encrypted CSV files an S3 bucket is vastly different from relational (SQL) databases, which in turn will be significantly different from schema-free (NoSQL) databases.
Furthermore, when you get to the point that you can start to think about the cryptography, you’ll often need to tackle confidentiality and integrity separately.
If that’s unclear, think of a scenario like, “I need to encrypt PII, but I also need to digitally sign the lab results so I know it wasn’t tampered with at rest.”
My point is, right off the bat, we’ve got a three-dimensional matrix of complexity to contend with:
- On one axis, we have the type of database.
- Flat-file
- Relational
- Schema-free
- On another, we have the basic confidentiality requirements of the data.
- Field encryption
- Row encryption
- Column encryption
- Unstructured record encryption
- Encrypting entire collections of records
- Finally, we have the integrity requirements of the data.
- Field authentication
- Row/column authentication
- Unstructured record authentication
- Collection authentication (based on e.g. Sparse Merkle Trees)
And then you have a fourth dimension that often falls out of operational requirements for databases: Searchability.
Why store data in a database if you have no way to index or search the data for fast retrieval?
Credit: HarubakiIf you’re starting to feel overwhelmed, you’re not alone. A lot of developers drastically underestimate the difficulty of the undertaking, until they run head-first into the complexity.
Some just phone it in with
AES_Encrypt()calls in their MySQL queries. (Too bad ECB mode doesn’t provide semantic security!)Which brings us to the meat of this blog post: The actual cryptography part.
Cryptography is the art of transforming information security problems into key management problems.
Former coworker
Note: In the interest of time, I’m skipping over flat files and focusing instead on actual database technologies.
Cryptography for Relational Databases
Encrypting data in an SQL database seems simple enough, even if you’ve managed to shake off the complexity I teased from the introduction.
You’ve got data, you’ve got a column on a table. Just encrypt the data and shove it in a cell on that column and call it a day, right?
But, alas, this is a trap. There are so many gotchas that I can’t weave a coherent, easy-to-follow narrative between them all.
So let’s start with a simple question: where and how are you performing your encryption?
The Perils of Built-in Encryption Functions
MySQL provides functions called AES_Encrypt and AES_Decrypt, which many developers have unfortunately decided to rely on in the past.
It’s unfortunate because these functions implement ECB mode. To illustrate why ECB mode is bad, I encrypted one of my art commissions with AES in ECB mode:
Art by Riley, encrypted with AES-ECBThe problems with ECB mode aren’t exactly “you can see the image through it,” because ECB-encrypting a compressed image won’t have redundancy (and thus can make you feel safer than you are).
ECB art is a good visual for the actual issue you should care about, however: A lack of semantic security.
A cryptosystem is considered semantically secure if observing the ciphertext doesn’t reveal information about the plaintext (except, perhaps, the length; which all cryptosystems leak to some extent). More information here.
ECB art isn’t to be confused with ECB poetry, which looks like this:
Oh little one, you’re growing up
You’ll soon be writing C
You’ll treat your ints as pointers
You’ll nest the ternary
You’ll cut and paste from github
And try cryptography
But even in your darkest hour
Do not use ECBCBC’s BEASTly when padding’s abused
And CTR’s fine til a nonce is reused
Some say it’s a CRIME to compress then encrypt
Or store keys in the browser (or use javascript)
Diffie Hellman will collapse if hackers choose your g
And RSA is full of traps when e is set to 3
Whiten! Blind! In constant time! Don’t write an RNG!
But failing all, and listen well: Do not use ECBThey’ll say “It’s like a one-time-pad!
The data’s short, it’s not so bad
the keys are long–they’re iron clad
I have a PhD!”
And then you’re front page Hacker News
Your passwords cracked–Adobe Blues.
Don’t leave your penguins showing through,
Do not use ECB— Ben Nagy, PoC||GTFO 0x04:13
Most people reading this probably know better than to use ECB mode already, and don’t need any of these reminders, but there is still a lot of code that inadvertently uses ECB mode to encrypt data in the database.
Also,
Credit: CMYKattSHOW processlist;leaks your encryption keys. Oops.Application-layer Relational Database Cryptography
Whether burned by ECB or just cautious about not giving your secrets to the system that stores all the ciphertext protected by said secret, a common next step for developers is to simply encrypt in their server-side application code.
And, yes, that’s part of the answer. But how you encrypt is important.
Credit: Harubaki“I’ll encrypt with CBC mode.”
If you don’t authenticate your ciphertext, you’ll be sorry. Maybe try again?“Okay, fine, I’ll use an authenticated mode like GCM.”
Did you remember to make the table and column name part of your AAD? What about the primary key of the record?“What on Earth are you talking about, Soatok?”
Welcome to the first footgun of database cryptography!Confused Deputies
Encrypting your sensitive data is necessary, but not sufficient. You need to also bind your ciphertexts to the specific context in which they are stored.
To understand why, let’s take a step back: What specific threat does encrypting your database records protect against?
We’ve already established that “your disks walk out of the datacenter” is a “full disk encryption” problem, so if you’re using application-layer cryptography to encrypt data in a relational database, your threat model probably involves unauthorized access to the database server.
What, then, stops an attacker from copying ciphertexts around?
Credit: CMYKattLet’s say I have a legitimate user account with an ID 12345, and I want to read your street address, but it’s encrypted in the database. But because I’m a clever hacker, I have unfettered access to your relational database server.
All I would need to do is simply…
UPDATE table SET addr_encrypted = 'your-ciphertext' WHERE id = 12345…and then access the application through my legitimate access. Bam, data leaked. As an attacker, I can probably even copy fields from other columns and it will just decrypt. Even if you’re using an authenticated mode.
We call this a confused deputy attack, because the deputy (the component of the system that has been delegated some authority or privilege) has become confused by the attacker, and thus undermined an intended security goal.
The fix is to use the AAD parameter from the authenticated mode to bind the data to a given context. (AAD = Additional Authenticated Data.)
- $addr = aes_gcm_encrypt($addr, $key);+ $addr = aes_gcm_encrypt($addr, $key, canonicalize([+ $tableName,+ $columnName,+ $primaryKey+ ]);
Now if I start cutting and pasting ciphertexts around, I get a decryption failure instead of silently decrypting plaintext.
This may sound like a specific vulnerability, but it’s more of a failure to understand an important general lesson with database cryptography:
Where your data lives is part of its identity, and MUST be authenticated.
Soatok’s Rule of Database Cryptography
Canonicalization Attacks
In the previous section, I introduced a pseudocode called
canonicalize(). This isn’t a pasto from some reference code; it’s an important design detail that I will elaborate on now.First, consider you didn’t do anything to canonicalize your data, and you just joined strings together and called it a day…
function dumbCanonicalize( string $tableName, string $columnName, string|int $primaryKey): string { return $tableName . '_' . $columnName . '#' . $primaryKey;}Consider these two inputs to this function:
dumbCanonicalize('customers', 'last_order_uuid', 123);dumbCanonicalize('customers_last_order', 'uuid', 123);
In this case, your AAD would be the same, and therefore, your deputy can still be confused (albeit in a narrower use case).
In Cendyne’s article, AnonCo did something more subtle: The canonicalization bug created a collision on the inputs to HKDF, which resulted in an unintentional key reuse.
Up until this point, their mistake isn’t relevant to us, because we haven’t even explored key management at all. But the same design flaw can re-emerge in multiple locations, with drastically different consequence.
Multi-Tenancy
Once you’ve implemented a mitigation against Confused Deputies, you may think your job is done. And it very well could be.
Often times, however, software developers are tasked with building support for Bring Your Own Key (BYOK).
This is often spawned from a specific compliance requirement (such as cryptographic shredding; i.e. if you erase the key, you can no longer recover the plaintext, so it may as well be deleted).
Other times, this is driven by a need to cut costs: Storing different users’ data in the same database server, but encrypting it such that they can only encrypt their own records.
Two things can happen when you introduce multi-tenancy into your database cryptography designs:
- Invisible Salamanders becomes a risk, due to multiple keys being possible for any given encrypted record.
- Failure to address the risk of Invisible Salamanders can undermine your protection against Confused Deputies, thereby returning you to a state before you properly used the AAD.
So now you have to revisit your designs and ensure you’re using a key-committing authenticated mode, rather than just a regular authenticated mode.
Isn’t cryptography fun?
“What Are Invisible Salamanders?”
This refers to a fun property of AEAD modes based on Polynomical MACs. Basically, if you:
- Encrypt one message under a specific key and nonce.
- Encrypt another message under a separate key and nonce.
…Then you can get the same exact ciphertext and authentication tag. Performing this attack requires you to control the keys for both encryption operations.
This was first demonstrated in an attack against encrypted messaging applications, where a picture of a salamander was hidden from the abuse reporting feature because another attached file had the same authentication tag and ciphertext, and you could trick the system if you disclosed the second key instead of the first. Thus, the salamander is invisible to attackers.
Art: CMYKatWe’re not quite done with relational databases yet, but we should talk about NoSQL databases for a bit. The final topic in scope applies equally to both, after all.
Cryptography for NoSQL Databases
Most of the topics from relational databases also apply to NoSQL databases, so I shall refrain from duplicating them here. This article is already sufficiently long to read, after all, and I dislike redundancy.
NoSQL is Built Different
The main thing that NoSQL databases offer in the service of making cryptographers lose sleep at night is the schema-free nature of NoSQL designs.
What this means is that, if you’re using a client-side encryption library for a NoSQL database, the previous concerns about confused deputy attacks are amplified by the malleability of the document structure.
Additionally, the previously discussed cryptographic attacks against the encryption mode may be less expensive for an attacker to pull off.
Consider the following record structure, which stores a bunch of data stored with AES in CBC mode:
{ "encrypted-data-key": "<blob>", "name": "<ciphertext>", "address": [ "<ciphertext>", "<ciphertext>" ], "social-security": "<ciphertext>", "zip-code": "<ciphertext>"}If this record is decrypted with code that looks something like this:
$decrypted = [];// ... snip ...foreach ($record['address'] as $i => $addrLine) { try { $decrypted['address'][$i] = $this->decrypt($addrLine); } catch (Throwable $ex) { // You'd never deliberately do this, but it's for illustration $this->doSomethingAnOracleCanObserve($i); // This is more believable, of course: $this->logDecryptionError($ex, $addrLine); $decrypted['address'][$i] = ''; }}Then you can keep appending rows to the
Art: Harubaki"address"field to reduce the number of writes needed to exploit a padding oracle attack against any of the<ciphertext>fields.This isn’t to say that NoSQL is less secure than SQL, from the context of client-side encryption. However, the powerful feature sets that NoSQL users are accustomed to may also give attackers a more versatile toolkit to work with.
Record Authentication
A pedant may point out that record authentication applies to both SQL and NoSQL. However, I mostly only observe this feature in NoSQL databases and document storage systems in the wild, so I’m shoving it in here.
Encrypting fields is nice and all, but sometimes what you want to know is that your unencrypted data hasn’t been tampered with as it flows through your system.
The trivial way this is done is by using a digital signature algorithm over the whole record, and then appending the signature to the end. When you go to verify the record, all of the information you need is right there.
This works well enough for most use cases, and everyone can pack up and go home. Nothing more to see here.
Except…
When you’re working with NoSQL databases, you often want systems to be able to write to additional fields, and since you’re working with schema-free blobs of data rather than a normalized set of relatable tables, the most sensible thing to do is to is to append this data to the same record.
Except, oops! You can’t do that if you’re shoving a digital signature over the record. So now you need to specify which fields are to be included in the signature.
And you need to think about how to model that in a way that doesn’t prohibit schema upgrades nor allow attackers to perform downgrade attacks. (See below.)
I don’t have any specific real-world examples here that I can point to of this problem being solved well.Art: CMYKat
Furthermore, as with preventing confused deputy and/or canonicalization attacks above, you must also include the fully qualified path of each field in the data that gets signed.
As I said with encryption before, but also true here:
Where your data lives is part of its identity, and MUST be authenticated.
Soatok’s Rule of Database Cryptography
This requirement holds true whether you’re using symmetric-key authentication (i.e. HMAC) or asymmetric-key digital signatures (e.g. EdDSA).
Bonus: A Maximally Schema-Free, Upgradeable Authentication Design
Art: HarubakiOkay, how do you solve this problem so that you can perform updates and upgrades to your schema but without enabling attackers to downgrade the security? Here’s one possible design.
Let’s say you have two metadata fields on each record:
- A compressed binary string representing which fields should be authenticated. This field is, itself, not authenticated. Let’s call this
meta-auth. - A compressed binary string representing which of the authenticated fields should also be encrypted. This field is also authenticated. This is at most the same length as the first metadata field. Let’s call this
meta-enc.
Furthermore, you will specify a canonical field ordering for both how data is fed into the signature algorithm as well as the field mappings in
meta-authandmeta-enc.{ "example": { "credit-card": { "number": /* encrypted */, "expiration": /* encrypted */, "ccv": /* encrypted */ }, "superfluous": { "rewards-member": null } }, "meta-auth": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true /* meta-enc */ ]), "meta-enc": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false /* example.superfluous.rewards-member */ ]), "signature": /* -- snip -- */}When you go to append data to an existing record, you’ll need to update
meta-authto include the mapping of fields based on this canonical ordering to ensure only the intended fields get validated.When you update your code to add an additional field that is intended to be signed, you can roll that out for new records and the record will continue to be self-describing:
- New records will have the additional field flagged as authenticated in
meta-auth(andmeta-encwill grow) - Old records will not, but your code will still sign them successfully
- To prevent downgrade attacks, simply include a schema version ID as an additional plaintext field that gets authenticated. An attacker who tries to downgrade will need to be able to produce a valid signature too.
You might think
meta-authgives an attacker some advantage, but this only includes which fields are included in the security boundary of the signature or MAC, which allows unauthenticated data to be appended for whatever operational purpose without having to update signatures or expose signing keys to a wider part of the network.{ "example": { "credit-card": { "number": /* encrypted */, "expiration": /* encrypted */, "ccv": /* encrypted */ }, "superfluous": { "rewards-member": null } }, "meta-auth": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true, /* meta-enc */ true /* meta-version */ ]), "meta-enc": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true /* meta-version */ ]), "meta-version": 0x01000000, "signature": /* -- snip -- */}If an attacker tries to use the
meta-authfield to mess with a record, the best they can hope for is an Invalid Signature exception (assuming the signature algorithm is secure to begin with).Even if they keep all of the fields the same, but play around with the structure of the record (e.g. changing the XPath or equivalent), so long as the path is authenticated with each field, breaking this is computationally infeasible.
Searchable Encryption
If you’ve managed to make it through the previous sections, congratulations, you now know enough to build a secure but completely useless database.
Art: CMYKatOkay, put away the pitchforks; I will explain.
Part of the reason why we store data in a database, rather than a flat file, is because we want to do more than just read and write. Sometimes computer scientists want to compute. Almost always, you want to be able to query your database for a subset of records based on your specific business logic needs.
And so, a database which doesn’t do anything more than store ciphertext and maybe signatures is pretty useless to most people. You’d have better luck selling Monkey JPEGs to furries than convincing most businesses to part with their precious database-driven report generators.
Art: SophieSo whenever one of your users wants to actually use their data, rather than just store it, they’re forced to decide between two mutually exclusive options:
- Encrypting the data, to protect it from unauthorized disclosure, but render it useless
- Doing anything useful with the data, but leaving it unencrypted in the database
This is especially annoying for business types that are all in on the Zero Trust buzzword.
Fortunately, the cryptographers are at it again, and boy howdy do they have a lot of solutions for this problem.
Order-{Preserving, Revealing} Encryption
On the fun side of things, you have things like Order-Preserving and Order-Revealing Encryption, which Matthew Green wrote about at length.
[D]atabase encryption has been a controversial subject in our field. I wish I could say that there’s been an actual debate, but it’s more that different researchers have fallen into different camps, and nobody has really had the data to make their position in a compelling way. There have actually been some very personal arguments made about it.
Attack of the week: searchable encryption and the ever-expanding leakage function
The problem with these designs is that they have a significant enough leakage that it no longer provides semantic security.
From Grubbs, et al. (GLMP, 2019.)
Colors inverted to fit my blog’s theme better.To put it in other words: These designs are only marginally better than ECB mode, and probably deserve their own poems too.
Order revealing
Reveals much more than order
Softcore ECBOrder preserving
Semantic security?
Only in your dreamsHaiku for your consideration
Deterministic Encryption
Here’s a simpler, but also terrible, idea for searchable encryption: Simply give up on semantic security entirely.
If you recall the
AES_{De,En}crypt()functions built into MySQL I mentioned at the start of this article, those are the most common form of deterministic encryption I’ve seen in use.SELECT * FROM foo WHERE bar = AES_Encrypt('query', 'key');However, there are slightly less bad variants. If you use AES-GCM-SIV with a static nonce, your ciphertexts are fully deterministic, and you can encrypt a small number of distinct records safely before you’re no longer secure.
From Page 14 of the linked paper. Full view.That’s certainly better than nothing, but you also can’t mitigate confused deputy attacks. But we can do better than this.
Homomorphic Encryption
In a safer plane of academia, you’ll find homomorphic encryption, which researchers recently demonstrated with serving Wikipedia pages in a reasonable amount of time.
Homomorphic encryption allows computations over the ciphertext, which will be reflected in the plaintext, without ever revealing the key to the entity performing the computation.
If this sounds vaguely similar to the conditions that enable chosen-ciphertext attacks, you probably have a good intuition for how it works: RSA is homomorphic to multiplication, AES-CTR is homomorphic to XOR. Fully homomorphic encryption uses lattices, which enables multiple operations but carries a relatively enormous performance cost.
Art: HarubakiHomomorphic encryption sometimes intersects with machine learning, because the notion of training an encrypted model by feeding it encrypted data, then decrypting it after-the-fact is desirable for certain business verticals. Your data scientists never see your data, and you have some plausible deniability about the final ML model this work produces. This is like a Siren song for Venture Capitalist-backed medical technology companies. Tech journalists love writing about it.
However, a less-explored use case is the ability to encrypt your programs but still get the correct behavior and outputs. Although this sounds like a DRM technology, it’s actually something that individuals could one day use to prevent their ISPs or cloud providers from knowing what software is being executed on the customer’s leased hardware. The potential for a privacy win here is certainly worth pondering, even if you’re a tried and true Pirate Party member.
Just say “NO” to the copyright cartels.Art: CMYKat
Searchable Symmetric Encryption (SSE)
Forget about working at the level of fields and rows or individual records. What if we, instead, worked over collections of documents, where each document is viewed as a set of keywords from a keyword space?
Art: CMYKatThat’s the basic premise of SSE: Encrypting collections of documents rather than individual records.
The actual implementation details differ greatly between designs. They also differ greatly in their leakage profiles and susceptibility to side-channel attacks.
Some schemes use a so-called trapdoor permutation, such as RSA, as one of their building blocks.
Some schemes only allow for searching a static set of records, while others can accommodate new data over time (with the trade-off between more leakage or worse performance).
If you’re curious, you can learn more about SSE here, and see some open source SEE implementations online here.
You’re probably wondering, “If SSE is this well-studied and there are open source implementations available, why isn’t it more widely used?”
Your guess is as good as mine, but I can think of a few reasons:
- The protocols can be a little complicated to implement, and aren’t shipped by default in cryptography libraries (i.e. OpenSSL’s libcrypto or libsodium).
- Every known security risk in SSE is the product of a trade-offs, rather than there being a single winner for all use cases that developers can feel comfortable picking.
- Insufficient marketing and developer advocacy.
SSE schemes are mostly of interest to academics, although Seny Kamara (Brown Univeristy professior and one of the luminaries of searchable encryption) did try to develop an app called Pixek which used SSE to encrypt photos.
Maybe there’s room for a cryptography competition on searchable encryption schemes in the future.
You Can Have Little a HMAC, As a Treat
Finally, I can’t talk about searchable encryption without discussing a technique that’s older than dirt by Internet standards, that has been independently reinvented by countless software developers tasked with encrypting database records.
The oldest version I’ve been able to track down dates to 2006 by Raul Garcia at Microsoft, but I’m not confident that it didn’t exist before.
The idea I’m alluding to goes like this:
- Encrypt your data, securely, using symmetric cryptography.
(Hopefully your encryption addresses the considerations outlined in the relevant sections above.) - Separately, calculate an HMAC over the unencrypted data with a separate key used exclusively for indexing.
When you need to query your data, you can just recalculate the HMAC of your challenge and fetch the records that match it. Easy, right?
Even if you rotate your keys for encryption, you keep your indexing keys static across your entire data set. This lets you have durable indexes for encrypted data, which gives you the ability to do literal lookups for the performance hit of a hash function.
Additionally, everyone has HMAC in their toolkit, so you don’t have to move around implementations of complex cryptographic building blocks. You can live off the land. What’s not to love?
Hooray!However, if you stopped here, we regret to inform you that your data is no longer indistinguishable from random, which probably undermines the security proof for your encryption scheme.
How annoying!Of course, you don’t have to stop with the addition of plain HMAC to your database encryption software.
Take a page from Troy Hunt: Truncate the output to provide k-anonymity rather than a direct literal look-up.
“K-What Now?”
Imagine you have a full HMAC-SHA256 of the plaintext next to every ciphertext record with a static key, for searchability.
Each HMAC output corresponds 1:1 with a unique plaintext.
Because you’re using HMAC with a secret key, an attacker can’t just build a rainbow table like they would when attempting password cracking, but it still leaks duplicate plaintexts.
For example, an HMAC-SHA256 output might look like this:
Art: CMYKat\04a74e4c0158e34a566785d1a5e1167c4e3455c42aea173104e48ca810a8b1aeIf you were to slice off most of those bytes (e.g. leaving only the last 3, which in the previous example yields
a8b1ae), then with sufficient records, multiple plaintexts will now map to the same truncated HMAC tag.Which means if you’re only revealing a truncated HMAC tag to the database server (both when storing records or retrieving them), you can now expect false positives due to collisions in your truncated HMAC tag.
These false positives give your data a discrete set of anonymity (called k-anonymity), which means an attacker with access to your database cannot:
- Distinguish between two encrypted records with the same short HMAC tag.
- Reverse engineer the short HMAC tag into a single possible plaintext value, even if they can supply candidate queries and study the tags sent to the database.
As with SSE above, this short HMAC technique exposes a trade-off to users.
- Too much k-anonymity (i.e. too many false positives), and you will have to decrypt-then-discard multiple mismatching records. This can make queries slow.
- Not enough k-anonymity (i.e. insufficient false positives), and you’re no better off than a full HMAC.
Even more troublesome, the right amount to truncate is expressed in bits (not bytes), and calculating this value depends on the number of unique plaintext values you anticipate in your dataset. (Fortunately, it grows logarithmically, so you’ll rarely if ever have to tune this.)
If you’d like to play with this idea, here’s a quick and dirty demo script.
Intermission
If you started reading this post with any doubts about Cendyne’s statement that “Database cryptography is hard”, by making it to this point, they’ve probably been long since put to rest.
Art: HarubakiConversely, anyone that specializes in this topic is probably waiting for me to say anything novel or interesting; their patience wearing thin as I continue to rehash a surface-level introduction of their field without really diving deep into anything.
Thus, if you’ve read this far, I’d like to demonstrate the application of what I’ve covered thus far into a real-world case study into an database cryptography product.
Case Study: MongoDB Client-Side Encryption
MongoDB is an open source schema-free NoSQL database. Last year, MongoDB made waves when they announced Queryable Encryption in their upcoming client-side encryption release.
Taken from the press release, but adapted for dark themes.A statement at the bottom of their press release indicates that this isn’t clown-shoes:
Queryable Encryption was designed by MongoDB’s Advanced Cryptography Research Group, headed by Seny Kamara and Tarik Moataz, who are pioneers in the field of encrypted search. The Group conducts cutting-edge peer-reviewed research in cryptography and works with MongoDB engineering teams to transfer and deploy the latest innovations in cryptography and privacy to the MongoDB data platform.
If you recall, I mentioned Seny Kamara in the SSE section of this post. They certainly aren’t wrong about Kamara and Moataz being pioneers in this field.
So with that in mind, let’s explore the implementation in libmongocrypt and see how it stands up to scrutiny.
MongoCrypt: The Good
MongoDB’s encryption library takes key management seriously: They provide a KMS integration for cloud users by default (supporting both AWS and Azure).
MongoDB uses Encrypt-then-MAC with AES-CBC and HMAC-SHA256, which is congruent to what Signal does for message encryption.
How Is Queryable Encryption Implemented?
From the current source code, we can see that MongoCrypt generates several different types of tokens, using HMAC (calculation defined here).
According to their press release:
The feature supports equality searches, with additional query types such as range, prefix, suffix, and substring planned for future releases.
Which means that most of the juicy details probably aren’t public yet.
These HMAC-derived tokens are stored wholesale in the data structure, but most are encrypted before storage using AES-CTR.
There are more layers of encryption (using AEAD), server-side token processing, and more AES-CTR-encrypted edge tokens. All of this is finally serialized (implementation) as one blob for storage.
Since only the equality operation is currently supported (which is the same feature you’d get from HMAC), it’s difficult to speculate what the full feature set looks like.
However, since Kamara and Moataz are leading its development, it’s likely that this feature set will be excellent.
MongoCrypt: The Bad
Every call to
do_encrypt()includes at most the Key ID (but typicallyNULL) as the AAD. This means that the concerns over Confused Deputies (and NoSQL specifically) are relevant to MongoDB.However, even if they did support authenticating the fully qualified path to a field in the AAD for their encryption, their AEAD construction is vulnerable to the kind of canonicalization attack I wrote about previously.
First, observe this code which assembles the multi-part inputs into HMAC.
/* Construct the input to the HMAC */uint32_t num_intermediates = 0;_mongocrypt_buffer_t intermediates[3];// -- snip --if (!_mongocrypt_buffer_concat ( &to_hmac, intermediates, num_intermediates)) { CLIENT_ERR ("failed to allocate buffer"); goto done;}if (hmac == HMAC_SHA_512_256) { uint8_t storage[64]; _mongocrypt_buffer_t tag = {.data = storage, .len = sizeof (storage)}; if (!_crypto_hmac_sha_512 (crypto, Km, &to_hmac, &tag, status)) { goto done; } // Truncate sha512 to first 256 bits. memcpy (out->data, tag.data, MONGOCRYPT_HMAC_LEN);} else { BSON_ASSERT (hmac == HMAC_SHA_256); if (!_mongocrypt_hmac_sha_256 (crypto, Km, &to_hmac, out, status)) { goto done; }}The implementation of
_mongocrypt_buffer_concat()can be found here.If either the implementation of that function, or the code I snipped from my excerpt, had contained code that prefixed every segment of the AAD with the length of the segment (represented as a
uint64_tto make overflow infeasible), then their AEAD mode would not be vulnerable to canonicalization issues.Using TupleHash would also have prevented this issue.
Silver lining for MongoDB developers: Because the AAD is either a key ID or NULL, this isn’t exploitable in practice.
The first cryptographic flaw sort of cancels the second out.
If the libmongocrypt developers ever want to mitigate Confused Deputy attacks, they’ll need to address this canonicalization issue too.
MongoCrypt: The Ugly
MongoCrypt supports deterministic encryption.
If you specify deterministic encryption for a field, your application passes a deterministic initialization vector to AEAD.
We already discussed why this is bad above.
Wrapping Up
This was not a comprehensive treatment of the field of database cryptography. There are many areas of this field that I did not cover, nor do I feel qualified to discuss.
However, I hope anyone who takes the time to read this finds themselves more familiar with the subject.
Additionally, I hope any developers who think “encrypting data in a database is [easy, trivial] (select appropriate)” will find this broad introduction a humbling experience.
Art: CMYKathttps://soatok.blog/2023/03/01/database-cryptography-fur-the-rest-of-us/
#appliedCryptography #blockCipherModes #cryptography #databaseCryptography #databases #encryptedSearch #HMAC #MongoCrypt #MongoDB #QueryableEncryption #realWorldCryptography #security #SecurityGuidance #SQL #SSE #symmetricCryptography #symmetricSearchableEncryption
-
Earlier this year, Cendyne wrote a blog post covering the use of HKDF, building partially upon my own blog post about HKDF and the KDF security definition, but moreso inspired by a cryptographic issue they identified in another company’s product (dubbed AnonCo).
At the bottom they teased:
Database cryptography is hard. The above sketch is not complete and does not address several threats! This article is quite long, so I will not be sharing the fixes.
Cendyne
If you read Cendyne’s post, you may have nodded along with that remark and not appreciate the degree to which our naga friend was putting it mildly. So I thought I’d share some of my knowledge about real-world database cryptography in an accessible and fun format in the hopes that it might serve as an introduction to the specialization.
Note: I’m also not going to fix Cendyne’s sketch of AnonCo’s software here–partly because I don’t want to get in the habit of assigning homework or required reading, but mostly because it’s kind of obvious once you’ve learned the basics.
I’m including art of my fursona in this post… as is tradition for furry blogs.If you don’t like furries, please feel free to leave this blog and read about this topic elsewhere.
Thanks to CMYKat for the awesome stickers.
Contents
- Database Cryptography?
- Cryptography for Relational Databases
- The Perils of Built-in Encryption Functions
- Application-Layer Relational Database Cryptography
- Confused Deputies
- Canonicalization Attacks
- Multi-Tenancy
- Cryptography for NoSQL Databases
- NoSQL is Built Different
- Record Authentication
- Bonus: A Maximally Schema-Free, Upgradeable Authentication Design
- Searchable Encryption
- Order-{Preserving, Revealing} Encryption
- Deterministic Encryption
- Homomorphic Encryption
- Searchable Symmetric Encryption (SSE)
- You Can Have Little a HMAC, As a Treat
- Intermission
- Case Study: MongoDB Client-Side Encryption
- MongoCrypt: The Good
- How is Queryable Encryption Implemented?
- MongoCrypt: The Bad
- MongoCrypt: The Ugly
- MongoCrypt: The Good
- Wrapping Up
Database Cryptography?
The premise of database cryptography is deceptively simple: You have a database, of some sort, and you want to store sensitive data in said database.
The consequences of this simple premise are anything but simple. Let me explain.
Art: ScruffKerfluffThe sensitive data you want to store may need to remain confidential, or you may need to provide some sort of integrity guarantees throughout your entire system, or sometimes both. Sometimes all of your data is sensitive, sometimes only some of it is. Sometimes the confidentiality requirements of your data extends to where within a dataset the record you want actually lives. Sometimes that’s true of some data, but not others, so your cryptography has to be flexible to support multiple types of workloads.
Other times, you just want your disks encrypted at rest so if they grow legs and walk out of the data center, the data cannot be comprehended by an attacker. And you can’t be bothered to work on this problem any deeper. This is usually what compliance requirements cover. Boxes get checked, executives feel safer about their operation, and the whole time nobody has really analyzed the risks they’re facing.
But we’re not settling for mere compliance on this blog. Furries have standards, after all.
So the first thing you need to do before diving into database cryptography is threat modelling. The first step in any good threat model is taking inventory; especially of assumptions, requirements, and desired outcomes. A few good starter questions:
- What database software is being used? Is it up to date?
- What data is being stored in which database software?
- How are databases oriented in the network of the overall system?
- Is your database properly firewalled from the public Internet?
- How does data flow throughout the network, and when do these data flows intersect with the database?
- Which applications talk to the database? What languages are they written in? Which APIs do they use?
- How will cryptography secrets be managed?
- Is there one key for everyone, one key per tenant, etc.?
- How are keys rotated?
- Do you use envelope encryption with an HSM, or vend the raw materials to your end devices?
The first two questions are paramount for deciding how to write software for database cryptography, before you even get to thinking about the cryptography itself.
(This is not a comprehensive set of questions to ask, either. A formal threat model is much deeper in the weeds.)
The kind of cryptography protocol you need for, say, storing encrypted CSV files an S3 bucket is vastly different from relational (SQL) databases, which in turn will be significantly different from schema-free (NoSQL) databases.
Furthermore, when you get to the point that you can start to think about the cryptography, you’ll often need to tackle confidentiality and integrity separately.
If that’s unclear, think of a scenario like, “I need to encrypt PII, but I also need to digitally sign the lab results so I know it wasn’t tampered with at rest.”
My point is, right off the bat, we’ve got a three-dimensional matrix of complexity to contend with:
- On one axis, we have the type of database.
- Flat-file
- Relational
- Schema-free
- On another, we have the basic confidentiality requirements of the data.
- Field encryption
- Row encryption
- Column encryption
- Unstructured record encryption
- Encrypting entire collections of records
- Finally, we have the integrity requirements of the data.
- Field authentication
- Row/column authentication
- Unstructured record authentication
- Collection authentication (based on e.g. Sparse Merkle Trees)
And then you have a fourth dimension that often falls out of operational requirements for databases: Searchability.
Why store data in a database if you have no way to index or search the data for fast retrieval?
Credit: HarubakiIf you’re starting to feel overwhelmed, you’re not alone. A lot of developers drastically underestimate the difficulty of the undertaking, until they run head-first into the complexity.
Some just phone it in with
AES_Encrypt()calls in their MySQL queries. (Too bad ECB mode doesn’t provide semantic security!)Which brings us to the meat of this blog post: The actual cryptography part.
Cryptography is the art of transforming information security problems into key management problems.
Former coworker
Note: In the interest of time, I’m skipping over flat files and focusing instead on actual database technologies.
Cryptography for Relational Databases
Encrypting data in an SQL database seems simple enough, even if you’ve managed to shake off the complexity I teased from the introduction.
You’ve got data, you’ve got a column on a table. Just encrypt the data and shove it in a cell on that column and call it a day, right?
But, alas, this is a trap. There are so many gotchas that I can’t weave a coherent, easy-to-follow narrative between them all.
So let’s start with a simple question: where and how are you performing your encryption?
The Perils of Built-in Encryption Functions
MySQL provides functions called AES_Encrypt and AES_Decrypt, which many developers have unfortunately decided to rely on in the past.
It’s unfortunate because these functions implement ECB mode. To illustrate why ECB mode is bad, I encrypted one of my art commissions with AES in ECB mode:
Art by Riley, encrypted with AES-ECBThe problems with ECB mode aren’t exactly “you can see the image through it,” because ECB-encrypting a compressed image won’t have redundancy (and thus can make you feel safer than you are).
ECB art is a good visual for the actual issue you should care about, however: A lack of semantic security.
A cryptosystem is considered semantically secure if observing the ciphertext doesn’t reveal information about the plaintext (except, perhaps, the length; which all cryptosystems leak to some extent). More information here.
ECB art isn’t to be confused with ECB poetry, which looks like this:
Oh little one, you’re growing up
You’ll soon be writing C
You’ll treat your ints as pointers
You’ll nest the ternary
You’ll cut and paste from github
And try cryptography
But even in your darkest hour
Do not use ECBCBC’s BEASTly when padding’s abused
And CTR’s fine til a nonce is reused
Some say it’s a CRIME to compress then encrypt
Or store keys in the browser (or use javascript)
Diffie Hellman will collapse if hackers choose your g
And RSA is full of traps when e is set to 3
Whiten! Blind! In constant time! Don’t write an RNG!
But failing all, and listen well: Do not use ECBThey’ll say “It’s like a one-time-pad!
The data’s short, it’s not so bad
the keys are long–they’re iron clad
I have a PhD!”
And then you’re front page Hacker News
Your passwords cracked–Adobe Blues.
Don’t leave your penguins showing through,
Do not use ECB— Ben Nagy, PoC||GTFO 0x04:13
Most people reading this probably know better than to use ECB mode already, and don’t need any of these reminders, but there is still a lot of code that inadvertently uses ECB mode to encrypt data in the database.
Also,
Credit: CMYKattSHOW processlist;leaks your encryption keys. Oops.Application-layer Relational Database Cryptography
Whether burned by ECB or just cautious about not giving your secrets to the system that stores all the ciphertext protected by said secret, a common next step for developers is to simply encrypt in their server-side application code.
And, yes, that’s part of the answer. But how you encrypt is important.
Credit: Harubaki“I’ll encrypt with CBC mode.”
If you don’t authenticate your ciphertext, you’ll be sorry. Maybe try again?“Okay, fine, I’ll use an authenticated mode like GCM.”
Did you remember to make the table and column name part of your AAD? What about the primary key of the record?“What on Earth are you talking about, Soatok?”
Welcome to the first footgun of database cryptography!Confused Deputies
Encrypting your sensitive data is necessary, but not sufficient. You need to also bind your ciphertexts to the specific context in which they are stored.
To understand why, let’s take a step back: What specific threat does encrypting your database records protect against?
We’ve already established that “your disks walk out of the datacenter” is a “full disk encryption” problem, so if you’re using application-layer cryptography to encrypt data in a relational database, your threat model probably involves unauthorized access to the database server.
What, then, stops an attacker from copying ciphertexts around?
Credit: CMYKattLet’s say I have a legitimate user account with an ID 12345, and I want to read your street address, but it’s encrypted in the database. But because I’m a clever hacker, I have unfettered access to your relational database server.
All I would need to do is simply…
UPDATE table SET addr_encrypted = 'your-ciphertext' WHERE id = 12345…and then access the application through my legitimate access. Bam, data leaked. As an attacker, I can probably even copy fields from other columns and it will just decrypt. Even if you’re using an authenticated mode.
We call this a confused deputy attack, because the deputy (the component of the system that has been delegated some authority or privilege) has become confused by the attacker, and thus undermined an intended security goal.
The fix is to use the AAD parameter from the authenticated mode to bind the data to a given context. (AAD = Additional Authenticated Data.)
- $addr = aes_gcm_encrypt($addr, $key);+ $addr = aes_gcm_encrypt($addr, $key, canonicalize([+ $tableName,+ $columnName,+ $primaryKey+ ]);
Now if I start cutting and pasting ciphertexts around, I get a decryption failure instead of silently decrypting plaintext.
This may sound like a specific vulnerability, but it’s more of a failure to understand an important general lesson with database cryptography:
Where your data lives is part of its identity, and MUST be authenticated.
Soatok’s Rule of Database Cryptography
Canonicalization Attacks
In the previous section, I introduced a pseudocode called
canonicalize(). This isn’t a pasto from some reference code; it’s an important design detail that I will elaborate on now.First, consider you didn’t do anything to canonicalize your data, and you just joined strings together and called it a day…
function dumbCanonicalize( string $tableName, string $columnName, string|int $primaryKey): string { return $tableName . '_' . $columnName . '#' . $primaryKey;}Consider these two inputs to this function:
dumbCanonicalize('customers', 'last_order_uuid', 123);dumbCanonicalize('customers_last_order', 'uuid', 123);
In this case, your AAD would be the same, and therefore, your deputy can still be confused (albeit in a narrower use case).
In Cendyne’s article, AnonCo did something more subtle: The canonicalization bug created a collision on the inputs to HKDF, which resulted in an unintentional key reuse.
Up until this point, their mistake isn’t relevant to us, because we haven’t even explored key management at all. But the same design flaw can re-emerge in multiple locations, with drastically different consequence.
Multi-Tenancy
Once you’ve implemented a mitigation against Confused Deputies, you may think your job is done. And it very well could be.
Often times, however, software developers are tasked with building support for Bring Your Own Key (BYOK).
This is often spawned from a specific compliance requirement (such as cryptographic shredding; i.e. if you erase the key, you can no longer recover the plaintext, so it may as well be deleted).
Other times, this is driven by a need to cut costs: Storing different users’ data in the same database server, but encrypting it such that they can only encrypt their own records.
Two things can happen when you introduce multi-tenancy into your database cryptography designs:
- Invisible Salamanders becomes a risk, due to multiple keys being possible for any given encrypted record.
- Failure to address the risk of Invisible Salamanders can undermine your protection against Confused Deputies, thereby returning you to a state before you properly used the AAD.
So now you have to revisit your designs and ensure you’re using a key-committing authenticated mode, rather than just a regular authenticated mode.
Isn’t cryptography fun?
“What Are Invisible Salamanders?”
This refers to a fun property of AEAD modes based on Polynomical MACs. Basically, if you:
- Encrypt one message under a specific key and nonce.
- Encrypt another message under a separate key and nonce.
…Then you can get the same exact ciphertext and authentication tag. Performing this attack requires you to control the keys for both encryption operations.
This was first demonstrated in an attack against encrypted messaging applications, where a picture of a salamander was hidden from the abuse reporting feature because another attached file had the same authentication tag and ciphertext, and you could trick the system if you disclosed the second key instead of the first. Thus, the salamander is invisible to attackers.
Art: CMYKatWe’re not quite done with relational databases yet, but we should talk about NoSQL databases for a bit. The final topic in scope applies equally to both, after all.
Cryptography for NoSQL Databases
Most of the topics from relational databases also apply to NoSQL databases, so I shall refrain from duplicating them here. This article is already sufficiently long to read, after all, and I dislike redundancy.
NoSQL is Built Different
The main thing that NoSQL databases offer in the service of making cryptographers lose sleep at night is the schema-free nature of NoSQL designs.
What this means is that, if you’re using a client-side encryption library for a NoSQL database, the previous concerns about confused deputy attacks are amplified by the malleability of the document structure.
Additionally, the previously discussed cryptographic attacks against the encryption mode may be less expensive for an attacker to pull off.
Consider the following record structure, which stores a bunch of data stored with AES in CBC mode:
{ "encrypted-data-key": "<blob>", "name": "<ciphertext>", "address": [ "<ciphertext>", "<ciphertext>" ], "social-security": "<ciphertext>", "zip-code": "<ciphertext>"}If this record is decrypted with code that looks something like this:
$decrypted = [];// ... snip ...foreach ($record['address'] as $i => $addrLine) { try { $decrypted['address'][$i] = $this->decrypt($addrLine); } catch (Throwable $ex) { // You'd never deliberately do this, but it's for illustration $this->doSomethingAnOracleCanObserve($i); // This is more believable, of course: $this->logDecryptionError($ex, $addrLine); $decrypted['address'][$i] = ''; }}Then you can keep appending rows to the
Art: Harubaki"address"field to reduce the number of writes needed to exploit a padding oracle attack against any of the<ciphertext>fields.This isn’t to say that NoSQL is less secure than SQL, from the context of client-side encryption. However, the powerful feature sets that NoSQL users are accustomed to may also give attackers a more versatile toolkit to work with.
Record Authentication
A pedant may point out that record authentication applies to both SQL and NoSQL. However, I mostly only observe this feature in NoSQL databases and document storage systems in the wild, so I’m shoving it in here.
Encrypting fields is nice and all, but sometimes what you want to know is that your unencrypted data hasn’t been tampered with as it flows through your system.
The trivial way this is done is by using a digital signature algorithm over the whole record, and then appending the signature to the end. When you go to verify the record, all of the information you need is right there.
This works well enough for most use cases, and everyone can pack up and go home. Nothing more to see here.
Except…
When you’re working with NoSQL databases, you often want systems to be able to write to additional fields, and since you’re working with schema-free blobs of data rather than a normalized set of relatable tables, the most sensible thing to do is to is to append this data to the same record.
Except, oops! You can’t do that if you’re shoving a digital signature over the record. So now you need to specify which fields are to be included in the signature.
And you need to think about how to model that in a way that doesn’t prohibit schema upgrades nor allow attackers to perform downgrade attacks. (See below.)
I don’t have any specific real-world examples here that I can point to of this problem being solved well.Art: CMYKat
Furthermore, as with preventing confused deputy and/or canonicalization attacks above, you must also include the fully qualified path of each field in the data that gets signed.
As I said with encryption before, but also true here:
Where your data lives is part of its identity, and MUST be authenticated.
Soatok’s Rule of Database Cryptography
This requirement holds true whether you’re using symmetric-key authentication (i.e. HMAC) or asymmetric-key digital signatures (e.g. EdDSA).
Bonus: A Maximally Schema-Free, Upgradeable Authentication Design
Art: HarubakiOkay, how do you solve this problem so that you can perform updates and upgrades to your schema but without enabling attackers to downgrade the security? Here’s one possible design.
Let’s say you have two metadata fields on each record:
- A compressed binary string representing which fields should be authenticated. This field is, itself, not authenticated. Let’s call this
meta-auth. - A compressed binary string representing which of the authenticated fields should also be encrypted. This field is also authenticated. This is at most the same length as the first metadata field. Let’s call this
meta-enc.
Furthermore, you will specify a canonical field ordering for both how data is fed into the signature algorithm as well as the field mappings in
meta-authandmeta-enc.{ "example": { "credit-card": { "number": /* encrypted */, "expiration": /* encrypted */, "ccv": /* encrypted */ }, "superfluous": { "rewards-member": null } }, "meta-auth": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true /* meta-enc */ ]), "meta-enc": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false /* example.superfluous.rewards-member */ ]), "signature": /* -- snip -- */}When you go to append data to an existing record, you’ll need to update
meta-authto include the mapping of fields based on this canonical ordering to ensure only the intended fields get validated.When you update your code to add an additional field that is intended to be signed, you can roll that out for new records and the record will continue to be self-describing:
- New records will have the additional field flagged as authenticated in
meta-auth(andmeta-encwill grow) - Old records will not, but your code will still sign them successfully
- To prevent downgrade attacks, simply include a schema version ID as an additional plaintext field that gets authenticated. An attacker who tries to downgrade will need to be able to produce a valid signature too.
You might think
meta-authgives an attacker some advantage, but this only includes which fields are included in the security boundary of the signature or MAC, which allows unauthenticated data to be appended for whatever operational purpose without having to update signatures or expose signing keys to a wider part of the network.{ "example": { "credit-card": { "number": /* encrypted */, "expiration": /* encrypted */, "ccv": /* encrypted */ }, "superfluous": { "rewards-member": null } }, "meta-auth": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true, /* meta-enc */ true /* meta-version */ ]), "meta-enc": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true /* meta-version */ ]), "meta-version": 0x01000000, "signature": /* -- snip -- */}If an attacker tries to use the
meta-authfield to mess with a record, the best they can hope for is an Invalid Signature exception (assuming the signature algorithm is secure to begin with).Even if they keep all of the fields the same, but play around with the structure of the record (e.g. changing the XPath or equivalent), so long as the path is authenticated with each field, breaking this is computationally infeasible.
Searchable Encryption
If you’ve managed to make it through the previous sections, congratulations, you now know enough to build a secure but completely useless database.
Art: CMYKatOkay, put away the pitchforks; I will explain.
Part of the reason why we store data in a database, rather than a flat file, is because we want to do more than just read and write. Sometimes computer scientists want to compute. Almost always, you want to be able to query your database for a subset of records based on your specific business logic needs.
And so, a database which doesn’t do anything more than store ciphertext and maybe signatures is pretty useless to most people. You’d have better luck selling Monkey JPEGs to furries than convincing most businesses to part with their precious database-driven report generators.
Art: SophieSo whenever one of your users wants to actually use their data, rather than just store it, they’re forced to decide between two mutually exclusive options:
- Encrypting the data, to protect it from unauthorized disclosure, but render it useless
- Doing anything useful with the data, but leaving it unencrypted in the database
This is especially annoying for business types that are all in on the Zero Trust buzzword.
Fortunately, the cryptographers are at it again, and boy howdy do they have a lot of solutions for this problem.
Order-{Preserving, Revealing} Encryption
On the fun side of things, you have things like Order-Preserving and Order-Revealing Encryption, which Matthew Green wrote about at length.
[D]atabase encryption has been a controversial subject in our field. I wish I could say that there’s been an actual debate, but it’s more that different researchers have fallen into different camps, and nobody has really had the data to make their position in a compelling way. There have actually been some very personal arguments made about it.
Attack of the week: searchable encryption and the ever-expanding leakage function
The problem with these designs is that they have a significant enough leakage that it no longer provides semantic security.
From Grubbs, et al. (GLMP, 2019.)
Colors inverted to fit my blog’s theme better.To put it in other words: These designs are only marginally better than ECB mode, and probably deserve their own poems too.
Order revealing
Reveals much more than order
Softcore ECBOrder preserving
Semantic security?
Only in your dreamsHaiku for your consideration
Deterministic Encryption
Here’s a simpler, but also terrible, idea for searchable encryption: Simply give up on semantic security entirely.
If you recall the
AES_{De,En}crypt()functions built into MySQL I mentioned at the start of this article, those are the most common form of deterministic encryption I’ve seen in use.SELECT * FROM foo WHERE bar = AES_Encrypt('query', 'key');However, there are slightly less bad variants. If you use AES-GCM-SIV with a static nonce, your ciphertexts are fully deterministic, and you can encrypt a small number of distinct records safely before you’re no longer secure.
From Page 14 of the linked paper. Full view.That’s certainly better than nothing, but you also can’t mitigate confused deputy attacks. But we can do better than this.
Homomorphic Encryption
In a safer plane of academia, you’ll find homomorphic encryption, which researchers recently demonstrated with serving Wikipedia pages in a reasonable amount of time.
Homomorphic encryption allows computations over the ciphertext, which will be reflected in the plaintext, without ever revealing the key to the entity performing the computation.
If this sounds vaguely similar to the conditions that enable chosen-ciphertext attacks, you probably have a good intuition for how it works: RSA is homomorphic to multiplication, AES-CTR is homomorphic to XOR. Fully homomorphic encryption uses lattices, which enables multiple operations but carries a relatively enormous performance cost.
Art: HarubakiHomomorphic encryption sometimes intersects with machine learning, because the notion of training an encrypted model by feeding it encrypted data, then decrypting it after-the-fact is desirable for certain business verticals. Your data scientists never see your data, and you have some plausible deniability about the final ML model this work produces. This is like a Siren song for Venture Capitalist-backed medical technology companies. Tech journalists love writing about it.
However, a less-explored use case is the ability to encrypt your programs but still get the correct behavior and outputs. Although this sounds like a DRM technology, it’s actually something that individuals could one day use to prevent their ISPs or cloud providers from knowing what software is being executed on the customer’s leased hardware. The potential for a privacy win here is certainly worth pondering, even if you’re a tried and true Pirate Party member.
Just say “NO” to the copyright cartels.Art: CMYKat
Searchable Symmetric Encryption (SSE)
Forget about working at the level of fields and rows or individual records. What if we, instead, worked over collections of documents, where each document is viewed as a set of keywords from a keyword space?
Art: CMYKatThat’s the basic premise of SSE: Encrypting collections of documents rather than individual records.
The actual implementation details differ greatly between designs. They also differ greatly in their leakage profiles and susceptibility to side-channel attacks.
Some schemes use a so-called trapdoor permutation, such as RSA, as one of their building blocks.
Some schemes only allow for searching a static set of records, while others can accommodate new data over time (with the trade-off between more leakage or worse performance).
If you’re curious, you can learn more about SSE here, and see some open source SEE implementations online here.
You’re probably wondering, “If SSE is this well-studied and there are open source implementations available, why isn’t it more widely used?”
Your guess is as good as mine, but I can think of a few reasons:
- The protocols can be a little complicated to implement, and aren’t shipped by default in cryptography libraries (i.e. OpenSSL’s libcrypto or libsodium).
- Every known security risk in SSE is the product of a trade-offs, rather than there being a single winner for all use cases that developers can feel comfortable picking.
- Insufficient marketing and developer advocacy.
SSE schemes are mostly of interest to academics, although Seny Kamara (Brown Univeristy professior and one of the luminaries of searchable encryption) did try to develop an app called Pixek which used SSE to encrypt photos.
Maybe there’s room for a cryptography competition on searchable encryption schemes in the future.
You Can Have Little a HMAC, As a Treat
Finally, I can’t talk about searchable encryption without discussing a technique that’s older than dirt by Internet standards, that has been independently reinvented by countless software developers tasked with encrypting database records.
The oldest version I’ve been able to track down dates to 2006 by Raul Garcia at Microsoft, but I’m not confident that it didn’t exist before.
The idea I’m alluding to goes like this:
- Encrypt your data, securely, using symmetric cryptography.
(Hopefully your encryption addresses the considerations outlined in the relevant sections above.) - Separately, calculate an HMAC over the unencrypted data with a separate key used exclusively for indexing.
When you need to query your data, you can just recalculate the HMAC of your challenge and fetch the records that match it. Easy, right?
Even if you rotate your keys for encryption, you keep your indexing keys static across your entire data set. This lets you have durable indexes for encrypted data, which gives you the ability to do literal lookups for the performance hit of a hash function.
Additionally, everyone has HMAC in their toolkit, so you don’t have to move around implementations of complex cryptographic building blocks. You can live off the land. What’s not to love?
Hooray!However, if you stopped here, we regret to inform you that your data is no longer indistinguishable from random, which probably undermines the security proof for your encryption scheme.
How annoying!Of course, you don’t have to stop with the addition of plain HMAC to your database encryption software.
Take a page from Troy Hunt: Truncate the output to provide k-anonymity rather than a direct literal look-up.
“K-What Now?”
Imagine you have a full HMAC-SHA256 of the plaintext next to every ciphertext record with a static key, for searchability.
Each HMAC output corresponds 1:1 with a unique plaintext.
Because you’re using HMAC with a secret key, an attacker can’t just build a rainbow table like they would when attempting password cracking, but it still leaks duplicate plaintexts.
For example, an HMAC-SHA256 output might look like this:
Art: CMYKat\04a74e4c0158e34a566785d1a5e1167c4e3455c42aea173104e48ca810a8b1aeIf you were to slice off most of those bytes (e.g. leaving only the last 3, which in the previous example yields
a8b1ae), then with sufficient records, multiple plaintexts will now map to the same truncated HMAC tag.Which means if you’re only revealing a truncated HMAC tag to the database server (both when storing records or retrieving them), you can now expect false positives due to collisions in your truncated HMAC tag.
These false positives give your data a discrete set of anonymity (called k-anonymity), which means an attacker with access to your database cannot:
- Distinguish between two encrypted records with the same short HMAC tag.
- Reverse engineer the short HMAC tag into a single possible plaintext value, even if they can supply candidate queries and study the tags sent to the database.
As with SSE above, this short HMAC technique exposes a trade-off to users.
- Too much k-anonymity (i.e. too many false positives), and you will have to decrypt-then-discard multiple mismatching records. This can make queries slow.
- Not enough k-anonymity (i.e. insufficient false positives), and you’re no better off than a full HMAC.
Even more troublesome, the right amount to truncate is expressed in bits (not bytes), and calculating this value depends on the number of unique plaintext values you anticipate in your dataset. (Fortunately, it grows logarithmically, so you’ll rarely if ever have to tune this.)
If you’d like to play with this idea, here’s a quick and dirty demo script.
Intermission
If you started reading this post with any doubts about Cendyne’s statement that “Database cryptography is hard”, by making it to this point, they’ve probably been long since put to rest.
Art: HarubakiConversely, anyone that specializes in this topic is probably waiting for me to say anything novel or interesting; their patience wearing thin as I continue to rehash a surface-level introduction of their field without really diving deep into anything.
Thus, if you’ve read this far, I’d like to demonstrate the application of what I’ve covered thus far into a real-world case study into an database cryptography product.
Case Study: MongoDB Client-Side Encryption
MongoDB is an open source schema-free NoSQL database. Last year, MongoDB made waves when they announced Queryable Encryption in their upcoming client-side encryption release.
Taken from the press release, but adapted for dark themes.A statement at the bottom of their press release indicates that this isn’t clown-shoes:
Queryable Encryption was designed by MongoDB’s Advanced Cryptography Research Group, headed by Seny Kamara and Tarik Moataz, who are pioneers in the field of encrypted search. The Group conducts cutting-edge peer-reviewed research in cryptography and works with MongoDB engineering teams to transfer and deploy the latest innovations in cryptography and privacy to the MongoDB data platform.
If you recall, I mentioned Seny Kamara in the SSE section of this post. They certainly aren’t wrong about Kamara and Moataz being pioneers in this field.
So with that in mind, let’s explore the implementation in libmongocrypt and see how it stands up to scrutiny.
MongoCrypt: The Good
MongoDB’s encryption library takes key management seriously: They provide a KMS integration for cloud users by default (supporting both AWS and Azure).
MongoDB uses Encrypt-then-MAC with AES-CBC and HMAC-SHA256, which is congruent to what Signal does for message encryption.
How Is Queryable Encryption Implemented?
From the current source code, we can see that MongoCrypt generates several different types of tokens, using HMAC (calculation defined here).
According to their press release:
The feature supports equality searches, with additional query types such as range, prefix, suffix, and substring planned for future releases.
Which means that most of the juicy details probably aren’t public yet.
These HMAC-derived tokens are stored wholesale in the data structure, but most are encrypted before storage using AES-CTR.
There are more layers of encryption (using AEAD), server-side token processing, and more AES-CTR-encrypted edge tokens. All of this is finally serialized (implementation) as one blob for storage.
Since only the equality operation is currently supported (which is the same feature you’d get from HMAC), it’s difficult to speculate what the full feature set looks like.
However, since Kamara and Moataz are leading its development, it’s likely that this feature set will be excellent.
MongoCrypt: The Bad
Every call to
do_encrypt()includes at most the Key ID (but typicallyNULL) as the AAD. This means that the concerns over Confused Deputies (and NoSQL specifically) are relevant to MongoDB.However, even if they did support authenticating the fully qualified path to a field in the AAD for their encryption, their AEAD construction is vulnerable to the kind of canonicalization attack I wrote about previously.
First, observe this code which assembles the multi-part inputs into HMAC.
/* Construct the input to the HMAC */uint32_t num_intermediates = 0;_mongocrypt_buffer_t intermediates[3];// -- snip --if (!_mongocrypt_buffer_concat ( &to_hmac, intermediates, num_intermediates)) { CLIENT_ERR ("failed to allocate buffer"); goto done;}if (hmac == HMAC_SHA_512_256) { uint8_t storage[64]; _mongocrypt_buffer_t tag = {.data = storage, .len = sizeof (storage)}; if (!_crypto_hmac_sha_512 (crypto, Km, &to_hmac, &tag, status)) { goto done; } // Truncate sha512 to first 256 bits. memcpy (out->data, tag.data, MONGOCRYPT_HMAC_LEN);} else { BSON_ASSERT (hmac == HMAC_SHA_256); if (!_mongocrypt_hmac_sha_256 (crypto, Km, &to_hmac, out, status)) { goto done; }}The implementation of
_mongocrypt_buffer_concat()can be found here.If either the implementation of that function, or the code I snipped from my excerpt, had contained code that prefixed every segment of the AAD with the length of the segment (represented as a
uint64_tto make overflow infeasible), then their AEAD mode would not be vulnerable to canonicalization issues.Using TupleHash would also have prevented this issue.
Silver lining for MongoDB developers: Because the AAD is either a key ID or NULL, this isn’t exploitable in practice.
The first cryptographic flaw sort of cancels the second out.
If the libmongocrypt developers ever want to mitigate Confused Deputy attacks, they’ll need to address this canonicalization issue too.
MongoCrypt: The Ugly
MongoCrypt supports deterministic encryption.
If you specify deterministic encryption for a field, your application passes a deterministic initialization vector to AEAD.
We already discussed why this is bad above.
Wrapping Up
This was not a comprehensive treatment of the field of database cryptography. There are many areas of this field that I did not cover, nor do I feel qualified to discuss.
However, I hope anyone who takes the time to read this finds themselves more familiar with the subject.
Additionally, I hope any developers who think “encrypting data in a database is [easy, trivial] (select appropriate)” will find this broad introduction a humbling experience.
Art: CMYKathttps://soatok.blog/2023/03/01/database-cryptography-fur-the-rest-of-us/
#appliedCryptography #blockCipherModes #cryptography #databaseCryptography #databases #encryptedSearch #HMAC #MongoCrypt #MongoDB #QueryableEncryption #realWorldCryptography #security #SecurityGuidance #SQL #SSE #symmetricCryptography #symmetricSearchableEncryption
-
Earlier this year, Cendyne wrote a blog post covering the use of HKDF, building partially upon my own blog post about HKDF and the KDF security definition, but moreso inspired by a cryptographic issue they identified in another company’s product (dubbed AnonCo).
At the bottom they teased:
Database cryptography is hard. The above sketch is not complete and does not address several threats! This article is quite long, so I will not be sharing the fixes.
Cendyne
If you read Cendyne’s post, you may have nodded along with that remark and not appreciate the degree to which our naga friend was putting it mildly. So I thought I’d share some of my knowledge about real-world database cryptography in an accessible and fun format in the hopes that it might serve as an introduction to the specialization.
Note: I’m also not going to fix Cendyne’s sketch of AnonCo’s software here–partly because I don’t want to get in the habit of assigning homework or required reading, but mostly because it’s kind of obvious once you’ve learned the basics.
I’m including art of my fursona in this post… as is tradition for furry blogs.If you don’t like furries, please feel free to leave this blog and read about this topic elsewhere.
Thanks to CMYKat for the awesome stickers.
Contents
- Database Cryptography?
- Cryptography for Relational Databases
- The Perils of Built-in Encryption Functions
- Application-Layer Relational Database Cryptography
- Confused Deputies
- Canonicalization Attacks
- Multi-Tenancy
- Cryptography for NoSQL Databases
- NoSQL is Built Different
- Record Authentication
- Bonus: A Maximally Schema-Free, Upgradeable Authentication Design
- Searchable Encryption
- Order-{Preserving, Revealing} Encryption
- Deterministic Encryption
- Homomorphic Encryption
- Searchable Symmetric Encryption (SSE)
- You Can Have Little a HMAC, As a Treat
- Intermission
- Case Study: MongoDB Client-Side Encryption
- MongoCrypt: The Good
- How is Queryable Encryption Implemented?
- MongoCrypt: The Bad
- MongoCrypt: The Ugly
- MongoCrypt: The Good
- Wrapping Up
Database Cryptography?
The premise of database cryptography is deceptively simple: You have a database, of some sort, and you want to store sensitive data in said database.
The consequences of this simple premise are anything but simple. Let me explain.
Art: ScruffKerfluffThe sensitive data you want to store may need to remain confidential, or you may need to provide some sort of integrity guarantees throughout your entire system, or sometimes both. Sometimes all of your data is sensitive, sometimes only some of it is. Sometimes the confidentiality requirements of your data extends to where within a dataset the record you want actually lives. Sometimes that’s true of some data, but not others, so your cryptography has to be flexible to support multiple types of workloads.
Other times, you just want your disks encrypted at rest so if they grow legs and walk out of the data center, the data cannot be comprehended by an attacker. And you can’t be bothered to work on this problem any deeper. This is usually what compliance requirements cover. Boxes get checked, executives feel safer about their operation, and the whole time nobody has really analyzed the risks they’re facing.
But we’re not settling for mere compliance on this blog. Furries have standards, after all.
So the first thing you need to do before diving into database cryptography is threat modelling. The first step in any good threat model is taking inventory; especially of assumptions, requirements, and desired outcomes. A few good starter questions:
- What database software is being used? Is it up to date?
- What data is being stored in which database software?
- How are databases oriented in the network of the overall system?
- Is your database properly firewalled from the public Internet?
- How does data flow throughout the network, and when do these data flows intersect with the database?
- Which applications talk to the database? What languages are they written in? Which APIs do they use?
- How will cryptography secrets be managed?
- Is there one key for everyone, one key per tenant, etc.?
- How are keys rotated?
- Do you use envelope encryption with an HSM, or vend the raw materials to your end devices?
The first two questions are paramount for deciding how to write software for database cryptography, before you even get to thinking about the cryptography itself.
(This is not a comprehensive set of questions to ask, either. A formal threat model is much deeper in the weeds.)
The kind of cryptography protocol you need for, say, storing encrypted CSV files an S3 bucket is vastly different from relational (SQL) databases, which in turn will be significantly different from schema-free (NoSQL) databases.
Furthermore, when you get to the point that you can start to think about the cryptography, you’ll often need to tackle confidentiality and integrity separately.
If that’s unclear, think of a scenario like, “I need to encrypt PII, but I also need to digitally sign the lab results so I know it wasn’t tampered with at rest.”
My point is, right off the bat, we’ve got a three-dimensional matrix of complexity to contend with:
- On one axis, we have the type of database.
- Flat-file
- Relational
- Schema-free
- On another, we have the basic confidentiality requirements of the data.
- Field encryption
- Row encryption
- Column encryption
- Unstructured record encryption
- Encrypting entire collections of records
- Finally, we have the integrity requirements of the data.
- Field authentication
- Row/column authentication
- Unstructured record authentication
- Collection authentication (based on e.g. Sparse Merkle Trees)
And then you have a fourth dimension that often falls out of operational requirements for databases: Searchability.
Why store data in a database if you have no way to index or search the data for fast retrieval?
Credit: HarubakiIf you’re starting to feel overwhelmed, you’re not alone. A lot of developers drastically underestimate the difficulty of the undertaking, until they run head-first into the complexity.
Some just phone it in with
AES_Encrypt()calls in their MySQL queries. (Too bad ECB mode doesn’t provide semantic security!)Which brings us to the meat of this blog post: The actual cryptography part.
Cryptography is the art of transforming information security problems into key management problems.
Former coworker
Note: In the interest of time, I’m skipping over flat files and focusing instead on actual database technologies.
Cryptography for Relational Databases
Encrypting data in an SQL database seems simple enough, even if you’ve managed to shake off the complexity I teased from the introduction.
You’ve got data, you’ve got a column on a table. Just encrypt the data and shove it in a cell on that column and call it a day, right?
But, alas, this is a trap. There are so many gotchas that I can’t weave a coherent, easy-to-follow narrative between them all.
So let’s start with a simple question: where and how are you performing your encryption?
The Perils of Built-in Encryption Functions
MySQL provides functions called AES_Encrypt and AES_Decrypt, which many developers have unfortunately decided to rely on in the past.
It’s unfortunate because these functions implement ECB mode. To illustrate why ECB mode is bad, I encrypted one of my art commissions with AES in ECB mode:
Art by Riley, encrypted with AES-ECBThe problems with ECB mode aren’t exactly “you can see the image through it,” because ECB-encrypting a compressed image won’t have redundancy (and thus can make you feel safer than you are).
ECB art is a good visual for the actual issue you should care about, however: A lack of semantic security.
A cryptosystem is considered semantically secure if observing the ciphertext doesn’t reveal information about the plaintext (except, perhaps, the length; which all cryptosystems leak to some extent). More information here.
ECB art isn’t to be confused with ECB poetry, which looks like this:
Oh little one, you’re growing up
You’ll soon be writing C
You’ll treat your ints as pointers
You’ll nest the ternary
You’ll cut and paste from github
And try cryptography
But even in your darkest hour
Do not use ECBCBC’s BEASTly when padding’s abused
And CTR’s fine til a nonce is reused
Some say it’s a CRIME to compress then encrypt
Or store keys in the browser (or use javascript)
Diffie Hellman will collapse if hackers choose your g
And RSA is full of traps when e is set to 3
Whiten! Blind! In constant time! Don’t write an RNG!
But failing all, and listen well: Do not use ECBThey’ll say “It’s like a one-time-pad!
The data’s short, it’s not so bad
the keys are long–they’re iron clad
I have a PhD!”
And then you’re front page Hacker News
Your passwords cracked–Adobe Blues.
Don’t leave your penguins showing through,
Do not use ECB— Ben Nagy, PoC||GTFO 0x04:13
Most people reading this probably know better than to use ECB mode already, and don’t need any of these reminders, but there is still a lot of code that inadvertently uses ECB mode to encrypt data in the database.
Also,
Credit: CMYKattSHOW processlist;leaks your encryption keys. Oops.Application-layer Relational Database Cryptography
Whether burned by ECB or just cautious about not giving your secrets to the system that stores all the ciphertext protected by said secret, a common next step for developers is to simply encrypt in their server-side application code.
And, yes, that’s part of the answer. But how you encrypt is important.
Credit: Harubaki“I’ll encrypt with CBC mode.”
If you don’t authenticate your ciphertext, you’ll be sorry. Maybe try again?“Okay, fine, I’ll use an authenticated mode like GCM.”
Did you remember to make the table and column name part of your AAD? What about the primary key of the record?“What on Earth are you talking about, Soatok?”
Welcome to the first footgun of database cryptography!Confused Deputies
Encrypting your sensitive data is necessary, but not sufficient. You need to also bind your ciphertexts to the specific context in which they are stored.
To understand why, let’s take a step back: What specific threat does encrypting your database records protect against?
We’ve already established that “your disks walk out of the datacenter” is a “full disk encryption” problem, so if you’re using application-layer cryptography to encrypt data in a relational database, your threat model probably involves unauthorized access to the database server.
What, then, stops an attacker from copying ciphertexts around?
Credit: CMYKattLet’s say I have a legitimate user account with an ID 12345, and I want to read your street address, but it’s encrypted in the database. But because I’m a clever hacker, I have unfettered access to your relational database server.
All I would need to do is simply…
UPDATE table SET addr_encrypted = 'your-ciphertext' WHERE id = 12345…and then access the application through my legitimate access. Bam, data leaked. As an attacker, I can probably even copy fields from other columns and it will just decrypt. Even if you’re using an authenticated mode.
We call this a confused deputy attack, because the deputy (the component of the system that has been delegated some authority or privilege) has become confused by the attacker, and thus undermined an intended security goal.
The fix is to use the AAD parameter from the authenticated mode to bind the data to a given context. (AAD = Additional Authenticated Data.)
- $addr = aes_gcm_encrypt($addr, $key);+ $addr = aes_gcm_encrypt($addr, $key, canonicalize([+ $tableName,+ $columnName,+ $primaryKey+ ]);
Now if I start cutting and pasting ciphertexts around, I get a decryption failure instead of silently decrypting plaintext.
This may sound like a specific vulnerability, but it’s more of a failure to understand an important general lesson with database cryptography:
Where your data lives is part of its identity, and MUST be authenticated.
Soatok’s Rule of Database Cryptography
Canonicalization Attacks
In the previous section, I introduced a pseudocode called
canonicalize(). This isn’t a pasto from some reference code; it’s an important design detail that I will elaborate on now.First, consider you didn’t do anything to canonicalize your data, and you just joined strings together and called it a day…
function dumbCanonicalize( string $tableName, string $columnName, string|int $primaryKey): string { return $tableName . '_' . $columnName . '#' . $primaryKey;}Consider these two inputs to this function:
dumbCanonicalize('customers', 'last_order_uuid', 123);dumbCanonicalize('customers_last_order', 'uuid', 123);
In this case, your AAD would be the same, and therefore, your deputy can still be confused (albeit in a narrower use case).
In Cendyne’s article, AnonCo did something more subtle: The canonicalization bug created a collision on the inputs to HKDF, which resulted in an unintentional key reuse.
Up until this point, their mistake isn’t relevant to us, because we haven’t even explored key management at all. But the same design flaw can re-emerge in multiple locations, with drastically different consequence.
Multi-Tenancy
Once you’ve implemented a mitigation against Confused Deputies, you may think your job is done. And it very well could be.
Often times, however, software developers are tasked with building support for Bring Your Own Key (BYOK).
This is often spawned from a specific compliance requirement (such as cryptographic shredding; i.e. if you erase the key, you can no longer recover the plaintext, so it may as well be deleted).
Other times, this is driven by a need to cut costs: Storing different users’ data in the same database server, but encrypting it such that they can only encrypt their own records.
Two things can happen when you introduce multi-tenancy into your database cryptography designs:
- Invisible Salamanders becomes a risk, due to multiple keys being possible for any given encrypted record.
- Failure to address the risk of Invisible Salamanders can undermine your protection against Confused Deputies, thereby returning you to a state before you properly used the AAD.
So now you have to revisit your designs and ensure you’re using a key-committing authenticated mode, rather than just a regular authenticated mode.
Isn’t cryptography fun?
“What Are Invisible Salamanders?”
This refers to a fun property of AEAD modes based on Polynomical MACs. Basically, if you:
- Encrypt one message under a specific key and nonce.
- Encrypt another message under a separate key and nonce.
…Then you can get the same exact ciphertext and authentication tag. Performing this attack requires you to control the keys for both encryption operations.
This was first demonstrated in an attack against encrypted messaging applications, where a picture of a salamander was hidden from the abuse reporting feature because another attached file had the same authentication tag and ciphertext, and you could trick the system if you disclosed the second key instead of the first. Thus, the salamander is invisible to attackers.
Art: CMYKatWe’re not quite done with relational databases yet, but we should talk about NoSQL databases for a bit. The final topic in scope applies equally to both, after all.
Cryptography for NoSQL Databases
Most of the topics from relational databases also apply to NoSQL databases, so I shall refrain from duplicating them here. This article is already sufficiently long to read, after all, and I dislike redundancy.
NoSQL is Built Different
The main thing that NoSQL databases offer in the service of making cryptographers lose sleep at night is the schema-free nature of NoSQL designs.
What this means is that, if you’re using a client-side encryption library for a NoSQL database, the previous concerns about confused deputy attacks are amplified by the malleability of the document structure.
Additionally, the previously discussed cryptographic attacks against the encryption mode may be less expensive for an attacker to pull off.
Consider the following record structure, which stores a bunch of data stored with AES in CBC mode:
{ "encrypted-data-key": "<blob>", "name": "<ciphertext>", "address": [ "<ciphertext>", "<ciphertext>" ], "social-security": "<ciphertext>", "zip-code": "<ciphertext>"}If this record is decrypted with code that looks something like this:
$decrypted = [];// ... snip ...foreach ($record['address'] as $i => $addrLine) { try { $decrypted['address'][$i] = $this->decrypt($addrLine); } catch (Throwable $ex) { // You'd never deliberately do this, but it's for illustration $this->doSomethingAnOracleCanObserve($i); // This is more believable, of course: $this->logDecryptionError($ex, $addrLine); $decrypted['address'][$i] = ''; }}Then you can keep appending rows to the
Art: Harubaki"address"field to reduce the number of writes needed to exploit a padding oracle attack against any of the<ciphertext>fields.This isn’t to say that NoSQL is less secure than SQL, from the context of client-side encryption. However, the powerful feature sets that NoSQL users are accustomed to may also give attackers a more versatile toolkit to work with.
Record Authentication
A pedant may point out that record authentication applies to both SQL and NoSQL. However, I mostly only observe this feature in NoSQL databases and document storage systems in the wild, so I’m shoving it in here.
Encrypting fields is nice and all, but sometimes what you want to know is that your unencrypted data hasn’t been tampered with as it flows through your system.
The trivial way this is done is by using a digital signature algorithm over the whole record, and then appending the signature to the end. When you go to verify the record, all of the information you need is right there.
This works well enough for most use cases, and everyone can pack up and go home. Nothing more to see here.
Except…
When you’re working with NoSQL databases, you often want systems to be able to write to additional fields, and since you’re working with schema-free blobs of data rather than a normalized set of relatable tables, the most sensible thing to do is to is to append this data to the same record.
Except, oops! You can’t do that if you’re shoving a digital signature over the record. So now you need to specify which fields are to be included in the signature.
And you need to think about how to model that in a way that doesn’t prohibit schema upgrades nor allow attackers to perform downgrade attacks. (See below.)
I don’t have any specific real-world examples here that I can point to of this problem being solved well.Art: CMYKat
Furthermore, as with preventing confused deputy and/or canonicalization attacks above, you must also include the fully qualified path of each field in the data that gets signed.
As I said with encryption before, but also true here:
Where your data lives is part of its identity, and MUST be authenticated.
Soatok’s Rule of Database Cryptography
This requirement holds true whether you’re using symmetric-key authentication (i.e. HMAC) or asymmetric-key digital signatures (e.g. EdDSA).
Bonus: A Maximally Schema-Free, Upgradeable Authentication Design
Art: HarubakiOkay, how do you solve this problem so that you can perform updates and upgrades to your schema but without enabling attackers to downgrade the security? Here’s one possible design.
Let’s say you have two metadata fields on each record:
- A compressed binary string representing which fields should be authenticated. This field is, itself, not authenticated. Let’s call this
meta-auth. - A compressed binary string representing which of the authenticated fields should also be encrypted. This field is also authenticated. This is at most the same length as the first metadata field. Let’s call this
meta-enc.
Furthermore, you will specify a canonical field ordering for both how data is fed into the signature algorithm as well as the field mappings in
meta-authandmeta-enc.{ "example": { "credit-card": { "number": /* encrypted */, "expiration": /* encrypted */, "ccv": /* encrypted */ }, "superfluous": { "rewards-member": null } }, "meta-auth": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true /* meta-enc */ ]), "meta-enc": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false /* example.superfluous.rewards-member */ ]), "signature": /* -- snip -- */}When you go to append data to an existing record, you’ll need to update
meta-authto include the mapping of fields based on this canonical ordering to ensure only the intended fields get validated.When you update your code to add an additional field that is intended to be signed, you can roll that out for new records and the record will continue to be self-describing:
- New records will have the additional field flagged as authenticated in
meta-auth(andmeta-encwill grow) - Old records will not, but your code will still sign them successfully
- To prevent downgrade attacks, simply include a schema version ID as an additional plaintext field that gets authenticated. An attacker who tries to downgrade will need to be able to produce a valid signature too.
You might think
meta-authgives an attacker some advantage, but this only includes which fields are included in the security boundary of the signature or MAC, which allows unauthenticated data to be appended for whatever operational purpose without having to update signatures or expose signing keys to a wider part of the network.{ "example": { "credit-card": { "number": /* encrypted */, "expiration": /* encrypted */, "ccv": /* encrypted */ }, "superfluous": { "rewards-member": null } }, "meta-auth": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true, /* meta-enc */ true /* meta-version */ ]), "meta-enc": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true /* meta-version */ ]), "meta-version": 0x01000000, "signature": /* -- snip -- */}If an attacker tries to use the
meta-authfield to mess with a record, the best they can hope for is an Invalid Signature exception (assuming the signature algorithm is secure to begin with).Even if they keep all of the fields the same, but play around with the structure of the record (e.g. changing the XPath or equivalent), so long as the path is authenticated with each field, breaking this is computationally infeasible.
Searchable Encryption
If you’ve managed to make it through the previous sections, congratulations, you now know enough to build a secure but completely useless database.
Art: CMYKatOkay, put away the pitchforks; I will explain.
Part of the reason why we store data in a database, rather than a flat file, is because we want to do more than just read and write. Sometimes computer scientists want to compute. Almost always, you want to be able to query your database for a subset of records based on your specific business logic needs.
And so, a database which doesn’t do anything more than store ciphertext and maybe signatures is pretty useless to most people. You’d have better luck selling Monkey JPEGs to furries than convincing most businesses to part with their precious database-driven report generators.
Art: SophieSo whenever one of your users wants to actually use their data, rather than just store it, they’re forced to decide between two mutually exclusive options:
- Encrypting the data, to protect it from unauthorized disclosure, but render it useless
- Doing anything useful with the data, but leaving it unencrypted in the database
This is especially annoying for business types that are all in on the Zero Trust buzzword.
Fortunately, the cryptographers are at it again, and boy howdy do they have a lot of solutions for this problem.
Order-{Preserving, Revealing} Encryption
On the fun side of things, you have things like Order-Preserving and Order-Revealing Encryption, which Matthew Green wrote about at length.
[D]atabase encryption has been a controversial subject in our field. I wish I could say that there’s been an actual debate, but it’s more that different researchers have fallen into different camps, and nobody has really had the data to make their position in a compelling way. There have actually been some very personal arguments made about it.
Attack of the week: searchable encryption and the ever-expanding leakage function
The problem with these designs is that they have a significant enough leakage that it no longer provides semantic security.
From Grubbs, et al. (GLMP, 2019.)
Colors inverted to fit my blog’s theme better.To put it in other words: These designs are only marginally better than ECB mode, and probably deserve their own poems too.
Order revealing
Reveals much more than order
Softcore ECBOrder preserving
Semantic security?
Only in your dreamsHaiku for your consideration
Deterministic Encryption
Here’s a simpler, but also terrible, idea for searchable encryption: Simply give up on semantic security entirely.
If you recall the
AES_{De,En}crypt()functions built into MySQL I mentioned at the start of this article, those are the most common form of deterministic encryption I’ve seen in use.SELECT * FROM foo WHERE bar = AES_Encrypt('query', 'key');However, there are slightly less bad variants. If you use AES-GCM-SIV with a static nonce, your ciphertexts are fully deterministic, and you can encrypt a small number of distinct records safely before you’re no longer secure.
From Page 14 of the linked paper. Full view.That’s certainly better than nothing, but you also can’t mitigate confused deputy attacks. But we can do better than this.
Homomorphic Encryption
In a safer plane of academia, you’ll find homomorphic encryption, which researchers recently demonstrated with serving Wikipedia pages in a reasonable amount of time.
Homomorphic encryption allows computations over the ciphertext, which will be reflected in the plaintext, without ever revealing the key to the entity performing the computation.
If this sounds vaguely similar to the conditions that enable chosen-ciphertext attacks, you probably have a good intuition for how it works: RSA is homomorphic to multiplication, AES-CTR is homomorphic to XOR. Fully homomorphic encryption uses lattices, which enables multiple operations but carries a relatively enormous performance cost.
Art: HarubakiHomomorphic encryption sometimes intersects with machine learning, because the notion of training an encrypted model by feeding it encrypted data, then decrypting it after-the-fact is desirable for certain business verticals. Your data scientists never see your data, and you have some plausible deniability about the final ML model this work produces. This is like a Siren song for Venture Capitalist-backed medical technology companies. Tech journalists love writing about it.
However, a less-explored use case is the ability to encrypt your programs but still get the correct behavior and outputs. Although this sounds like a DRM technology, it’s actually something that individuals could one day use to prevent their ISPs or cloud providers from knowing what software is being executed on the customer’s leased hardware. The potential for a privacy win here is certainly worth pondering, even if you’re a tried and true Pirate Party member.
Just say “NO” to the copyright cartels.Art: CMYKat
Searchable Symmetric Encryption (SSE)
Forget about working at the level of fields and rows or individual records. What if we, instead, worked over collections of documents, where each document is viewed as a set of keywords from a keyword space?
Art: CMYKatThat’s the basic premise of SSE: Encrypting collections of documents rather than individual records.
The actual implementation details differ greatly between designs. They also differ greatly in their leakage profiles and susceptibility to side-channel attacks.
Some schemes use a so-called trapdoor permutation, such as RSA, as one of their building blocks.
Some schemes only allow for searching a static set of records, while others can accommodate new data over time (with the trade-off between more leakage or worse performance).
If you’re curious, you can learn more about SSE here, and see some open source SEE implementations online here.
You’re probably wondering, “If SSE is this well-studied and there are open source implementations available, why isn’t it more widely used?”
Your guess is as good as mine, but I can think of a few reasons:
- The protocols can be a little complicated to implement, and aren’t shipped by default in cryptography libraries (i.e. OpenSSL’s libcrypto or libsodium).
- Every known security risk in SSE is the product of a trade-offs, rather than there being a single winner for all use cases that developers can feel comfortable picking.
- Insufficient marketing and developer advocacy.
SSE schemes are mostly of interest to academics, although Seny Kamara (Brown Univeristy professior and one of the luminaries of searchable encryption) did try to develop an app called Pixek which used SSE to encrypt photos.
Maybe there’s room for a cryptography competition on searchable encryption schemes in the future.
You Can Have Little a HMAC, As a Treat
Finally, I can’t talk about searchable encryption without discussing a technique that’s older than dirt by Internet standards, that has been independently reinvented by countless software developers tasked with encrypting database records.
The oldest version I’ve been able to track down dates to 2006 by Raul Garcia at Microsoft, but I’m not confident that it didn’t exist before.
The idea I’m alluding to goes like this:
- Encrypt your data, securely, using symmetric cryptography.
(Hopefully your encryption addresses the considerations outlined in the relevant sections above.) - Separately, calculate an HMAC over the unencrypted data with a separate key used exclusively for indexing.
When you need to query your data, you can just recalculate the HMAC of your challenge and fetch the records that match it. Easy, right?
Even if you rotate your keys for encryption, you keep your indexing keys static across your entire data set. This lets you have durable indexes for encrypted data, which gives you the ability to do literal lookups for the performance hit of a hash function.
Additionally, everyone has HMAC in their toolkit, so you don’t have to move around implementations of complex cryptographic building blocks. You can live off the land. What’s not to love?
Hooray!However, if you stopped here, we regret to inform you that your data is no longer indistinguishable from random, which probably undermines the security proof for your encryption scheme.
How annoying!Of course, you don’t have to stop with the addition of plain HMAC to your database encryption software.
Take a page from Troy Hunt: Truncate the output to provide k-anonymity rather than a direct literal look-up.
“K-What Now?”
Imagine you have a full HMAC-SHA256 of the plaintext next to every ciphertext record with a static key, for searchability.
Each HMAC output corresponds 1:1 with a unique plaintext.
Because you’re using HMAC with a secret key, an attacker can’t just build a rainbow table like they would when attempting password cracking, but it still leaks duplicate plaintexts.
For example, an HMAC-SHA256 output might look like this:
Art: CMYKat\04a74e4c0158e34a566785d1a5e1167c4e3455c42aea173104e48ca810a8b1aeIf you were to slice off most of those bytes (e.g. leaving only the last 3, which in the previous example yields
a8b1ae), then with sufficient records, multiple plaintexts will now map to the same truncated HMAC tag.Which means if you’re only revealing a truncated HMAC tag to the database server (both when storing records or retrieving them), you can now expect false positives due to collisions in your truncated HMAC tag.
These false positives give your data a discrete set of anonymity (called k-anonymity), which means an attacker with access to your database cannot:
- Distinguish between two encrypted records with the same short HMAC tag.
- Reverse engineer the short HMAC tag into a single possible plaintext value, even if they can supply candidate queries and study the tags sent to the database.
As with SSE above, this short HMAC technique exposes a trade-off to users.
- Too much k-anonymity (i.e. too many false positives), and you will have to decrypt-then-discard multiple mismatching records. This can make queries slow.
- Not enough k-anonymity (i.e. insufficient false positives), and you’re no better off than a full HMAC.
Even more troublesome, the right amount to truncate is expressed in bits (not bytes), and calculating this value depends on the number of unique plaintext values you anticipate in your dataset. (Fortunately, it grows logarithmically, so you’ll rarely if ever have to tune this.)
If you’d like to play with this idea, here’s a quick and dirty demo script.
Intermission
If you started reading this post with any doubts about Cendyne’s statement that “Database cryptography is hard”, by making it to this point, they’ve probably been long since put to rest.
Art: HarubakiConversely, anyone that specializes in this topic is probably waiting for me to say anything novel or interesting; their patience wearing thin as I continue to rehash a surface-level introduction of their field without really diving deep into anything.
Thus, if you’ve read this far, I’d like to demonstrate the application of what I’ve covered thus far into a real-world case study into an database cryptography product.
Case Study: MongoDB Client-Side Encryption
MongoDB is an open source schema-free NoSQL database. Last year, MongoDB made waves when they announced Queryable Encryption in their upcoming client-side encryption release.
Taken from the press release, but adapted for dark themes.A statement at the bottom of their press release indicates that this isn’t clown-shoes:
Queryable Encryption was designed by MongoDB’s Advanced Cryptography Research Group, headed by Seny Kamara and Tarik Moataz, who are pioneers in the field of encrypted search. The Group conducts cutting-edge peer-reviewed research in cryptography and works with MongoDB engineering teams to transfer and deploy the latest innovations in cryptography and privacy to the MongoDB data platform.
If you recall, I mentioned Seny Kamara in the SSE section of this post. They certainly aren’t wrong about Kamara and Moataz being pioneers in this field.
So with that in mind, let’s explore the implementation in libmongocrypt and see how it stands up to scrutiny.
MongoCrypt: The Good
MongoDB’s encryption library takes key management seriously: They provide a KMS integration for cloud users by default (supporting both AWS and Azure).
MongoDB uses Encrypt-then-MAC with AES-CBC and HMAC-SHA256, which is congruent to what Signal does for message encryption.
How Is Queryable Encryption Implemented?
From the current source code, we can see that MongoCrypt generates several different types of tokens, using HMAC (calculation defined here).
According to their press release:
The feature supports equality searches, with additional query types such as range, prefix, suffix, and substring planned for future releases.
Which means that most of the juicy details probably aren’t public yet.
These HMAC-derived tokens are stored wholesale in the data structure, but most are encrypted before storage using AES-CTR.
There are more layers of encryption (using AEAD), server-side token processing, and more AES-CTR-encrypted edge tokens. All of this is finally serialized (implementation) as one blob for storage.
Since only the equality operation is currently supported (which is the same feature you’d get from HMAC), it’s difficult to speculate what the full feature set looks like.
However, since Kamara and Moataz are leading its development, it’s likely that this feature set will be excellent.
MongoCrypt: The Bad
Every call to
do_encrypt()includes at most the Key ID (but typicallyNULL) as the AAD. This means that the concerns over Confused Deputies (and NoSQL specifically) are relevant to MongoDB.However, even if they did support authenticating the fully qualified path to a field in the AAD for their encryption, their AEAD construction is vulnerable to the kind of canonicalization attack I wrote about previously.
First, observe this code which assembles the multi-part inputs into HMAC.
/* Construct the input to the HMAC */uint32_t num_intermediates = 0;_mongocrypt_buffer_t intermediates[3];// -- snip --if (!_mongocrypt_buffer_concat ( &to_hmac, intermediates, num_intermediates)) { CLIENT_ERR ("failed to allocate buffer"); goto done;}if (hmac == HMAC_SHA_512_256) { uint8_t storage[64]; _mongocrypt_buffer_t tag = {.data = storage, .len = sizeof (storage)}; if (!_crypto_hmac_sha_512 (crypto, Km, &to_hmac, &tag, status)) { goto done; } // Truncate sha512 to first 256 bits. memcpy (out->data, tag.data, MONGOCRYPT_HMAC_LEN);} else { BSON_ASSERT (hmac == HMAC_SHA_256); if (!_mongocrypt_hmac_sha_256 (crypto, Km, &to_hmac, out, status)) { goto done; }}The implementation of
_mongocrypt_buffer_concat()can be found here.If either the implementation of that function, or the code I snipped from my excerpt, had contained code that prefixed every segment of the AAD with the length of the segment (represented as a
uint64_tto make overflow infeasible), then their AEAD mode would not be vulnerable to canonicalization issues.Using TupleHash would also have prevented this issue.
Silver lining for MongoDB developers: Because the AAD is either a key ID or NULL, this isn’t exploitable in practice.
The first cryptographic flaw sort of cancels the second out.
If the libmongocrypt developers ever want to mitigate Confused Deputy attacks, they’ll need to address this canonicalization issue too.
MongoCrypt: The Ugly
MongoCrypt supports deterministic encryption.
If you specify deterministic encryption for a field, your application passes a deterministic initialization vector to AEAD.
We already discussed why this is bad above.
Wrapping Up
This was not a comprehensive treatment of the field of database cryptography. There are many areas of this field that I did not cover, nor do I feel qualified to discuss.
However, I hope anyone who takes the time to read this finds themselves more familiar with the subject.
Additionally, I hope any developers who think “encrypting data in a database is [easy, trivial] (select appropriate)” will find this broad introduction a humbling experience.
Art: CMYKathttps://soatok.blog/2023/03/01/database-cryptography-fur-the-rest-of-us/
#appliedCryptography #blockCipherModes #cryptography #databaseCryptography #databases #encryptedSearch #HMAC #MongoCrypt #MongoDB #QueryableEncryption #realWorldCryptography #security #SecurityGuidance #SQL #SSE #symmetricCryptography #symmetricSearchableEncryption
-
Key Transparency and the Right to be Forgotten
This post is the first in a new series covering some of the reasoning behind decisions made in my project to build end-to-end encryption for direct messages on the Fediverse.
(Collectively, Fedi-E2EE.)
Although the reasons for specific design decisions should be immediately obvious from reading the relevant specification (and if not, I consider that a bug in the specification), I believe writing about it less formally will improve the clarity behind the specific design decisions taken.
In the inaugural post for this series, I’d like to focus on how the Fedi-E2EE Public Key Directory specification aims to provide Key Transparency and an Authority-free PKI for the Fediverse without making GDPR compliance logically impossible.
CMYKat‘s art, edited by me.Background
Key Transparency
For a clearer background, I recommend reading my blog post announcing the focused effort on a Public Key Directory, and then my update from August 2024.
If you’re in a hurry, I’ll be brief:
The goal of Key Transparency is to ensure everyone in a network sees the same view of who has which public key.
How it accomplishes this is a little complicated: It involves Merkle trees, digital signatures, and a higher-level protocol of distinct actions that affect the state machine.
If you’re thinking “blockchain”, you’re in the right ballpark, but we aren’t propping up a cryptocurrency. Instead, we’re using a centralized publisher model (per Public Key Directory instance) with decentralized verification.
Add a bit of cross-signing and replication, and you can stitch together a robust network of Public Key Directories that can be queried to obtain the currently-trusted list of public keys (or other auxiliary data) for a given Fediverse user. This can then be used to build application-layer protocols (i.e., end-to-end encryption with an identity key more robust than “trust on first use” due to the built-in audit trail to Merkle trees).
I’m handwaving a lot of details here. The Architecture and Specification documents are both worth a read if you’re curious to learn more.
HarubakiRight To Be Forgotten
I am not a lawyer, nor do I play one on TV. This is not legal advice. Other standard disclaimers go here.
Okay, now that we’ve got that out of the way, Article 17 of the GDPR establishes a “Right to erasure” for Personal Data.
What this actually means in practice has not been consistently decided by the courts yet. However, a publicly readable, immutable ledger that maps public keys (which may be considered Personal Data) with Actor IDs (which includes usernames, which are definitely Personal Data) goes against the grain when it comes to GDPR.
It remains an open question of there is public interest in this data persisting in a read-only ledger ad infinitum, which could override the right to be forgotten. If there is, that’s for the courts to decide, not furry tech bloggers.
I know it can be tempting, especially as an American with no presence in the European Union, to shrug and say, “That seems like a them problem.” However, if other folks want to be able to use my designs within the EU, I would be remiss to at least consider this potential pitfall and try to mitigate it in my designs.
So that’s exactly what I did.
AJAlmost Contradictory
At first glance, the privacy goals of both Key Transparency and the GDPR’s Right To Erasure are at odds.
- One creates an immutable, append-only history.
- The other establishes a right for EU citizens’ history to be selectively censored, which means history has to be mutable.
However, they’re not totally impossible to reconcile.
An untested legal theory circulating around large American tech companies is that “crypto shredding” is legally equivalent to erasure.
Crypto shredding is the act of storing encrypted data, and then when given a legal takedown request from an EU citizen, deleting the key instead of the data.
AJThis works from a purely technical perspective: If the data is encrypted, and you don’t know the key, to you it’s indistinguishable from someone who encrypted the same number of NUL bytes.
In fact, many security proofs for encryption schemes are satisfied by reaching this conclusion, so this isn’t a crazy notion.
Is Crypto Shredding Plausible?
In 2019, the European Parliamentary Research Service published a lengthy report titled Blockchain and the General Data Protection Regulation which states the following:
Before any examination of whether blockchain technology is capable of complying with Article 17 GDPR; it must be underscored that the precise meaning of the term ‘erasure’ remains unclear.
Article 17 GDPR does not define erasure, and the Regulation’s recitals are equally mum on how this term should be understood. It might be assumed that a common-sense understanding of this terminology ought to be embraced. According to the Oxford English Dictionary, erasure means ‘the removal or writing, recorded material, or data’ or ‘the removal of all traces of something: obliteration’.494
From this perspective, erasure could be taken to equal destruction. It has, however, already been stressed that the destruction of data on blockchains, particularly these of a public and permissionless nature, is far from straightforward.
There are, however, indications that the obligation inherent to Article 17 GDPR does not have to be interpreted as requiring the outright destruction of data. In Google Spain, the delisting of information from research results was considered to amount to erasure. It is important to note, however, that in this case, this is all that was requested of Google by the claimant, who did not have control over the original data source (an online newspaper publication). Had the claimant wished to obtain the outright destruction of the relevant data it would have had to address the newspaper, not Google. This may be taken as an indication that what the GDPR requires is that the obligation resting on data controllers is to do all they can to secure a result as close as possible to the destruction of their data within the limits of [their] own factual possibilities.
Dr Michèle Finck, Blockchain and the General Data Protection Regulation, pp. 75-76
From this, we can kind of intuit that the courts aren’t pedantic: The cited Google Spain case was satisfied by merely delisting the content, not the erasure of the newspaper’s archives.
The report goes on to say:
As awareness regarding the tricky reconciliation between Article 17 GDPR and distributed ledgers grows, a number of technical alternatives to the outright destruction of data have been considered by various actors. An often-mentioned solution is that of the destruction of the private key, which would have the effect of making data encrypted with a public key inaccessible. This is indeed the solution that has been put forward by the French data protection authority CNIL in its guidance on blockchains and the GDPR. The CNIL has suggested that erasure could be obtained where the keyed hash function’s secret key is deleted together with information from other systems where it was stored for processing.
Dr Michèle Finck, Blockchain and the General Data Protection Regulation, pp. 76-77
That said, I cannot locate a specific court decision that affirms that crypto erasure is legally sufficient for complying with data erasure requests (nor any that affirm that it’s necessary).
I don’t have a crystal ball that can read the future on what government compliance will decide, nor am I an expert in legal matters.
Given the absence of a clear legal framework, I do think it’s totally reasonable to consider crypto-shredding equivalent to data erasure. Most experts would probably agree with this. But it’s also possible that the courts could rule totally stupidly on this one day.
Therefore, I must caution anyone that follows a similar path: Do not claim GDPR compliance just because you implement crypto-shredding in a distributed ledger. All you can realistically promise is that you’re not going out of your way to make compliance logically impossible. All we have to go by are untested legal hypotheses, and very little clarity (even if the technologists are near-unanimous on the topic!).
Towards A Solution
With all that in mind, let’s start with “crypto shredding” as the answer to the GDPR + transparency log conundrum.
This is only the start of our complications.
CMYKatProtocol Risks Introduced by Crypto Shredding
Before the introduction of crypto shredding, the job of the Public Key Directory was simple:
- Receive a protocol message.
- Validate the protocol message.
- Commit the protocol message to a transparency log (in this case, Sigsum).
- Retrieve the protocol message whenever someone requests it to independently verify its inclusion.
- Miscellaneous other protocol things (cross-directory checkpoint commitment, replication, etc.).
Point being: there was very little that the directory could do to be dishonest. If they lied about the contents of a record, it would invalidate the inclusion proofs of every successive record in the ledger.
In order to make a given record crypto-shreddable without breaking the inclusion proofs for every record that follows, we need to commit to the ciphertext, not the plaintext. (And then, when a takedown request comes in, wipe the key.)
Now, things are quite more interesting.
Do you…
- …Distribute the encryption key alongside the ciphertext and let independent third parties decrypt it on demand?
…OR…
- Decrypt the ciphertext and serve plaintext through the public API, keeping the encryption key private so that it may be shredded later?
The first option seems simple, but runs into governance issues: How do you claim the data was crypto-shredded if countless individuals have a copy of the encryption key, and can therefore recover the plaintext from the ciphertext?
I don’t think that would stand up in court.
CMYKatClearly, your best option is the second one.
Okay, so how does an end user know that the ciphertext that was committed to the transparency ledger decrypts to the specific plaintext value served by the Public Key Directory? How do users know it’s not lying?
Quick aside: This question is also relevant if you went with the first option and used a non-committing AEAD mode for the actual encryption scheme.
In that scenario, a hostile nation state adversary could pressure a Public Key Directory to selectively give one decryption key to targeted users, and another to the rest of the Internet, in order to perform a targeted attack against citizens they’d rather didn’t have civil rights.
My entire goal with introducing key transparency to my end-to-end encryption proposal is to prevent these sorts of attacks, not enable them.
There are a lot of avenues we could explore here, but it’s always worth outlining the specific assumptions and security goals of any design before you start perusing the literature.
AJAssumptions
This is just a list of things we assume are true, and do not need to prove for the sake of our discussion here today. The first two are legal assumptions; the remainder are cryptographic.
Ask your lawyer if you want advice about the first two assumptions. Ask your cryptographer if you suspect any of the remaining assumptions are false.
- Crypto-shredding is a legally valid way to provide data erasure (as discussed above).
- EU courts will consider public keys to be Personal Data.
- The SHA-2 family of hash functions is secure (ignoring length-extension attacks, which won’t matter for how we’re using them).
- HMAC is a secure way to build a MAC algorithm out of a secure hash function.
- HKDF is a secure KDF if used correctly.
- AES is a secure 128-bit block cipher.
- Counter Mode (CTR) is a secure way to turn a block cipher into a stream cipher.
- AES-CTR + HMAC-SHA2 can be turned into a secure AEAD mode, if done carefully.
- Ed25519 is a digital signature algorithm that provides strong security against existent forgery under a chosen-message attack (SUF-CMA).
- Argon2id is a secure, memory-hard password KDF, when used with reasonable parameters. (You’ll see why in a moment.)
- Sigsum is a secure mechanism for building a transparency log.
This list isn’t exhaustive or formal, but should be sufficient for our purposes.
Security Goals
- The protocol messages stored in the Public Key Directory are accompanied by a Merkle tree proof of inclusion. This makes it append-only with an immutable history.
- The Public Key Directory cannot behave dishonestly about the decrypted plaintext for a given ciphertext without clients detecting the deception.
- Whatever strategy we use to solve this should be resistant to economic precomputation and brute-force attacks.
Can We Use Zero-Knowledge Proofs?
At first, this seems like an ideal situation for a succinct, non-interactive zero-knowledge proof.
After all, you’ve got some secret data that you hold, and you want to prove that a calculation is correct without revealing the data to the end user. This seems like the ideal setup for Schnorr’s identification protocol.
CMYKatUnfortunately, the second assumption (public keys being considered Personal Data by courts, even though they’re derived from random secret keys) makes implementing a Zero-Knowledge Proof here very challenging.
First, if you look at Ed25519 carefully, you’ll realize that it’s just a digital signature algorithm built atop a Schnorr proof, which requires some sort of public key (even an ephemeral one) to be managed.
Worse, if you try to derive this value solely from public inputs (rather than creating a key management catch-22), the secret scalar your system derives at will have been calculated from the user’s Personal Data–which only strengthens a court’s argument that the public key is therefore personally identifiable.
CMKatThere may be a more exotic zero-knowledge proof scheme that might be appropriate for our needs, but I’m generally wary of fancy new cryptography.
Here are two rules I live by in this context:
- If I can’t get the algorithms out of the crypto module for whatever programming language I find myself working with, it may as well not even exist.
- Corollary: If libsodium bindings are available, that counts as “the crypto module” too.
- If a developer needs to reach for a generic Big Integer library (e.g., GMP) for any reason in the course of implementing a protocol, I do not trust their implementation.
Unfortunately, a lot of zero-knowledge proof designs fail one or both of these rules in practice.
(Sorry not sorry, homomorphic encryption enthusiasts! The real world hasn’t caught up to your ideas yet.)
What About Verifiable Random Functions (VRFs)?
It may be tempting to use VRFs (i.e., RFC 9381), but this runs into the same problem as zero-knowledge proofs: we’re assuming that an EU court would deem public keys Personal Data.
But even if that assumption turns out false, the lifecycle of a protocol message looks like this:
- User wants to perform an action (e.g.,
AddKey). - Their client software creates a plaintext protocol message.
- Their client software generates a random 256-bit key for each potentially-sensitive attribute, so it can be shredded later.
- Their client software encrypts each attribute of the protocol message.
- The ciphertext and keys are sent to the Public Key Directory.
- For each attribute, the Public Key Directory decrypts the ciphertext with the key, verifies the contents, and then stores both. The ciphertext is used to generate a commitment on Sigsum (signed by the Public Key Directory’s keypair).
- The Public Key Directory serves plaintext to requestors, but does not disclose the key.
- In the future, the end user can demand a legal takedown, which just wipes the key.
Let’s assume I wanted to build a VRF out of Ed25519 (similar to what Signal does with VXEdDSA). Now I have a key management problem, which is pretty much what this project was meant to address in the first place.
VRFs are really cool, and more projects should use them, but I don’t think they will help me.
CMYKatSoatok’s Proposed Solution
If you want to fully understand the nitty-gritty implementation details, I encourage you to read the current draft specification, plus the section describing the encryption algorithm, and finally the plaintext commitment algorithm.
Now that we’ve established all that, I can begin to describe my approach to solving this problem.
First, we will encrypt each attribute of a protocol message, as follows:
- For subkey derivation, we use HKDF-HMAC-SHA512.
- For encrypting the actual plaintext, we use AES-256-CTR.
- For message authentication, we use HMAC-SHA512.
- Additional associated data (AAD) is accepted and handled securely; i.e., we don’t use YOLO as a hash construction.
This prevents an Invisible Salamander attack from being possible.
This encryption is performed client-side, by each user, and the symmetric key for each attribute is shared with the Public Key Directory when publishing protocol messages.
If they later issue a legal request for erasure, they can be sure that the key used to encrypt the data they previously published isn’t secretly the same key used by every other user’s records.
They always know this because they selected the key, not the server. Furthermore, everyone can verify that the hash published to the Merkle tree matches a locally generated hash of the ciphertext they just emitted.
This provides a mechanism to keep everyone honest. If anything goes wrong, it will be detected.
Next, to prevent the server from being dishonest, we include a plaintext commitment hash, which is included as part of the AAD (alongside the attribute name).
(Implementing crypto-shredding is straightforward: simply wipe the encryption keys for the attributes of the records in scope for the request.)
If you’ve read this far, you’re probably wondering, “What exactly do you mean by plaintext commitment?”
Art by Scruff.Plaintext Commitments
The security of a plaintext commitment is attained by the Argon2id password hashing function.
By using the Argon2id KDF, you can make an effective trapdoor that is easy to calculate if you know the plaintext, but economically infeasible to brute-force attack if you do not.
However, you need to do a little more work to make it safe.
HarubakiThe details here matter a lot, so this section is unavoidably going to be a little dense.
Pass the Salt?
Argon2id expects both a password and a salt.
If you eschew the salt (i.e., zero it out), you open the door to precomputation attacks (see also: rainbow tables) that would greatly weaken the security of this plaintext commitment scheme.
You need a salt.
If you generate the salt randomly, this commitment property isn’t guaranteed by the algorithm. It would be difficult, but probably not impossible, to find two salts (, ) such that .
Deriving the salt from public inputs eliminates this flexibility.
By itself, this reintroduces the risk of making salts totally deterministic, which reintroduces the risk of precomputation attacks (which motivated the salt in the first place).
If you include the plaintext in this calculation, it could also create a crib that gives attackers a shortcut for bypassing the cost of password hashing.
Furthermore, any two encryptions operations that act over the same plaintext would, without any additional design considerations, produce an identical value for the plaintext commitment.
CMYKatPublic Inputs for Salt Derivation
The initial proposal included the plaintext value for Argon2 salt derivation, and published the salt and Argon2 output next to each other.
Hacker News comex pointed out a flaw with this technique, so I’ve since revised how salts are selected to make them independent of the plaintext.
The public inputs for the Argon2 salt are now:
- The version identifier prefix for the ciphertext blob.
- The 256-bit random value used as a KDF salt (also stored in the ciphertext blob).
- A recent Merkle tree root.
- The attribute name (prefixed by its length).
These values are all hashed together with SHA-512, and then truncated to 128 bits (the length required by libsodium for Argon2 salts).
This salt is not stored, but can deterministically be calculated from public information.
Crisis Averted?
This sure sounds like we’ve arrived at a solution, but let’s also consider another situation before we declare our job done.
High-traffic Public Key Directories may have multiple users push a protocol message with the same recent Merkle root.
This may happen if two or more users query the directory to obtain the latest Merkle root before either of them publish their updates.
Later, if both of these users issue a legal takedown, someone might observe that the
recent-merkle-rootis the same for two messages, but their commitments differ.Is this enough leakage to distinguish plaintext records?
In my earlier design, we needed to truncate the salt and rely on understanding the birthday bound to reason about its security. This is no longer the case, since each salt is randomized by the same random value used in key derivation.
Choosing Other Parameters
As mentioned a second ago, we set the output length of the Argon2id KDF to 32 bytes (256 bits). We expect the security of this KDF to exceed , which to most users might as well be infinity.
With apologies to Filippo.The other Argon2id parameters are a bit hand-wavey. Although the general recommendation for Argon2id is to use as much memory as possible, this code will inevitably run in some low-memory environments, so asking for several gigabytes isn’t reasonable.
For the first draft, I settled on 16 MiB of memory, 3 iterations, and a parallelism degree of 1 (for widespread platform support).
Plaintext Commitment Algorithm
With all that figured out, our plaintext commitment algorithm looks something like this:
- Calculate the SHA512 hash of:
- A domain separation constant
- The header prefix (stored in the ciphertext)
- The randomness used for key-splitting in encryption (stored in the ciphertext)
- Recent Merkle Root
- Attribute Name Length (64-bit unsigned integer)
- Attribute Name
- Truncate this hash to the rightmost 16 bytes (128 bits). This is the salt.
- Calculate Argon2id over the following inputs concatenated in this order, with an output length of 32 bytes (256 bits), using the salt from step 2:
- Recent Merle Root Length (64-bit unsigned integer)
- Recent Merkle Root
- Attribute Name Length (64-bit unsigned integer)
- Attribute Name
- Plaintext Length (64-bit unsigned integer)
- Plaintext
The output (step 3) is included as the AAD in the attribute encryption step, so the authentication tag is calculated over both the randomness and the commitment.
To verify a commitment (which is extractable from the ciphertext), simply recalculate the commitment you expect (using the recent Merkle root specified by the record), and compare the two in constant-time.
If they match, then you know the plaintext you’re seeing is the correct value for the ciphertext value that was committed to the Merkle tree.
If the encryption key is shredded in the future, an attacker without knowledge of the plaintext will have an enormous uphill battle recovering it from the KDF output (and the salt will prove to be somewhat useless as a crib).
AJCaveats and Limitations
Although this design does satisfy the specific criteria we’ve established, an attacker that already knows the correct plaintext can confirm that a specific record matches it via the plaintext commitment.
This cannot be avoided: If we are to publish a commitment of the plaintext, someone with the plaintext can always confirm the commitment after the fact.
CMYKatWhether this matters at all to the courts is a question for which I cannot offer any insight.
Remember, we don’t even know if any of this is actually necessary, or if “moderation and platform safety” is a sufficient reason to sidestep the right to erasure.
If the courts ever clarify this adequately, we can simply publish the mapping of Actor IDs to public keys and auxiliary data without any crypto-shredding at all.
Trying to attack it from the other direction (download a crypto-shredded record and try to recover the plaintext without knowing it ahead of time) is attack angle we’re interested in.
Herd Immunity for the Forgotten
Another interesting implication that might not be obvious: The more Fediverse servers and users publish to a single Public Key Directory, the greater the anonymity pool available to each of them.
Consider the case where a user has erased their previous Fediverse account and used the GDPR to also crypto-shred the Public Key Directory entries containing their old Actor ID.
To guess the correct plaintext, you must not only brute-force guessing possible usernames, but also permute your guesses across all of the instances in scope.
The more instances there are, the higher the cost of the attack.
CMYKatRecap
I tasked myself with designing a Key Transparency solution that doesn’t make complying with Article 17 of the GDPR nigh-impossible. To that end, crypto-shredding seemed like the only viable way forward.
A serialized record containing ciphertext for each sensitive attribute would be committed to the Merkle tree. The directory would store the key locally and serve plaintext until a legal takedown was requested by the user who owns the data. Afterwards, the stored ciphertext committed to the Merkle tree is indistinguishable from random for any party that doesn’t already know the plaintext value.
I didn’t want to allow Public Key Directories to lie about the plaintext for a given ciphertext, given that they know the key and the requestor doesn’t.
After considering zero-knowledge proofs and finding them to not be a perfect fit, I settled on designing a plaintext commitment scheme based on the Argon2id password KDF. The KDF salts can be calculated from public inputs.
Altogether, this meets the requirements of enabling crypto-shredding while keeping the Public Key Directory honest. All known attacks for this design are prohibitively expensive for any terrestrial threat actors.
As an added bonus, I didn’t introduce anything fancy. You can build all of this with the cryptography available to your favorite programming language today.
CMYKatClosing Thoughts
If you’ve made it this far without being horribly confused, you’ve successfully followed my thought process for developing message attribute shreddability in my Public Key Directory specification.
This is just one component of the overall design proposal, but one that I thought my readers would enjoy exploring in greater detail than the specification needed to capture.
(This post was updated on 2024-11-22 to replace the incorrect term “PII” with “personal data”. Apologies for the confusion!)
#Argon2 #crypto #cryptography #E2EE #encryption #FederatedPKI #fediverse #passwordHashing #symmetricCryptography
-
Magazine Review: Galaxy Science Fiction, ed. H. L. Gold (November 1950) (Brown, Asimov, Boucher, Leiber, Knight, Simak)
Preliminary Note: I plan on reading all 116 issues of the influential, and iconic, SF magazine Galaxy under H. L. Gold’s editorship (October 1950-October 1961) in chronological order. How long this project will take or how seriously/systematically I will take it remain complete unknowns.
See my inaugural post in this series for my reasoning behind selecting Galaxy under H. L. Gold.
Previously: the October 1950 issue.
Up Next: the December 1950 issue.
Let’s get to the stories. We have the first Galaxy masterpiece!
- Don Sibley’s cover for Galaxy Science Fiction, ed. H. L. Gold (November 1950)
You can read the entire issue here.
Fredric Brown’s “Honeymoon in Hell” (1950), 3/5 (Average): The year is 1962. The Cold War heats up. The race for a permanent presence on the Moon takes center stage. Each side “had landed a few men” and claimed it as their own (4). Each side races to construct a space station in orbit to facilitate the construction of a permanent base on the moon. But there’s another worrying world-wide trend–a massive gender imbalance in new births! Not enough boys! Riots. Cults. What’s the plan?
Capt. Raymond F. Carmody, retired from the space service (at age 27) after a successful flight to the Moon, steps into the ring. Resisting an administrative role in the service, he’d chosen a new career: cybernetics, “the science of electronic calculating machines” (9). In his new position, he had access to a powerful computer called Junior, built in 1958, tasked with issues of national security. Alone with the machine, he feeds Junior the data. Junior doesn’t have an answer. But Junior does offer a rare extrapolation that Carmody will be married on the morrow.
And a meeting with the President reveals the nature of the plan to birth a male child on the moon to avoid whatever on Earth is causing the problem! He’ll be legally married before they head to the moon and divorced if the pairing doesn’t work out. The catch? His wife will be Russian and their honeymoon will be Hell Crater.1 The “lucky” woman? Anna Borisovna is also a pilot of “experimental rockets on short-range flights” (16). Alcohol included as “icebreaker” for a “happy honeymoon” (19). The twelve day stay will be “plenty of time to get off before the Lunar night” (18) (Brown certainly intends the pun). And then the story morphs, abruptly, into a first contact story. Or does it?
This is an odd story. At its core it’s about a man and a woman (and mortal enemies) who go to the moon to have sex. But it’s the 50s. They need to be married! And all the references to the act are double entendres. As the ridiculousness fades, Brown settles on a rather enlightened position considering the Cold War terror of the moment–détente with the Soviets, politics and all, remains possible (under some circumstances). The story implies that Carmody falls head-over-heels for Anna due to the similarities of their careers and status as intellectual equals despite their divergent politics. Don Sibley’s issue cover shows her abilities under stressful circumstances. Carmody’s even willing to head to the Soviet Union to be with her! Love trumps all message aside, I am not convinced by the reading experience. Brown relays the strange events that transpire on Mars, and almost all of Carmody and Anna’s interactions, after they occur. It weakens the effect.
Somewhat recommended.
Isaac Asimov’s “Misbegotten Missionary” (variant title: “Green Patches”) (1950), 3/5 (Average): “Misbegotten Missionary” begins from the perspective of an alien entity that slipped onboard a human ship after its barrier faltered for a moment. The alien utterly believes that it is a superior “unified organism” (34) over the “life fragments” that populate the ship (34). Fanatical in its mindset, the shape-shifting alien wants to convert the entire vessel to its ways–without their consent. Slowly the nature of its own world, the purpose of the human vessel, and the fate of a past voyage become clear.
While not a miserable entry in his canon, I am starting to dread the Asimov stories in Galaxy and struggle to write coherently about them. And there’s a serialized novel on the horizon that I haven’t read yet and thus cannot skip– The Stars, Like Dust (1951). While far superior to “Darwinian Pool Room” (1950), “Misbegotten Missionary” defeats its initial success with a laborious exposition of what happened before. I appreciated the Asimov’s attempt to convey alienness of the entity’s perspective. Maybe if you’re interested in the evolution of Asimov’s attempts to write about entire planets as alien consciousness this is worth tracking down.
I reviewed this in 2021 and completely forgot. I was even more cruel in the earlier review!
Anthony Boucher’s “Transfer Point” (1950), 3/5 (Average): Three survivors retreat beneath the Earth’s surface after two apocalyptic events–the release of a new element (agnoton) and an attack by mysterious “yellow bands” (are they light-like? It’s not entirely clear. It’s pulpy on purpose). The scientist Kirth-Labbery constructed the self-sufficient retreat due to his allergies (!). His daughter Lavra spends her time eating fruit grown in the hydroponics bay. And Vyrko, a self-described intellectual poet, observes and writes about the end of the world, pines after his lost love, and reads historical pulp science fiction –including Damon Knight’s “Not with a Bang” (1950) and Robert A. Heinlein’s “By His Bootstraps” (1941). He notices that only one author seems to predict correctly what will happen. And also strange narrative parallels with himself…
I’m a sucker for metafictional science fiction that contains references and quotations from other authors both real and invented. Boucher’s “Transfer Point” serves as a recursive commentary on the nature of genre and its favorite tropes (last man and woman as Adam and Eve, time travel, etc.). Behind the tale’s ultra-pulpy exterior and sappy silliness, Boucher jabs (gently and with a smile) at science fiction’s Campbellian delusion of future prediction. Despite its moments, Boucher can’t approach the heights of Richard Matheson’s “Patterns of Survival” (1955), a far more complex commentary on the power of science fiction.
Somewhat recommended.
Fritz Leiber’s “Coming Attraction” (1950), 5/5 (Masterpiece): I reviewed this story in 2013. I’ve decided to reread it and modify my earlier review.
In Arthur Schlesinger, Jr.’s influential The Vital Center: The Politics of Freedom (1949), a blueprint of the “new liberal self-image,” he describes the post-WWII period as an “age of anxiety” in which “Western man” is “tense, uncertain, adrift.”2 Channeling this sentiment, branded as an “American brand of misery” (83), Leiber imagines an America transformed after a limited nuclear war with the Soviet Union.
The physical landscape mirrors the psychological scars of New York’s inhabitants. “H-Bomb scars” tunnel faces (78). The Empire State Building thrusts out of “Inferno like a mangled finger” (77). In a disturbed attempt to maintain control, a new “puritanical morality” (80) replete with “anti-sex songs” (78) and required masks to cover female faces takes hold. A sinister media landscape manifests the corruption within. Billboards promote “hysterical slogans” in which “the very letters of the advertiser’s alphabet have begin to crawl with sex” (78). New TV gadgets facilitate touch and pseudo-connection (80). Perverse new forms of TV entertainment, in particular male wrestlers pitted against masked women, transfix all audiences.
Wysten Turner, the British narrator, gets caught up in the disturbing changes that have swept the US. He rescues a masked woman from a car driven by youths replete with hooks designed to snag the dresses of passing women. She embodies loneliness and despair. And he wants to help. Soon he finds himself unable to identify the new erotic and violent rituals of control and release. The games layer on themselves. Our narrator, also manipulated, flees in shame when the bizarre tableau’s true nature is unmasked.
Leiber doles out fascinating and punchy commentary on the anxieties of the modern world. A disturbed, erotic, creepy, and hyper-violent exploration of that reflexive Cold War tendency to equate the inability to control and triumph abroad as caused by internal crisis within society as a whole. A brilliant satire of late 40s/early 50s American Cold War culture.
Highly recommended.
Damon Knight’s “To Serve Man” (1950), 3.5/5 (Good): I reviewed this story in 2023. I decided not to reread it. I’ve reproduced the review below.
The Kanamit, pig-like humanoid aliens, arrive on Earth with a promise to assist humanity that appears to have zero caveats. Their similarity to a human food animal creates a disquieting horror: “when a think with the countenance of a fiend comes from the stars and offers a gift, you are disinclined to accept” (91). The Kanama proclaim that they want “to bring you the peace and plenty which we ourselves enjoy, and which we have in the past brought to other races throughout the galaxy” (92). They introduce fantastic power sources, anti-nuclear explosion shields, and technology to exponentially enhance agricultural productivity. Soon there are no “more standing armies, no more shortages, and no unemployment” (98). But no one can decode their language. And when someone finally figures it out, it will be too late.
I don’t completely understand why “To Serve Man” is one of Knight’s best-known short fictions. It won the 2001 Retro Hugo Award for Best Short Story. I would have voted for Fritz Leiber’s “Coming Attraction” (1950) from the list of nominees! That said, “To Serve Man” is an effective twist-ending story that plays with our expectations but doesn’t have the reflective or incisive impact of Knight’s best — for example “The Enemy” (1958), “You’re Another” (1955), or even “Time Enough” (1960) in Far Out (1961). I’m probably in the minority in this view.
Somewhat recommended.
Clifford D. Simak’s Time Quarry (variant title: Time and Again) (1950). Serialized over three issues. I will post an individual review after I complete the serialization.
Notes
- Brown adheres to the theory that the Moon is covered with deep dust. He claims that Hell Crater is a bit more solid than other points. Arthur C. Clarke’s A Fall of Moondust (1961) is another example. ↩︎
- See Ch. 1 of K. A. Courdileone’s Manhood and American Political Culture in the Cold War (2005) for a discussion of Schlesinger. ↩︎
For book reviews consult the INDEX
For cover art posts consult the INDEX
For TV and film reviews consult the INDEX
#1950s #avantGarde #bookReviews #books #CliffordDSimak #DamonKnight #FredricBrown #fritzLeiber #HLGold #IsaacAsimov #sciFi #scienceFiction #ShortStories -
AmigaOS 4 Monthly Roundup – April 2025
Hi,
Welcome to a new edition of the AmigaOS 4 Monthly Roundup! 🙂
The month of May has arrived. Spring is in the air! It is time to look at what has been happening in the community during April.
Thanks for reading and for visiting my blog. Hope you’ll enjoy the news!
Software News
First up is some gaming news! Hold on to your horses!
Warcraft-2-Engine: Stratagus 3.3.3 for AmigaOS 4
Press release from amiga-news.de
Picture from the webshop of Alinea ComputerAlinea Computer is pleased to be able to offer another port by Steffen Häuser. Steffen has taken care of the porting of the latest version 3.3.3 and the installation routines for easy installation under AmigaOS 4. Stratagus is the port of the engine in version 3.3.3, which makes it possible to play the game Warcraft 2 from Blizzard Entertainment natively on the Amiga under AmigaOS 4.
The archive contains an installer with which it is possible to install the game directly from the PC CD without pre-installing it on the PC. At least for the Warcraft 2 Classic PC CD, for the Battle.Net CD or the Gog version it is necessary to unpack a file with a Windows tool, but with the Classic CD you can install directly on the Amiga.
Picture from the webshop of Alinea ComputerWarcraft 2 is one of the most famous strategy games of all time, practically the prequel to the famous MMO “World of Warcraft”. In addition to the base game “Warcraft 2: Tides of Darkness”, the add-on CD “Warcraft 2: Beyond the Dark Portal” (already included in the Battle.Net CD and Gog version) is also supported.
Stratagus is based on the current “latest Git” version of the Stratagus project (version 3.3.3). In contrast to an earlier implementation, 3.3.3 offers the following features:
- Iconic game music and not just sound effects (the music files are only installed with the Warcraft 2 Classic CD and the Battle.net CD, but can be copied manually afterwards when using the Gog version).
- The game’s video sequences (video sequences not available on AmigaOne A1222)
- A functional level editor
- Numerous bug fixes
Of course, the localisation of Warcraft 2 into different languages is also supported.
Stratagus is under GPL licence, the source code of the Amiga version will be integrated into the github of the PC version in the foreseeable future, but is also available as a request by e-mail (see readme for details).
Picture from the webshop of Alinea ComputerThe minimum requirements for Stratagus are:
A computer with AmigaOS 4.1 FE Update 2 or higher
Special executables optimised for the respective platforms (x1000, x5000, Sam 440, Sam 460, G3 and A1222) can be selected during installation.https://www.amiga-shop.net/en/Amiga-Software/Amiga-Games/Stratagus-3-3-3-for-AmigaOS-4::1412.html
Juan Carlos Herrán Martín is an active software developer for platforms like AmigaOS 4, MorphOS, and AROS. We’ve seen many releases from him in the earlier monthly roundups. Now he is back with a new version of the game Los Malditos. It is a free adaption of the mythical books from Timun Mas from the 1980s and 1990s. These books are related to Dungeons & Dragons. The author is a fan of these works. It is now available for download at OS4Depot.
Improvements since the previous version:
- Improved on-screen text
- Improvement of the game speed, removing the delay refresh in the game window
- Bugs fixed
- Removed the option to exit the game when you are in a fight and you are in places preventing you from running away from the enemy
- New cover
- The game has been made free, but donations are welcome
He also released version Final2 of High-Low-Equal Poker. This is a special version to promote the game Los Malditos del Valle del Cerro and a way to show the possibilities of his games to promote magazines, books, movies, and other games and programs, even hardware.
Screenshot by Puni from an earlier version- The game has the exclusive Baphomet deck with the Heroes from the game “Los Malditos’ del Valle del Cerro”
- Bug fixed with card engine
- Two game modes: A=1 Ace equals 1 and Poker A>K Ace as in poker is the highest card
- Now the game cans open and play with Baphomet decks
- New screen to exit the game instead of the window requester
- Small improvements
If that was not enough, he updated his utility Cards Making Kit to version 2.20. With this program, you can make your decks for the following games:
- HLE Poker Card (High-Low-Equal Poker Card)
- BlackJuan
- Siete y Media
- Baccarat
- BlackIvan Card
You can make your decks using pictures from your family, pets, hobbies, etc.
Screenshot by Puni from an earlier versionHere is another one from the same author. Version 2.05 of a game called Baccarat has been released. This is a tribute to the mythical card game, popularized by the James Bond movie Dr. No with Sean Connery. The author has added a new exit cover (more James Bond style), and fixed a bug with the Baphomet decks and the overload in the game screen that slowed down the game.
Screenshot by Puni from an earlier versionBlackjuan Poker Card has been updated to version 2.00. This is another card game from the author above. The development of the game started back in 2012. This release includes new graphics and bug fixes. The game now supports Baphomet decks.
Screenshot by Puni from an earlier versionLast, but not least, he has updated the game Siete y Media to version 2.00. This is a Spanish Blackjack version with a Spanish deck of 40 cards. The aim of the game is not to get 21 which is common in Blackjack, but the sum of 7.5. You can read more about this in the readme. An SDK is included for those interested in making their decks of cards.
https://www.youtube.com/watch?v=J67WwNSgq3A
Amifish is a chess program made to play chess with Amiga-like systems. It exploits the power of one of the most powerful chess engines in the world: Stockfish. This engine was developed by Tord Romstad, Marco Costalba, Joona Kiiski, and Gary Linscott. A chess engine is a console program that plays chess, receiving strings as commands and producing strings in output as a result of computation. Stockfish and many other engines are compatible with a standard named UCI (Universal Chess Interface). The name Amifish is obtained by joining the words ‘Amiga’ and ‘Stockfish’. However, the project is open to all engines compliant with the UCI standard. It is a light program for amateurs. It is made to have fun with chess. Only the most important options are implemented. Version 2.1 is out for AmigaOS 4 and can be downloaded from OS4Depot.
Version R19 of iMage, a fast image viewer by Lazi has been released. According to the author, it handles JPG files very fast.
MCE, Multi-game Character Editor, is a user-friendly open-source editor of character files, saved games, high score tables, levels, and graphics for 122 games. James Jacobs, the author, has now released version 15.31, which provides miscellaneous improvements, as well as an enhanced Goal! Team editor.
Lorence Lombardo released version 1.0 of chklib. It is currently used in the “amiaudcomp” lib project. He also released version 1.0 of flushmem, which in theory flushes all flushable items from memory.
AmiSSL received an update to version 5.20. As mentioned in earlier editions of the AmigaOS 4 Monthly Roundup, the AmiSSL project is a collaborative effort to develop a port of OpenSSL in a shared library for Amiga-based systems. The download is available here. If you are interested in the SDK, it can be found here. It is a must-have if you use AmigaOS 4 to browse the web!
An updated version, 3.4, of the YouTube URL Extractor Script by Michael Trebilcock was released on April 16th. YT.rexx is a script for providing direct video and audio links from YouTube URLs. Changes from the previous version include:
3.4 – 16th Apr 2025:
- Compatibility fixes.
- Removed MEDIACONNECT client as it was no longer supported.
- Added ANDROIDVR client. This is the default in a new YT.cfg. Please note that
YouTube Kids videos are incompatible with this client. - DualTagVid / DualTagAud settings in the .cfg can now have multiple tag
numbers in order of priority, for use with the dualplay option.
More history within the archive.
PolarPaint is an experimental paint program made in Hollywood by Anbjørn Myren. Version 1.055 was uploaded to OS4Depot and became available on April 18th. If you are interested in checking it out, please click here. Another version called PolarPaint Small can be downloaded via this link.
Deark is an application that can extract data from a wide range of file formats. Developed by Jason Summers, this tool can help you get data from everything from AMOS ABK files to Doom WADs. You can read more about supported formats, as well as download the utility from OS4Depot. Version 1.7.0 became available on OS4Depot on April 18th.
George Sokianos a.k.a. Walkero has released a new version of aiostreams. “All In One streams” (aiostreams) is a pack of scripts, written in Python, that can be used to stream and watch videos from different online networks, like Twitch.tv, YouTube, and Vimeo.com. Please click here to download it or to read the changelog.
Version 3.451 of IMP3, a utility created by Juen a.k.a Pawl Nowak, has been released! The program was originally meant for 68K but does run OK on AmigaOS 4. With IMP3, you can listen to over 168.000 music files through the Internet. These are ProTracker modules, SID tunes, and so forth. Besides this, it has cloud storage and Online gaming with high scores.
The source code for AmiCraftNova has been released to the public domain by Caras Ghant.
Frank Wille has released an updated version of vasm m68k std, vasm PPC std, and vasm 68k mot. vasm is a portable and re-targetable assembler to create linkable objects in various formats and absolute code. Multiple CPU-, syntax, and output-modules can be selected.
AmigaGPT is a versatile ChatGPT client for AmigaOS 3.x, 4.1 and MorphOS. It is being developed by Cameron Armstrong a.k.a. Nightfox. This powerful tool brings the capabilities of OpenAI’s GPT to your Amiga system, enabling text generation, question-answering, and creative exploration. AmigaGPT can also generate stunning images using DALL-E and includes support for speech output, making it easier than ever to interact with AI on your Amiga. Designed to integrate seamlessly with your system, AmigaGPT delivers modern AI technology while embracing the timeless Amiga experience. Version 2.5.0 is now available for download from OS4Depot.
Privoxy is a web proxy with advanced filtering capabilities for protecting privacy, modifying web page data, managing cookies, controlling access, and removing ads, banners, pop-ups, and other obnoxious Internet junk. It is being developed by Mark Mansnerus. Privoxy has a very flexible configuration and can be customized to suit individual needs and tastes. Privoxy has applications for both stand-alone systems and multi-user networks. Version 3.0.6 is now out and available for download.
WormHole allows you to transfer files to another computer within the same LAN without having to make any adjustments. It is being developed by Lazi. The main advantage of using WormHole between Amiga systems is that it can handle icons and all AmigaOS file attributes in one step.
Main features:
- Transfers all Amiga file attributes
- Transfers icons automatically
- Zero configuration
- Transfers files bi-directional at the same time
- Transfer multiple files parallel at the same time
- Multiplatform
Version 0.5 has been released. Please click here to download it.
AStone is a picture viewer created in Hollywood by Sandro Barbagelata. Version 1.0 was released on April 26th. It is heavily inspired by the utility Fastone on Windows.
The AmigaOS 4 port of Open Medal of Honor is now available on OS4Depot. The porting has been done by Ryan Dixon a.k.a. rjd324. The main goal of OpenMoHAA is to ensure the future and continuity of Medal of Honor: Allied Assault (including Spearhead and Breakthrough expansions) on all platforms/architectures by providing new patches/features.
The source code for the AmigaOS4 port can be found at:
https://github.com/3246251196/openmohaa
The download is available here.
https://www.youtube.com/watch?v=fQhvT-h2jk0
An update to Report+, a ReAction-based utility with nine functions, has been released by James Jacobs. It was made available on OS4Depot on April 27th. This tool can help you with generating Aminet- and OS4Depot-style readme files, performing batch processing on icons, and much more. Recent changes since 8.64 include miscellaneous improvements and bug fixes. More detailed information can be found on OS4Depot.
Screenshot by Puni from an older versionVersion 34.3 of AmiArcadia for AmigaOS 4, a Signetics-based machines emulator, has been released by James Jacobs.
According to the documentation, AmiArcadia supports the following systems:
- Emerson Arcadia 2001 console family (Bandai, Emerson, Grandstand, Intervision, Leisure-Vision, Leonardo, MPT-03, Ormatu, Palladium, Poppy, Robdajet, Tele-Fever, Tempest, Tryom, Tunix, etc.) (c. 1982);
- Interton VC 4000 console family (Acetronic, Cabel, Fountain, Hanimex, Interton, Prinztronic, Radofin, Rowtron, Soundic, Voltmace, Waddingtons, etc.) (c. 1978);
- Elektor TV Games Computer (1979);
- PIPBUG- and BINBUG-based machines (EA 77up2, EA 78up5, Signetics Adaptable Board Computer, Eurocard 2650, etc.) (1977-1978);
- Signetics Instructor 50 trainer (1978);
- Signetics TWIN minicomputer (1976);
- Central Data 2650 computer (1977);
- PHUNSY computer (c. 1980);
- Ravensburger Selbstbaucomputer aka 2650 Minimal Computer trainer (1984);
- Hofacker MIKIT 2650 trainer (1978);
- Astro Wars, Galaxia, Laser Battle and Lazarian coin-ops by Zaccaria (1979-1981);
- Malzak 1 and 2 coin-ops by Kitronix (c. 1981);
- AY-3-8500/8550/8600-based Pong systems (Coleco Telstar Galaxy, Sheen TVG-201, etc.) (1976-1977);
- VTech Type-right machine (1985)
It is packed with features, far too many to list here. Examples include ReAction GUI, load/save snapshots, and windowed and fullscreen modes. Other features are CPU tracing, trainer, and drag and drop support. Additionally, it offers graphics scaling, PAL/NTSC modes, and frame skipping, among many other features!
Here is a summary of the changes since the last version:
- TWIN: added emulation of high-speed papertape reader.
- CD2650, PHUNSY: added “Tools|Sprite/character editor/viewer…”
command. - Miscellaneous improvements and bug fixes.
Please click here to be taken to the download page.
Xiangqi is a chess program made to play Xiangqi (Chinese chess), by making use of chess engines UCI compatible with the moves played by computers. A chess engine is a console program that play chess, receiving strings as commands and producing strings in output as a result of computation. The program is developed by Domenico Lattanzi. More information is available on OS4Depot.
That was the software news for this time. Now let us move over to hardware! 🙂
Hardware
I first heard about the new PPC hardware on Discord and was very surprised, to say the least! amiga-news.de has an extensive article about the subject. It will explain the project much better than I would be able to do. 🙂 I recommend you pop over to them and have a look at what this new PPC hardware is about.
https://www.amiga-news.de/en/news/AN-2025-04-00129-EN.html
The Sam460. Photo lent from the official website of ACube SystemsHere are two announcements from ACube Systems about UBoot updates! 🙂
UBoot 2015.d for Sam460EX / Sam460CR / Sam460LE boards available
Bassano del Grappa, Italy – 08 April 2025ACube Systems is pleased to announce a new release of the UBoot firmware for its Sam460 line of motherboards.
For the first time in Amiga history, it is now possible to boot from an NVMe SSD.
This groundbreaking achievement marks a significant milestone in the evolution of the Amiga platform. Thanks to recent advancements, users can now experience dramatically improved boot speeds and data access times by utilizing modern NVMe solid-state drives—bringing the Amiga into a new era of performance and reliability.
This development not only enhances the capabilities of current NG systems but also demonstrates the ongoing innovation and dedication within the Amiga community. Booting from an NVMe SSD was once considered impossible—today, it is a reality.
This update is completely free for all users.
We are excited to announce a new version packed with important features and improvements—available as a free download.
New in this release:
- NVMe SSD driver – For the first time ever, you can boot from an NVMe drive using a standard NVMe-to PCIe adapter.
- PCIe SATA2 support – Added driver for the Silicon Image 3132 controller, allowing booting from both SATA SSDs and DVD drives.
- DDR2 timing adjustments – Fine-tune DDR2 RAM timings for faster memory access.
- Customizable USB stack – Choose between EHCI (faster for mass storage) or OHCI (greater compatibility with keyboards).
- Enhanced “sata” command – Now displays more detailed information about drivers and connected devices.
- Improved serial console navigation – Navigate menu items using W and S keys.
- General bug fixes and improvements.
- Unified source code – Now streamlined for both 460ex and 440ep platforms.
- An updated installation guide is included, covering the standard ISO image method as well as alternative installation methods via TFTP and USB.
- Updater tool can be downloaded from:
https://acube-systems.biz/download/Sam460_updater_2015d.zip
If you are not comfortable installing UBoot yourself, we also offer fully updated UBoot chips through our online store.
Additional information:
Please note: UBoot and UBoot updater make use of GPL code and thus are both published under GPL.Sources can be downloaded from:
UBoot & UBoot updater
https://acube-systems.biz/download/u-boot-2015.d_prod.tar.gzParthenope
The Sam440EP Flex – Photo by Puni
https://acube-systems.biz/download/ub2lb_0.94.tar.gzUBoot 2015.d for Sam440ep mini-itx and Sam440ep flex boards available
Bassano del Grappa, Italy – 14 April 2025ACube Systems is pleased to announce a new release of the U-Boot firmware for its Sam440 line of motherboards.
Following the recent update for the Sam460, the Sam440 now also benefits from enhanced support, including compatibility with NVMe SSDs. Additionally, this update introduces support for Radeon RX and Radeon HD graphics cards.
This release represents a significant investment of time and resources. Nevertheless, we have chosen to offer it at the symbolic price of €3.99.
Highlights of this release include:
- Support for Radeon RX graphics cards () Improved support for Radeon HD graphics cards ()
NVMe SSD driver: boot directly from NVMe devices using a PCIe adapter () Driver for the PCIe SATA2 Silicon Image 3132 controller, with support for booting from SSDs and DVDs () - Enhanced RAM access speed on Sam440ep-flex boards
- New graphical interface style
- Revised ‘sata’ command, now displaying more detailed information about drivers and connected devices
- Serial console improvements: menu navigation via the W (up) and S (down) keys
- General bug fixes and overall improvements
- Unified source code for the 460ex and 440ep platforms
Note:
Features marked with an asterisk (*) require a PCI-to-PCIe bridge.
Radeon RX and Radeon HD graphics cards also require a specific driver (to be sold separately by A-EON Technology once available) for use with AmigaOS 4.Purchase the update:
The update is available through our online store.
For those not comfortable performing the update themselves, we also offer pre-programmed, fully updated U-Boot chips.Additional Information:
UBoot makes use of GPL-licensed code and is therefore released under the terms of the GPL.
Source code downloads:
U-Boot:
https://acube-systems.biz/download/u-boot-2015.d_prod.tar.gz
Parthenope:
https://acube-systems.biz/download/ub2lb_0.94.tar.gzYouTube
Marek Glogowski has published a new video showing Super Star Blast running on AmigaOS 4 through QEMU 10 and GPU Passthrough:
https://www.youtube.com/watch?v=Kd_a9kpbXtQ
HunoPPC shows DOSBox Enhanced running on AmigaOS 4 with 3dfx support and shader effects:
https://www.youtube.com/watch?v=kSCPkfZ-pVo
Here is a video of Baldur’s Gate running on AmigaOS 4. The video was created by anouk33.
https://www.youtube.com/watch?v=4UT8a-33z2o
Here is another video, but this time of WarCraft II:
https://www.youtube.com/watch?v=rY5ktfyiK7o
And one of Quake II:
https://www.youtube.com/watch?v=ewALudVmDRc
Amiga Wave has made a long video. It lasts for more than 2 hours and covers his experience with AmigaOS 4 on the Sam460LE. The video is in Spanish.
https://www.youtube.com/watch?v=3nVsxjDwqHM
Mr. Byte shows Stratagus 3.3.3 running on his A1222+:
https://www.youtube.com/watch?v=bCJhZh_f_qY
The Lost C is back with a new video. This time he does a test of the A1222 with a Radeon HD7750. The vide is in Italian.
https://www.youtube.com/watch?v=yLYq27YKxls
He also created a video with the A1222 and AmiCygnix:
https://www.youtube.com/watch?v=xCDn4hMeabY
TJ Ferreira is back once again. This time, he takes us on a journey through his experience with playing Glubble on his AmigaOne X5000. 🙂
https://www.youtube.com/watch?v=72WX8T2Lsd4
Until next time
You’ve now reached the end of the AmigaOS 4 Monthly Roundup for April 2025. I had not expected it to be this extensive. There is a clearly a lot happening in the world of AmigaOS 4 and Amiga in general these days!
Thanks as always to all readers and supporters out there. Thanks for visiting my blog and see you in the next roundup! 🙂
Best regards,
Puni
Rate this:
#A1222 #Amiga #AmigaNews #AmigaOne #AmigaOS4 #AmigaOS4MonthlyRoundup #AmigaOS41
-
Scattered across the streets lying south and west of Glasgow Cross, there are five steeples bearing distinctive blue-faced clocks: the Tolbooth, the Tron, the Briggait, St Andrew’s in the Square, and Hutchesons’ Hall. Occasionally a tour guide will point at one of them and explain that it’s painted blue because of an edict of Henry VIII. This is not, as far as I know, true. Nevertheless, the city’s blue clocks have a story to tell. It’s a story about Glasgow’s growth from the Reformation to the Industrial Revolution, from a market town in the shadow of the Church to a confident manufacturing giant.
The steeples of the Tolbooth (lower right) and St Andrew’s in the Square (left).In the late sixteenth century, Glasgow had just two public clocks. One occupied the old Tolbooth at the Cross, a building that probably dated to the early fifteenth century; the other was in one of the now-demolished west towers of the Cathedral.
The Tolbooth clock first enters the records in September 1573, when one Dauid Lioun was paid three shillings “for ane pece of trie to þe knok”. Three years later, the Council employed David Kaye, of Craill,
to ſett wp and repair or mend þe two knokks, þe ane maid be himſelf, and þe wþer auld knok mendit be him, how oft he beis requyrit þairto, be þame or ony in thayr name, and þat wpone þe tounes raonable expenſs fo be payit and done be him thairfor.
Kaye, who had already built a clock for St Mary’s Church in Dundee, was probably as close as Scotland had to a professional clockmaker. The Tolbooth clock was an elaborate piece of work, with not only an “orlage” (face) but a “moyne”, i.e. a display showing the phases of the moon. Unfortunately, like most clocks of the period it could not be trusted to keep good time if left to its own devices, and by 1578 the position of “rewler of the knok” had been established. The first incumbent was a chaplain, Archibald Dickie, who was paid a small salary
for rowlling and gyding of the knok and for lying nychtlie in the tolbuth to rewll and keip the samyne.
Dickie, lying every night alone in the Tolbooth with a watchful eye on the rickety machinery, must have felt the cold, and his remuneration included a separate allowance “for helping and support of him to his bed clais”.
It’s possible that the first clock in the High Kirk was in fact the old Tolbooth clock replaced by Kaye. It first appears in 1587, when a smith from Blantyre was called in to repair it. The records of the Kirk Session from 1591 suggest that this clock was under the supervision of the beadles, who were charged
to allow none to enter the Steeple to trouble the Knock and Bell there, but to keep the Knock going at all times.
By 1610, responsibility for the two clocks had been combined, and
George Smyth, rewler of the Tolbuith knok, hes bund him to the town to rewll the said knok for all the dayis of his lyfetyme for the sowme of tuentie pundis money yeirlie… and siklike, oblissis him to rewll the Hie Kirk knok and keip the same in gangand grath, and visie hir twa seuerall dayis in the wik, the sessioun payand him ten merkis yeirlie.
Although Smyth’s salary of twenty pounds a year was not colossal, this solemn contract suggests that the clocks were important to the town, and it’s worth asking why.
One reason was undoubtedly prestige. For a couple of centuries, increasingly complex astronomical clocks, such as the Pražský orloj of 1410, had been used to signal status and sophistication. Typically such clocks carried gilded numerals and astronomical symbols on a blue background. In 1540, Henry VIII of England had a particularly splendid example installed at Hampton Court, and it seems likely that this set the fashion across the British Isles. Though we have no information about the decoration of the Tolbooth or High Kirk clocks, it’s reasonable to guess they were in the same tradition.
The astronomical clock (1540) at Hampton Court. [Wikimedia Commons]A second reason the clocks mattered was more practical: a town clock set a definitive standard of time. This was important to a mercantile centre because trade, including trading hours, was strongly regulated. Glasgow’s Letter of Guildry in 1605 specified that
It shall not be leasome to any unfreeman to hold stands upon the Highstreet, to sell anything pertaining to the crafts or handy work, but betwixt eight of the morning and two of the clock in the afternoon, under the penalty of forty shilling; providing that tappers of linen and woollen cloth be suffered from morning to evening, at their pleasure, to sell. All kind of vivers to be sold from morning to evening; but unfreemen, who shall sell white bread, to keep the hours appointed.
This system which defended the rights of the established merchants and other burgesses against “unfreemen” could be enforced only if the “hours appointed” could be defined. (The legal importance of the town clock is echoed in a tale a century later, when the burghers of Banff put their clock forward a quarter of an hour to hang the outlaw James MacPherson before his pardon could arrive.)
In 1626 the increasingly prosperous burgh demolished the old Tolbooth and erected a new one on splendid lines. A combination of city hall, prison, and bell-tower topped with vanes and a gilded weathercock, it required a clock to match. One John Neill was paid six hundred merks “to mak ane new knok and haill furnitour of irne work, als sufficient, fyne, and worthie as the great knok in the laich stipill of the Metrapolitane Kirk”. It came with “horolog brodie, mones, bunkis and roweris”, i.e. a clock face, a moon, rollers, and mysterious accessories that appear nowhere else in Early Modern Scots.
The project ran somewhat over budget. Neill had to be paid a further three hundred merks in 1628, while a subcontractor received another fifty “becaus it was lang in working, and sindrie pairtis thairof wrocht over agane”. Finally “Vallentyn Ginking, paintour” was called in to make the whole ensemble glorious by “gilting of the horologe brodis, palmes, mones, the Kingis armes and all paintrie and cullouring thairof”. It was pure bling, and a powerful statement that Glasgow had arrived.
Glasgow showing off its gilded cock.Neill’s struggles with the mechanism reflected the fact that clockmaking locally was in its early days. It was in 1630 that the first clockmaker was recommended to the Incorporation of Hammermen, and only in 1649 that he was formally admitted, although the Hammermen had been asserting their right to regulate clockmaking since 1622.
The Tolbooth clock would not rule alone for long over the lower part of Glasgow. The next to join it was the clock in the steeple of Hutchesons’ Hospital, on the north side of the Trongate, which was installed in 1649 at a cost of £408 14s Scots. This clock must have had a rough time of it, as the lead that protected the steeple was stripped off in 1651 to save it from Cromwell’s troops; stashed under the floor of the Hospital, it was not restored until 1654.
Artist’s impression of the old Hutchesons’ Hospital on Trongate. [The Glasgow Story]In the late 1650s the University under Principal Patrick Gillespie also embarked on a building project, and a tower duly rose between the courts, containing a clock apparently made by a local blacksmith.
The University in the 1660s, from Slezer’s Theatrum Scotiae (1693), showing the bell/clock tower. [The Glasgow Story]Not to be left behind, in 1663 the Merchants’ House erected their new steeple in Briggait, with its own clock and peal of bells. This triggered one of the periodic rows between Council and contractors.
Artist’s impression of the Merchants’ Hall in Briggait, with its steeple. [The Glasgow Story]Andrew Purdoune had succeded John Neill in 1657 as “rewler of the knocks”, a task which increased in complexity with every new clock that had to be synchronised with the others. Meanwhile James Colquhoune, a general factotum to the Council, picked up a deal of work colouring and gilding the horologes. The job of making and rewling the new Briggait clock went to John Brodbridge, who briefly ousted Purdoune, but by 1665 the Council were accusing him of “not performing his ingadgment in relatioune to the perfecting the knock in Briggait”. Brodbridge was held to his contract to produce chimes for this clock, but they were instead to be installed in the Tolbooth. This took a couple more years to achieve, and finally in 1668,
The provest having relaited in counsell that there was ane generall complent throw the whoill toune anent the misgoverning of the knockis, in consideratioune quherof it was concludit, be pluraltie of votis, that the keyes should be takin from Johne Brodbridge and delyvered againe to Andrew Purdoune; and the said Johne, being sent for, come and did lay doune the said keyes wpon the counsell table.
Despite this discord the Tolbooth now had a musical clock, or at least a clock equipped to make loud noises at specified intervals. Musicality took longer. In 1673, fifty pounds sterling were “deburst to Mr. Kervie for tuning the bellis”, and in 1677, a further five pounds sterling were paid to “Walter Corbett, lait prenteis to Androw Purdoume, for chynging the note of the chyme of bellis in the tolbuith quhen his maister was at Holland”. By 1693, at least, John Slezer could remark on “the Tolbooth, magnificently built of hewn stone, with a very high tower, and bells which sound melodiously at every hour’s end”.
Competition continued for the role of clock-keeper, which suggests that it was either profitable in itself or a good opportunity to pick up lucrative jobs. In a small community with close links between the Trades and the Council, work was often awarded on the basis of estimates which were understood to be elastic. In 1720, the keeper William Telfer did find his “extravagant” bill of £136/11/6 sterling for work on the Tolbooth and Briggait clocks firmly reduced to 2000 Scots merks (roughly £100 sterling), but this didn’t stop him keeping the role until 1736, when he was cut out by John Dunlop, who’d been petitioning for it since 1729. The Telfer dynasty, in the person of John Telfer, recovered the contract in 1739 and retained it at least until 1758; from 1752 onward it was held by John’s widow (whose first name is sadly not recorded). Another widow, Katherine Hannington, would be keeper of the clocks from 1812 to 1813 in succession to her husband William.
By modern standards, the maintenance the keepers carried out was probably fairly crude. We know the mechanisms were lubricated, as one of Walter Corbet’s duties in 1688 was “to furnishe the haill clocks with oyll”. This oil was, in all probability, derived from tallow produced by the local fleshers, which would explain the occasional references to violent cleansing procedures: “putting [the Tolbooth clock] throw the fyre” in 1702 and “boyling” the clocks in 1738 and 1744. In turn, this handling probably explains why Glasgow’s clocks needed regular replacement or repair.
The eighteenth century brought a new technology: the pendulum. A mechanical clock needs two main elements: a drive to supply the force to keep the parts moving, and an escapement which measures out that motion in regular amounts. Glasgow’s early clocks were driven, like most steeple clocks, by slowly descending weights. We don’t have direct evidence about their escapements, but we can assume that they used the standard system of the day: a verge and foliot. This consisted of a toothed wheel which engaged a vertical rod, the verge, turning it alternately in one direction and the other; the verge in turn rotated a weighted horizontal rod, the foliot, and it was the foliot’s moment of inertia that controlled the rate of the rotation.
Early verge and foliot escapement [Wikimedia Commons].Verge and foliot escapements seem to have been about as fiddly as this description suggests: modern estimates suggest that if carefully tended — and presumably not boiled too often — they might be accurate to within fifteen minutes per day. Pendulum escapements, invented by Christiaan Huygens in 1756 and gradually improved, were a huge advance, reducing daily errors to as little as tens of seconds. Pendulums had reached eastern Scotland by the 1690s, and took a further decade to spread west. The Tolbooth clock was converted in 1702, with a minute hand added at the same time; an idea of the scale of the operation is given by the charge for “twelve stone and twelve pound of iron… for wheels to the said clock”. The Hutchesons clock was similarly upgraded in 1703, and the High Kirk in 1707.
The High Kirk clock was replaced entirely in 1724, and that decade saw various bling-enhancement works on the others: when the Briggait steeple was redded up in 1728, it used 119 books of gold leaf, exhausting the local book-binder’s supplies so that more had to be ordered from Edinburgh.
The next major upgrade came in 1736, when the Council revived their interest in music. A Stirling watchmaker, Andrew Dickie, was contracted to make a completely new chime of bells, along with “a new sett of wheels and pinions, a wooden barrell, a new sett of keys and comb barr, a sett of clappers with hammers and hammer springs and other tackling”. These chimes weren’t just a gigantic music box: they could also be played by hand. A local music teacher, Rodger Rodburn, was sent through to Edinburgh to learn the art, and equipped with a small set of practice bells at the town’s expense. He was then paid an annual salary of £15 sterling “for playing on the bells from half one to half two in the afternoon each day, Sabbath days excepted, and for extraordinary playing on Hallow days. These live performances were in addition to the mechanical sounding of the “curious set of chymes and tuneable bells, which plays every two hours”.
“Curious” was probably the right word. The original set of eighteen bells ordered to be cast in London turned out to be one short, and a B-flat bell was hurriedly added to the order — which came to £311 1s. 9d. sterling. Whether from deficiencies in casting or in installation, the chime was not in tune, and after two excruciating years the Council employed John Fife, “player on the musick bells at Edinburgh” to sort it out. The process took four months of chiselling and the casting of fourteen new bells, while one of the old bells sent to Edinburgh proved irredeemable and was melted down for scrap. (It weighed 620 pounds; transporting it in pre-canal days must have been a major operation.)
Even with approximately tuneful bells, the performances can’t have been subtle. “Senex” recalled watching the musician in action around 1790, and recorded that the keys were “sturdily beaten with the whole force of the clenched fists, and these fists carefully guarded from danger by being enclosed in well-stuffed coverings of stout leather”. Nevertheless, the performances became a treasured part of Glasgow life.
As the city expanded, new churches were required, and these naturally came with clocks. The first was the North-West Kirk (also known as the Ramshorn) in 1722. St Andrew’s followed in 1756, St Enoch’s in 1780, and St George’s in 1809. In 1757, the Tolbooth clock was replaced again, with “a new four-day clock, carricing eight hands, with a quarter piece”; this may also have been when this clock acquired “day o’ the month brodds” in addition to its other paraphernalia. After some repair work, the old Tolbooth clock was put up in the steeple of the Laigh Kirk on Trongate; the Tron steeple remains today after the rest of the kirk was lost to accidental arson by the City Guard.
The Trongate in 1770, from a drawing by Robert Paul. The old Tolbooth clock can be seen in the Tron Steeple to the left, and the new Tolbooth clock in the Tolbooth steeple to the right. [The Glasgow Story]We get occasional glimpses of the University clock and its tower. By 1730, one Henry Drew, hammerman, was being given an allowance for keeping this clock in order. (Drew also worked for Robert Dick, Professor of Natural Philosophy, becoming the first recorded lab assistant in the University’s history.) This clock was replaced in about 1750. In 1771 Dick’s successor John Anderson entertained a kite-flying crony from America, one Benjamin Franklin, on a visit to Scotland; the following year saw Glasgow’s first lightning conductor fitted to that tower.
The University clock tower, in a George Washington Wilson photo from the mid-C19th. [Aberdeen University]In 1802-5, as part of the city’s redevelopment and expansion westward, the old Hutchesons’ Hospital was demolished and Hutcheson Street opened through the site. A new building, Hutchesons’ Hall, was erected where Hutcheson Street met Ingram Street. The original plan may have been to recycle the old clock, now a century or more old, but in the end a replacement was supplied by William Hannington for £168 11s. Hannington, in fact, was only a middleman, and the clock itself was made by John Thwaites & Co, the leading clockmakers of London. Rising on manufacture and the Atlantic trade, Glasgow could finally afford the best that dubiously gained wealth could buy.
The arrival of the new Hutchesons clock, and the other Thwaites clock that graced the steeple of St George’s, set the Council fretting. By now there were nine public clocks: some were effectively worn out, and there was not much consensus on the time. A Committee on Clocks was formed, and as well as recommending a change of contractor it set out an expensive programme of repairs and replacements.
Public clocks marked on Fleming’s 1808 plan of Glasgow: from north to south, the High Kirk, the University, the North-West Kirk, St George’s, Hutchesons, the Tolbooth, the Tron Steeple, St Andrew’s, St Enoch’s and the Briggait. [National Library of Scotland]This work took place in fits and starts over the next twelve years. The Tron clock was the first to be replaced, with another Thwaites piece; the old Tron clock made its way to the High Kirk. The Tolbooth clock was recommended for replacement in 1809, but the Council baulked first at the price tag and then at the countersuggestion that “it should not in future be burdened with the additional machinery for playing tunes every two hours”. A solemn warning was recorded that “[t]he public would be sensible of the want and might complain”, and the Council bravely resolved to take no action.
Instead, the Tolbooth clock limped on with successive repairs until 1815, when the new contractors Mitchell & Russell reported that “on taking it to pieces we find it so completely worn out that to repair it… would be throwing away the sum voted for that purpose”. Mitchell & Russell provided a detailed proposal, which was accepted, and which constitutes the most detailed description of any of the Glasgow civic clocks:
… the machine to be what is termed an eight day clock, with the exception of the musical part which is to go 24 hours as at present, the quarters are to strike on two bells instead of one as is the case at present, copper hands gilt are to be placed on each of the four dials so as to show the hours and minutes, the great wheels are to be as follows, vizt., striking 16 inches, watch 15 inches, quarter 16 inches, and chime 24 inches diameter, all of which are to be fixed in strong iron frames; the barrel for the music is to be new, and fitted for the tunes at present in use, vizt., for Sunday—the Easter hymn, Monday—Gilderoy, Tuesday—Nancy’s to the greenwood gane, Wednesday—Tweedside, Thursday—Lass o’ Patie’s mill, Friday—The last time I came o’er the moor, and Saturday—Roslin Castle. Conformable to the above description we hereby offer to make and put up the whole machinery, &c., and to find the weights, pulleys, ropes, and carpenter work, and do every other necessary thing in a sufficient manner to your satisfaction, the work to be fitted into its place and clock going by the 1st of January next, for the sum of £325, at 6 months’ credit or 5 per cent. for cash.
(Apart from the Easter Hymn — probably Jesus Christ is Risen Today from Lyra Davidica — these tunes were traditional Scots airs, dating to early in the previous century. The chimes were still going forty years later, when the antiquarian Gilbert Neil noted that “Though said even yet not to be sufficiently perfect in the musical scale, the chime must be allowed as of a respectable order, and possessing such variety of tones as to render the harmony always cheering and agreeable.”)
The five remaining blue-faced clocks: Hutchesons’ Hall (centre); St Andrew’s in the Square (top left); the Tolbooth (top right); the Tron steeple (bottom right); the Briggait (bottom left). Note the close family resemblance, which may be the result of the rapid burst of replacement in the early nineteenth century.The High Kirk clock, which had started out a century earlier in the Tolbooth, was finally scrapped and replaced in 1817, as was the North-West Kirk clock. (It may be one of these that had recently nearly killed “a valuable and respectable clergyman” when one of its weights fell and ricocheted off the floor.) Haggling over the clock in the Briggait steeple ended only in 1821 with a deal to split the costs between the Council and the Merchants’ House. This seems to have been the last clock to be set up in the old blue-faced style: when the North-West Kirk was replaced entirely in 1825-6, it carried, like St George’s before it, a more modern design.
The clock on the Ramshorn Kirk (possibly a modern replica, but consistent with contemporary images).Maintenance costs were still a worry to the Council, with a perpetually lingering suspicion that clock-keepers were making work for themselves. The proposal to roll the costs of repairs into the keeper’s salary was first made in 1823, and finally agreed in 1829: after a round of maintenance the keeper, Mr Halbert, was contracted to wind and maintain the clocks, posting a £100 bond as surety that no extra expense would be laid on the town for fifteen years. After several centuries, the Council had finally learned to manage risk when awarding public contracts.
By this point the clock in the Tron steeple had acquired something genuinely new: gas light. The lighting was set up in October 1821, and consisted of an argand burner mounted above the dial and enclosed in a parabolic reflector. James Cleland boasted that “this is the only steeple in the kingdom where the hour can be seen after dark, at a distance of nearly a quarter of a mile”; being Cleland, it is almost certain that he had measured this.
Cleland made a point of naming the designers of the Tron’s lighting scheme: John and Robert Hart, a pair of pastry bakers from Bo’ness who had moved to Glasgow, taken classes at Anderson’s Institution, become pals with James Watt, and set themselves up as inventors. To Cleland and others, their career paths epitomised the rising industrial city, finally shaking off its provincial past and emerging as a centre of innovation.
After perhaps three centuries of chasing the technological curve, Glasgow had at last caught up. The brilliantly lit Tron clock, like all its predecessors, was more than a timepiece: it was quite consciously a sign of the times.
Main sources
Many of the details come from the Extracts from the Burgh Records of Glasgow published by the Scottish Burgh Records Society. (If anyone ever finds a copy of the 1760-1809 volume(s), please let me know.) Other key sources:
- James Cleland, Annals of Glasgow (1816) and Statistical Tables (1823)
- James Coutts, A history of the University of Glasgow, from its foundation in 1451 to 1909 (James Maclehose & Sons, 1909)
- William H. Hill, History of the Hospital and School Founded in Glasgow, A.D. 1639-41, by George and Thomas Hutcheson of Lambhill (Hutchesons, 1881)
- Harry Lumsden & P. Henderson Aitken, History of the Hammermen of Glasgow (Alexander Gardner, 1912)
- James D. Marwick, Early Glasgow (James Maclehose & Sons, 1911)
- John Muendel, “Friction and Lubrication in Medieval Europe: The Emergence of Olive Oil as a Superior Agent”, Isis, Vol. 86, No. 3 (Sep., 1995), pp. 373-393.
- David Murray, “The Preservation of the Tolbooth Steeple of Glasgow”, The Scottish Historical Review, Jul., 1915, Vol. 12, No. 48 (Jul., 1915), pp. 354-368.
- Gabriel Neil, “A few brief notices of the old Tolbooth at the Cross of Glasgow, removed in 1814, &c.”. Transactions of the Glasgow Archaeological Society, Vol. 1, No. 1 (1859), pp. 8-28.
- “Senex” and others, Glasgow Past and Present (David Robertson & Co., 1854)
- John Smith, Old Scottish Clockmakers from 1453 to 1850 (Oliver & Boyd, 1921)
I’m also grateful to Rebekah Higgitt and Thony Christie for responding to the hist-tech bat-signal when I had questions about astronomical clocks. Full details of everything available on request; corrections welcome, and all mistakes my own.
https://newcleckitdominie.wordpress.com/2023/10/09/blue-in-the-face/
-
Key Transparency and the Right to be Forgotten
This post is the first in a new series covering some of the reasoning behind decisions made in my project to build end-to-end encryption for direct messages on the Fediverse.
(Collectively, Fedi-E2EE.)
Although the reasons for specific design decisions should be immediately obvious from reading the relevant specification (and if not, I consider that a bug in the specification), I believe writing about it less formally will improve the clarity behind the specific design decisions taken.
In the inaugural post for this series, I’d like to focus on how the Fedi-E2EE Public Key Directory specification aims to provide Key Transparency and an Authority-free PKI for the Fediverse without making GDPR compliance logically impossible.
CMYKat‘s art, edited by me.Background
Key Transparency
For a clearer background, I recommend reading my blog post announcing the focused effort on a Public Key Directory, and then my update from August 2024.
If you’re in a hurry, I’ll be brief:
The goal of Key Transparency is to ensure everyone in a network sees the same view of who has which public key.
How it accomplishes this is a little complicated: It involves Merkle trees, digital signatures, and a higher-level protocol of distinct actions that affect the state machine.
If you’re thinking “blockchain”, you’re in the right ballpark, but we aren’t propping up a cryptocurrency. Instead, we’re using a centralized publisher model (per Public Key Directory instance) with decentralized verification.
Add a bit of cross-signing and replication, and you can stitch together a robust network of Public Key Directories that can be queried to obtain the currently-trusted list of public keys (or other auxiliary data) for a given Fediverse user. This can then be used to build application-layer protocols (i.e., end-to-end encryption with an identity key more robust than “trust on first use” due to the built-in audit trail to Merkle trees).
I’m handwaving a lot of details here. The Architecture and Specification documents are both worth a read if you’re curious to learn more.
Right To Be Forgotten
I am not a lawyer, nor do I play one on TV. This is not legal advice. Other standard disclaimers go here.
Okay, now that we’ve got that out of the way, Article 17 of the GDPR establishes a “Right to erasure” for Personally Identifiable Information (PII).
What this actually means in practice has not been consistently decided by the courts yet. However, a publicly readable, immutable ledger that maps public keys (which may be considered PII) with Actor IDs (which includes usernames, which are definitely PII) goes against the grain when it comes to GDPR.
It remains an open question of there is public interest in this data persisting in a read-only ledger ad infinitum, which could override the right to be forgotten. If there is, that’s for the courts to decide, not furry tech bloggers.
I know it can be tempting, especially as an American with no presence in the European Union, to shrug and say, “That seems like a them problem.” However, if other folks want to be able to use my designs within the EU, I would be remiss to at least consider this potential pitfall and try to mitigate it in my designs.
So that’s is what I did.
Almost Contradictory
At first glance, the privacy goals of both Key Transparency and the GDPR’s Right To Erasure are at odds.
- One creates an immutable, append-only history.
- The other establishes a right for EU citizens’ history to be selectively censored, which means history has to be mutable.
However, they’re not totally impossible to reconcile.
An untested legal theory circulating around large American tech companies is that “crypto shredding” is legally equivalent to erasure.
Crypto shredding is the act of storing encrypted data, and then when given a legal takedown request from an EU citizen, deleting the key instead of the data.
This works from a purely technical perspective: If the data is encrypted, and you don’t know the key, to you it’s indistinguishable from someone who encrypted the same number of NUL bytes. In fact, many security proofs for encryption schemes are satisfied by reaching this conclusion, so this isn’t a crazy notion.
Is Crypto Shredding Plausible?
In 2019, the European Parliamentary Research Service published a lengthy report titled Blockchain and the General Data Protection Regulation which states the following:
Before any examination of whether blockchain technology is capable of complying with Article 17 GDPR; it must be underscored that the precise meaning of the term ‘erasure’ remains unclear.
Article 17 GDPR does not define erasure, and the Regulation’s recitals are equally mum on how this term should be understood. It might be assumed that a common-sense understanding of this terminology ought to be embraced. According to the Oxford English Dictionary, erasure means ‘the removal or writing, recorded material, or data’ or ‘the removal of all traces of something: obliteration’.494
From this perspective, erasure could be taken to equal destruction. It has, however, already been stressed that the destruction of data on blockchains, particularly these of a public and permissionless nature, is far from straightforward.
There are, however, indications that the obligation inherent to Article 17 GDPR does not have to be interpreted as requiring the outright destruction of data. In Google Spain, the delisting of information from research results was considered to amount to erasure. It is important to note, however, that in this case, this is all that was requested of Google by the claimant, who did not have control over the original data source (an online newspaper publication). Had the claimant wished to obtain the outright destruction of the relevant data it would have had to address the newspaper, not Google. This may be taken as an indication that what the GDPR requires is that the obligation resting on data controllers is to do all they can to secure a result as close as possible to the destruction of their data within the limits of [their] own factual possibilities.
Dr Michèle Finck, Blockchain and the General Data Protection Regulation, pp. 75-76
From this, we can kind of intuit that the courts aren’t pedantic: The cited Google Spain case was satisfied by merely delisting the content, not the erasure of the newspaper’s archives.
The report goes on to say:
As awareness regarding the tricky reconciliation between Article 17 GDPR and distributed ledgers grows, a number of technical alternatives to the outright destruction of data have been considered by various actors. An often-mentioned solution is that of the destruction of the private key, which would have the effect of making data encrypted with a public key inaccessible. This is indeed the solution that has been put forward by the French data protection authority CNIL in its guidance on blockchains and the GDPR. The CNIL has suggested that erasure could be obtained where the keyed hash function’s secret key is deleted together with information from other systems where it was stored for processing.
Dr Michèle Finck, Blockchain and the General Data Protection Regulation, pp. 76-77
That said, I cannot locate a specific court decision that affirms that crypto erasure is legally sufficient for complying with data erasure requests (nor any that affirm that it’s necessary).
I don’t have a crystal ball that can read the future on what government compliance will decide, nor am I an expert in legal matters.
Given the absence of a clear legal framework, I do think it’s totally reasonable to consider crypto-shredding equivalent to data erasure. Most experts would probably agree with this. But it’s also possible that the courts could rule totally stupidly on this one day.
Therefore, I must caution anyone that follows a similar path: Do not claim GDPR compliance just because you implement crypto-shredding in a distributed ledger. All you can realistically promise is that you’re not going out of your way to make compliance logically impossible. All we have to go by are untested legal hypotheses, and very little clarity (even if the technologists are near-unanimous on the topic!).
Towards A Solution
With all that in mind, let’s start with “crypto shredding” as the answer to the GDPR + transparency log conundrum.
This is only the start of our complications.
CMYKatProtocol Risks Introduced by Crypto Shredding
Before the introduction of crypto shredding, the job of the Public Key Directory was simple:
- Receive a protocol message.
- Validate the protocol message.
- Commit the protocol message to a transparency log (in this case, Sigsum).
- Retrieve the protocol message whenever someone requests it to independently verify its inclusion.
- Miscellaneous other protocol things (cross-directory checkpoint commitment, replication, etc.).
Point being: there was very little that the directory could do to be dishonest. If they lied about the contents of a record, it would invalidate the inclusion proofs of every successive record in the ledger.
In order to make a given record crypto-shreddable without breaking the inclusion proofs for every record that follows, we need to commit to the ciphertext, not the plaintext. (And then, when a takedown request comes in, wipe the key.)
Now, things are quite more interesting.
Do you…
- …Distribute the encryption key alongside the ciphertext and let independent third parties decrypt it on demand?
…OR…
- Decrypt the ciphertext and serve plaintext through the public API, keeping the encryption key private so that it may be shredded later?
The first option seems simple, but runs into governance issues: How do you claim the data was crypto-shredded if countless individuals have a copy of the encryption key, and can therefore recover the plaintext from the ciphertext?
Your best option is the second one, clearly.
Okay, so how does an end user know that the ciphertext that was committed to the transparency ledger decrypts to the specific plaintext value served by the Public Key Directory? How do users know it’s not lying?
Quick aside: This question is also relevant if you went with the first option and used a non-committing AEAD mode for the actual encryption scheme.
In that scenario, a hostile nation state adversary could pressure a Public Key Directory to selectively give one decryption key to targeted users, and another to the rest of the Internet, in order to perform a targeted attack against citizens they’d rather didn’t have civil rights.
My entire goal with introducing key transparency to my end-to-end encryption proposal is to prevent these sorts of attacks, not enable them.
There are a lot of avenues we could explore here, but it’s always worth outlining the specific assumptions and security goals of any design before you start perusing the literature.
Assumptions
This is just a list of things we assume are true, and do not need to prove for the sake of our discussion here today. The first two are legal assumptions; the remainder are cryptographic.
Ask your lawyer if you want advice about the first two assumptions. Ask your cryptographer if you suspect any of the remaining assumptions are false.
- Crypto-shredding is a legally valid way to provide data erasure (as discussed above).
- EU courts will consider public keys to be PII.
- The SHA-2 family of hash functions is secure (ignoring length-extension attacks, which won’t matter for how we’re using them).
- HMAC is a secure way to build a MAC algorithm out of a secure hash function.
- HKDF is a secure KDF if used correctly.
- AES is a secure 128-bit block cipher.
- Counter Mode (CTR) is a secure way to turn a block cipher into a stream cipher.
- AES-CTR + HMAC-SHA2 can be turned into a secure AEAD mode, if done carefully.
- Ed25519 is a digital signature algorithm that provides strong security against existent forgery under a chosen-message attack (SUF-CMA).
- Argon2id is a secure, memory-hard password KDF, when used with reasonable parameters. (You’ll see why in a moment.)
- Sigsum is a secure mechanism for building a transparency log.
This list isn’t exhaustive or formal, but should be sufficient for our purposes.
Security Goals
- The protocol messages stored in the Public Key Directory are accompanied by a Merkle tree proof of inclusion. This makes it append-only with an immutable history.
- The Public Key Directory cannot behave dishonestly about the decrypted plaintext for a given ciphertext without clients detecting the deception.
- Whatever strategy we use to solve this should be resistant to economic precomputation and brute-force attacks.
Can We Use Zero-Knowledge Proofs?
At first, this seems like an ideal situation for a succinct, non-interactive zero-knowledge proof.
After all, you’ve got some secret data that you hold, and you want to prove that a calculation is correct without revealing the data to the end user. This seems like the ideal setup for Schnorr’s identification protocol.
Unfortunately, the second assumption (public keys being considered PII by courts, even though they’re derived from random secret keys) makes implementing a Zero-Knowledge Proof here very challenging.
First, if you look at Ed25519 carefully, you’ll realize that it’s just a digital signature algorithm built atop a Schnorr proof, which requires some sort of public key (even an ephemeral one) to be managed.
Worse, if you try to derive this value solely from public inputs (rather than creating a key management catch-22), the secret scalar your system derives at will have been calculated from the user’s PII–which only strengthens a court’s argument that the public key is therefore personally identifiable.
There may be a more exotic zero-knowledge proof scheme that might be appropriate for our needs, but I’m generally wary of fancy new cryptography.
Here are two rules I live by in this context:
- If I can’t get the algorithms out of the crypto module for whatever programming language I find myself working with, it may as well not even exist.
- Corollary: If libsodium bindings are available, that counts as “the crypto module” too.
- If a developer needs to reach for a generic Big Integer library (e.g., GMP) for any reason in the course of implementing a protocol, I do not trust their implementation.
Unfortunately, a lot of zero-knowledge proof designs fail one or both of these rules in practice.
(Sorry not sorry, homomorphic encryption enthusiasts! The real world hasn’t caught up to your ideas yet.)
Soatok’s Proposed Solution
If you want to fully understand the nitty-gritty implementation details, I encourage you to read the current draft specification, plus the section describing the encryption algorithm, and finally the plaintext commitment algorithm.
Now that we’ve established all that, I can begin to describe my approach to solving this problem.
First, we will encrypt each attribute of a protocol message, as follows:
- For subkey derivation, we use HKDF-HMAC-SHA512.
- For encrypting the actual plaintext, we use AES-256-CTR.
- For message authentication, we use HMAC-SHA512.
- Additional associated data (AAD) is accepted and handled securely; i.e., we don’t use YOLO as a hash construction.
This prevents an Invisible Salamander attack from being possible.
Next, to prevent the server from being dishonest, we include a plaintext commitment hash, which is included as part of the AAD (alongside the attribute name).
(Implementing crypto-shredding is straightforward: simply wipe the encryption keys for the attributes of the records in scope for the request.)
If you’ve read this far, you’re probably wondering, “What exactly do you mean by plaintext commitment?”
Plaintext Commitments
The security of a plaintext commitment is attained by the Argon2id password hashing function.
By using the Argon2id KDF, you can make an effective trapdoor that is easy to calculate if you know the plaintext, but economically infeasible to brute-force attack if you do not.
However, you need to do a little more work to make it safe.
Pass the Salt?
Argon2id expects both a password and a salt.
If you eschew the salt (i.e., zero it out), you open the door to precomputation attacks (see also: rainbow tables) that would greatly weaken the security of this plaintext commitment scheme.
You need a salt.
If you generate the salt randomly, this commitment property isn’t guaranteed by the algorithm. It would be difficult, but probably not impossible, to find two salts (, ) such that .
I’m handwaving the fact that the salts are stored for now.
Deriving the salt from public inputs eliminates this flexibility.
By itself, this reintroduces the risk of making salts totally deterministic, which reintroduces the risk of precomputation attacks (which motivated the salt in the first place).
Furthermore, any two encryptions operations that act over the same plaintext would, without any additional design considerations, produce an identical value for the salt, which would lead to an identical plaintext commitment.
Getting to the Root of the Problem
The scheme I’m designing, which encrypts the attributes of protocol messages and includes a commitment of the plaintext, doesn’t exist in a vacuum.
In my system, there is one additional public input we can use to increase the quality of the salt distribution (to resist precomputation) without introducing variability (to ensure the commitment is robust): A recent Merkle tree root.
Since every protocol message accepted by a Public Key Directory will have a distinct Merkle root, a high-traffic Public Key Directory will produce a high-entropy root hash every time a user issues a new protocol message. This is especially true if, when issuing multiple successive messages, they use the root of their previous accepted Merkle root as the “recent” root when calculating their next plaintext commitment.
Given that Sigsum uses SHA256, there are possible Merkle roots to choose from.
Crisis Averted?
This sure sounds like a solution, but let’s also consider another situation.
High-traffic Public Key Directories may have multiple users push a protocol message with the same recent Merkle root.
Later, if both of these users issue a legal takedown, someone might observe that the
recent-merkle-rootis the same for two messages, but their salts differ.Is this enough leakage to distinguish plaintext records?
After pondering this for a bit, I decided this was a stupid problem to have, and reached for an oft-ignored tool in a cryptographer’s toolkit (except for modern hash function designers): Truncation.
If we truncate the salt to a smaller value, we can increase the chance of a birthday collision.
We do need to be careful: Too small, and we improve the economics of precomputation. Too large, and we risk creating a reliably crib for distinct plaintext values.
How Much is Too Much?
Let’s revisit the birthday paradox.
If you have a probability space of , you expect a 50% chance of a single collision after about samples.
More interesting, you have a probability of a collision after about samples.
Given that I’m designing this project for the Fediverse, which has millions of accounts (and of which more than 100,000 can reasonably be considered “active”), I posit that a probability space of is sufficient for the Argon2id salt.
Because salts are expected to be 128 bits (at least with libsodium), we fix the other bytes to a protocol-specific constant, which contains some version information that can be changed in future iterations. This won’t be on the final exam.
Why ?
Simply put: we want salts to collide (albeit somewhat rarely).
Since the salt derivation algorithm is a faster hash than a KDF, collisions make it less useful for attackers hoping for a reliable plaintext crib.
With 48 bits left after truncation, a 50% collision probability is reached after samples (a little over 16 million). The optimal birthday bound is reached after samples (65,536).
How do you arrive at this number?
Let’s assume, for the moment, that my proposal sees widespread adoption with Fediverse users.
There are just under 11 million total, and 1 million monthly active, Fediverse users as of this writing. BlueSky just hit 20 million users.
These numbers are in the to range. (For comparison, Twitter boasted over half a billion users earlier this year, which rounds up to .)
It is therefore expected that at least one pair of distinct plaintext Actor IDs, using two different recent Merkle roots, would produce the same salt for their plaintext commitment.
This gives attackers a disadvantage, since collisions make the salt (derived from a fast hash) useless, thereby forcing them to attack the KDF output instead.
Conversely, breaking the KDF output with precomputation strategies would still involve different salts for each possible plaintext.
This rounds off to about 9 petabytes of storage just for a 48-bit salt and a 208-bit Argon2id KDF output (for a total of 32 bytes).
Choosing Other Parameters
As mentioned a second ago, we set the output length of the Argon2id KDF to 26 bytes (208 bits). We expect the security of this KDF to exceed . This allows us to concatenate the salt and KDF output for a total of 256 bits, which keeps the total commitment size reasonable.
The other Argon2id parameters are a bit hand-wavey. Although the general recommendation for Argon2id is to use as much memory as possible, this code will inevitably run in some low-memory environments, so asking for several gigabytes isn’t reasonable.
For the first draft, I settled on 16 MiB of memory, 3 iterations, and a parallelism degree of 1 (for widespread platform support).
Plaintext Commitment Algorithm
With all that figured out, our plaintext commitment algorithm looks something like this:
- Calculate the HMAC-SHA512 hash (whose key is constant for domain separation) of:
- Recent Merle Root Lengh (64-bit unsigned integer)
- Recent Merkle Root
- Attribute Name Length (64-bit unsigned integer)
- Attribute Name
- Plaintext Length (64-bit unsigned integer)
- Plaintext
- Truncate this hash to the rightmost 6 bytes (48 bits).
- Calculate Argon2id with the salt set to the ASCII string
FE2EEPKDv1followed by the truncated hash (step 2), with an output length of 26 bytes (208 bits). - Concatenate the output steps 2 and 3.
The output (step 4) is included as the AAD in the attribute encryption step.
To verify a commitment (which is extractable from the ciphertext), simply recalculate the commitment you expect (using the recent Merkle root specified by the record), and compare the two in constant-time.
If they match, then you know the plaintext you’re seeing is the correct value for the ciphertext value that was committed to the Merkle tree.
If the encryption key is shredded in the future, an attacker without knowledge of the plaintext will have an enormous uphill battle recovering it from the KDF output (and the salt will prove to be somewhat useless as a crib).
AJRecap
I tasked myself with designing a Key Transparency solution that doesn’t make complying with Article 17 of the GDPR nigh-impossible. To that end, crypto-shredding seemed like the only viable way forward.
A serialized record containing ciphertext for each sensitive attribute would be committed to the Merkle tree. The directory would store the key locally and serve plaintext until a legal takedown was requested by the user who owns the data. Afterwards, the stored ciphertext committed to the Merkle tree is indistinguishable from random for any party that doesn’t already know the plaintext value.
I didn’t want to allow Public Key Directories to lie about the plaintext for a given ciphertext, given that they know the key and the requestor doesn’t.
After considering zero-knowledge proofs and finding them to not be a perfect fit, I settled on designing a plaintext commitment scheme based on the Argon2id password KDF, which uses a recent Merkle root to diversify the KDF salt selection, and truncates the result to make salt collisions likely (so anyone trying to attack the salt to guess plaintexts is at a disadvantage).
Altogether, this meets the requirements of enabling crypto-shredding while keeping the Public Key Directory honest. All known attacks for this design are prohibitively expensive for any terrestrial threat actors.
As an added bonus, I didn’t introduce anything fancy. You can build all of this with the cryptography available to your favorite programming language today.
Closing Thoughts
If you’ve made it this far without being horribly confused, you’ve successfully followed my thought process for developing message attribute shreddability in my Public Key Directory specification.
This is just one component of the overall design proposal, but one that I thought my readers would enjoy exploring in greater detail than the specification needed to capture.
#Argon2 #crypto #cryptography #E2EE #encryption #FederatedPKI #fediverse #passwordHashing #symmetricCryptography
-
Key Transparency and the Right to be Forgotten
This post is the first in a new series covering some of the reasoning behind decisions made in my project to build end-to-end encryption for direct messages on the Fediverse.
(Collectively, Fedi-E2EE.)
Although the reasons for specific design decisions should be immediately obvious from reading the relevant specification (and if not, I consider that a bug in the specification), I believe writing about it less formally will improve the clarity behind the specific design decisions taken.
In the inaugural post for this series, I’d like to focus on how the Fedi-E2EE Public Key Directory specification aims to provide Key Transparency and an Authority-free PKI for the Fediverse without making GDPR compliance logically impossible.
CMYKat‘s art, edited by me.Background
Key Transparency
For a clearer background, I recommend reading my blog post announcing the focused effort on a Public Key Directory, and then my update from August 2024.
If you’re in a hurry, I’ll be brief:
The goal of Key Transparency is to ensure everyone in a network sees the same view of who has which public key.
How it accomplishes this is a little complicated: It involves Merkle trees, digital signatures, and a higher-level protocol of distinct actions that affect the state machine.
If you’re thinking “blockchain”, you’re in the right ballpark, but we aren’t propping up a cryptocurrency. Instead, we’re using a centralized publisher model (per Public Key Directory instance) with decentralized verification.
Add a bit of cross-signing and replication, and you can stitch together a robust network of Public Key Directories that can be queried to obtain the currently-trusted list of public keys (or other auxiliary data) for a given Fediverse user. This can then be used to build application-layer protocols (i.e., end-to-end encryption with an identity key more robust than “trust on first use” due to the built-in audit trail to Merkle trees).
I’m handwaving a lot of details here. The Architecture and Specification documents are both worth a read if you’re curious to learn more.
HarubakiRight To Be Forgotten
I am not a lawyer, nor do I play one on TV. This is not legal advice. Other standard disclaimers go here.
Okay, now that we’ve got that out of the way, Article 17 of the GDPR establishes a “Right to erasure” for Personal Data.
What this actually means in practice has not been consistently decided by the courts yet. However, a publicly readable, immutable ledger that maps public keys (which may be considered Personal Data) with Actor IDs (which includes usernames, which are definitely Personal Data) goes against the grain when it comes to GDPR.
It remains an open question of there is public interest in this data persisting in a read-only ledger ad infinitum, which could override the right to be forgotten. If there is, that’s for the courts to decide, not furry tech bloggers.
I know it can be tempting, especially as an American with no presence in the European Union, to shrug and say, “That seems like a them problem.” However, if other folks want to be able to use my designs within the EU, I would be remiss to at least consider this potential pitfall and try to mitigate it in my designs.
So that’s exactly what I did.
AJAlmost Contradictory
At first glance, the privacy goals of both Key Transparency and the GDPR’s Right To Erasure are at odds.
- One creates an immutable, append-only history.
- The other establishes a right for EU citizens’ history to be selectively censored, which means history has to be mutable.
However, they’re not totally impossible to reconcile.
An untested legal theory circulating around large American tech companies is that “crypto shredding” is legally equivalent to erasure.
Crypto shredding is the act of storing encrypted data, and then when given a legal takedown request from an EU citizen, deleting the key instead of the data.
AJThis works from a purely technical perspective: If the data is encrypted, and you don’t know the key, to you it’s indistinguishable from someone who encrypted the same number of NUL bytes.
In fact, many security proofs for encryption schemes are satisfied by reaching this conclusion, so this isn’t a crazy notion.
Is Crypto Shredding Plausible?
In 2019, the European Parliamentary Research Service published a lengthy report titled Blockchain and the General Data Protection Regulation which states the following:
Before any examination of whether blockchain technology is capable of complying with Article 17 GDPR; it must be underscored that the precise meaning of the term ‘erasure’ remains unclear.
Article 17 GDPR does not define erasure, and the Regulation’s recitals are equally mum on how this term should be understood. It might be assumed that a common-sense understanding of this terminology ought to be embraced. According to the Oxford English Dictionary, erasure means ‘the removal or writing, recorded material, or data’ or ‘the removal of all traces of something: obliteration’.494
From this perspective, erasure could be taken to equal destruction. It has, however, already been stressed that the destruction of data on blockchains, particularly these of a public and permissionless nature, is far from straightforward.
There are, however, indications that the obligation inherent to Article 17 GDPR does not have to be interpreted as requiring the outright destruction of data. In Google Spain, the delisting of information from research results was considered to amount to erasure. It is important to note, however, that in this case, this is all that was requested of Google by the claimant, who did not have control over the original data source (an online newspaper publication). Had the claimant wished to obtain the outright destruction of the relevant data it would have had to address the newspaper, not Google. This may be taken as an indication that what the GDPR requires is that the obligation resting on data controllers is to do all they can to secure a result as close as possible to the destruction of their data within the limits of [their] own factual possibilities.
Dr Michèle Finck, Blockchain and the General Data Protection Regulation, pp. 75-76
From this, we can kind of intuit that the courts aren’t pedantic: The cited Google Spain case was satisfied by merely delisting the content, not the erasure of the newspaper’s archives.
The report goes on to say:
As awareness regarding the tricky reconciliation between Article 17 GDPR and distributed ledgers grows, a number of technical alternatives to the outright destruction of data have been considered by various actors. An often-mentioned solution is that of the destruction of the private key, which would have the effect of making data encrypted with a public key inaccessible. This is indeed the solution that has been put forward by the French data protection authority CNIL in its guidance on blockchains and the GDPR. The CNIL has suggested that erasure could be obtained where the keyed hash function’s secret key is deleted together with information from other systems where it was stored for processing.
Dr Michèle Finck, Blockchain and the General Data Protection Regulation, pp. 76-77
That said, I cannot locate a specific court decision that affirms that crypto erasure is legally sufficient for complying with data erasure requests (nor any that affirm that it’s necessary).
I don’t have a crystal ball that can read the future on what government compliance will decide, nor am I an expert in legal matters.
Given the absence of a clear legal framework, I do think it’s totally reasonable to consider crypto-shredding equivalent to data erasure. Most experts would probably agree with this. But it’s also possible that the courts could rule totally stupidly on this one day.
Therefore, I must caution anyone that follows a similar path: Do not claim GDPR compliance just because you implement crypto-shredding in a distributed ledger. All you can realistically promise is that you’re not going out of your way to make compliance logically impossible. All we have to go by are untested legal hypotheses, and very little clarity (even if the technologists are near-unanimous on the topic!).
Towards A Solution
With all that in mind, let’s start with “crypto shredding” as the answer to the GDPR + transparency log conundrum.
This is only the start of our complications.
CMYKatProtocol Risks Introduced by Crypto Shredding
Before the introduction of crypto shredding, the job of the Public Key Directory was simple:
- Receive a protocol message.
- Validate the protocol message.
- Commit the protocol message to a transparency log (in this case, Sigsum).
- Retrieve the protocol message whenever someone requests it to independently verify its inclusion.
- Miscellaneous other protocol things (cross-directory checkpoint commitment, replication, etc.).
Point being: there was very little that the directory could do to be dishonest. If they lied about the contents of a record, it would invalidate the inclusion proofs of every successive record in the ledger.
In order to make a given record crypto-shreddable without breaking the inclusion proofs for every record that follows, we need to commit to the ciphertext, not the plaintext. (And then, when a takedown request comes in, wipe the key.)
Now, things are quite more interesting.
Do you…
- …Distribute the encryption key alongside the ciphertext and let independent third parties decrypt it on demand?
…OR…
- Decrypt the ciphertext and serve plaintext through the public API, keeping the encryption key private so that it may be shredded later?
The first option seems simple, but runs into governance issues: How do you claim the data was crypto-shredded if countless individuals have a copy of the encryption key, and can therefore recover the plaintext from the ciphertext?
I don’t think that would stand up in court.
CMYKatClearly, your best option is the second one.
Okay, so how does an end user know that the ciphertext that was committed to the transparency ledger decrypts to the specific plaintext value served by the Public Key Directory? How do users know it’s not lying?
Quick aside: This question is also relevant if you went with the first option and used a non-committing AEAD mode for the actual encryption scheme.
In that scenario, a hostile nation state adversary could pressure a Public Key Directory to selectively give one decryption key to targeted users, and another to the rest of the Internet, in order to perform a targeted attack against citizens they’d rather didn’t have civil rights.
My entire goal with introducing key transparency to my end-to-end encryption proposal is to prevent these sorts of attacks, not enable them.
There are a lot of avenues we could explore here, but it’s always worth outlining the specific assumptions and security goals of any design before you start perusing the literature.
AJAssumptions
This is just a list of things we assume are true, and do not need to prove for the sake of our discussion here today. The first two are legal assumptions; the remainder are cryptographic.
Ask your lawyer if you want advice about the first two assumptions. Ask your cryptographer if you suspect any of the remaining assumptions are false.
- Crypto-shredding is a legally valid way to provide data erasure (as discussed above).
- EU courts will consider public keys to be Personal Data.
- The SHA-2 family of hash functions is secure (ignoring length-extension attacks, which won’t matter for how we’re using them).
- HMAC is a secure way to build a MAC algorithm out of a secure hash function.
- HKDF is a secure KDF if used correctly.
- AES is a secure 128-bit block cipher.
- Counter Mode (CTR) is a secure way to turn a block cipher into a stream cipher.
- AES-CTR + HMAC-SHA2 can be turned into a secure AEAD mode, if done carefully.
- Ed25519 is a digital signature algorithm that provides strong security against existent forgery under a chosen-message attack (SUF-CMA).
- Argon2id is a secure, memory-hard password KDF, when used with reasonable parameters. (You’ll see why in a moment.)
- Sigsum is a secure mechanism for building a transparency log.
This list isn’t exhaustive or formal, but should be sufficient for our purposes.
Security Goals
- The protocol messages stored in the Public Key Directory are accompanied by a Merkle tree proof of inclusion. This makes it append-only with an immutable history.
- The Public Key Directory cannot behave dishonestly about the decrypted plaintext for a given ciphertext without clients detecting the deception.
- Whatever strategy we use to solve this should be resistant to economic precomputation and brute-force attacks.
Can We Use Zero-Knowledge Proofs?
At first, this seems like an ideal situation for a succinct, non-interactive zero-knowledge proof.
After all, you’ve got some secret data that you hold, and you want to prove that a calculation is correct without revealing the data to the end user. This seems like the ideal setup for Schnorr’s identification protocol.
CMYKatUnfortunately, the second assumption (public keys being considered Personal Data by courts, even though they’re derived from random secret keys) makes implementing a Zero-Knowledge Proof here very challenging.
First, if you look at Ed25519 carefully, you’ll realize that it’s just a digital signature algorithm built atop a Schnorr proof, which requires some sort of public key (even an ephemeral one) to be managed.
Worse, if you try to derive this value solely from public inputs (rather than creating a key management catch-22), the secret scalar your system derives at will have been calculated from the user’s Personal Data–which only strengthens a court’s argument that the public key is therefore personally identifiable.
CMKatThere may be a more exotic zero-knowledge proof scheme that might be appropriate for our needs, but I’m generally wary of fancy new cryptography.
Here are two rules I live by in this context:
- If I can’t get the algorithms out of the crypto module for whatever programming language I find myself working with, it may as well not even exist.
- Corollary: If libsodium bindings are available, that counts as “the crypto module” too.
- If a developer needs to reach for a generic Big Integer library (e.g., GMP) for any reason in the course of implementing a protocol, I do not trust their implementation.
Unfortunately, a lot of zero-knowledge proof designs fail one or both of these rules in practice.
(Sorry not sorry, homomorphic encryption enthusiasts! The real world hasn’t caught up to your ideas yet.)
What About Verifiable Random Functions (VRFs)?
It may be tempting to use VRFs (i.e., RFC 9381), but this runs into the same problem as zero-knowledge proofs: we’re assuming that an EU court would deem public keys Personal Data.
But even if that assumption turns out false, the lifecycle of a protocol message looks like this:
- User wants to perform an action (e.g.,
AddKey). - Their client software creates a plaintext protocol message.
- Their client software generates a random 256-bit key for each potentially-sensitive attribute, so it can be shredded later.
- Their client software encrypts each attribute of the protocol message.
- The ciphertext and keys are sent to the Public Key Directory.
- For each attribute, the Public Key Directory decrypts the ciphertext with the key, verifies the contents, and then stores both. The ciphertext is used to generate a commitment on Sigsum (signed by the Public Key Directory’s keypair).
- The Public Key Directory serves plaintext to requestors, but does not disclose the key.
- In the future, the end user can demand a legal takedown, which just wipes the key.
Let’s assume I wanted to build a VRF out of Ed25519 (similar to what Signal does with VXEdDSA). Now I have a key management problem, which is pretty much what this project was meant to address in the first place.
VRFs are really cool, and more projects should use them, but I don’t think they will help me.
CMYKatSoatok’s Proposed Solution
If you want to fully understand the nitty-gritty implementation details, I encourage you to read the current draft specification, plus the section describing the encryption algorithm, and finally the plaintext commitment algorithm.
Now that we’ve established all that, I can begin to describe my approach to solving this problem.
First, we will encrypt each attribute of a protocol message, as follows:
- For subkey derivation, we use HKDF-HMAC-SHA512.
- For encrypting the actual plaintext, we use AES-256-CTR.
- For message authentication, we use HMAC-SHA512.
- Additional associated data (AAD) is accepted and handled securely; i.e., we don’t use YOLO as a hash construction.
This prevents an Invisible Salamander attack from being possible.
This encryption is performed client-side, by each user, and the symmetric key for each attribute is shared with the Public Key Directory when publishing protocol messages.
If they later issue a legal request for erasure, they can be sure that the key used to encrypt the data they previously published isn’t secretly the same key used by every other user’s records.
They always know this because they selected the key, not the server. Furthermore, everyone can verify that the hash published to the Merkle tree matches a locally generated hash of the ciphertext they just emitted.
This provides a mechanism to keep everyone honest. If anything goes wrong, it will be detected.
Next, to prevent the server from being dishonest, we include a plaintext commitment hash, which is included as part of the AAD (alongside the attribute name).
(Implementing crypto-shredding is straightforward: simply wipe the encryption keys for the attributes of the records in scope for the request.)
If you’ve read this far, you’re probably wondering, “What exactly do you mean by plaintext commitment?”
Art by Scruff.Plaintext Commitments
The security of a plaintext commitment is attained by the Argon2id password hashing function.
By using the Argon2id KDF, you can make an effective trapdoor that is easy to calculate if you know the plaintext, but economically infeasible to brute-force attack if you do not.
However, you need to do a little more work to make it safe.
HarubakiThe details here matter a lot, so this section is unavoidably going to be a little dense.
Pass the Salt?
Argon2id expects both a password and a salt.
If you eschew the salt (i.e., zero it out), you open the door to precomputation attacks (see also: rainbow tables) that would greatly weaken the security of this plaintext commitment scheme.
You need a salt.
If you generate the salt randomly, this commitment property isn’t guaranteed by the algorithm. It would be difficult, but probably not impossible, to find two salts (, ) such that .
Deriving the salt from public inputs eliminates this flexibility.
By itself, this reintroduces the risk of making salts totally deterministic, which reintroduces the risk of precomputation attacks (which motivated the salt in the first place).
If you include the plaintext in this calculation, it could also create a crib that gives attackers a shortcut for bypassing the cost of password hashing.
Furthermore, any two encryptions operations that act over the same plaintext would, without any additional design considerations, produce an identical value for the plaintext commitment.
CMYKatPublic Inputs for Salt Derivation
The initial proposal included the plaintext value for Argon2 salt derivation, and published the salt and Argon2 output next to each other.
Hacker News comex pointed out a flaw with this technique, so I’ve since revised how salts are selected to make them independent of the plaintext.
The public inputs for the Argon2 salt are now:
- The version identifier prefix for the ciphertext blob.
- The 256-bit random value used as a KDF salt (also stored in the ciphertext blob).
- A recent Merkle tree root.
- The attribute name (prefixed by its length).
These values are all hashed together with SHA-512, and then truncated to 128 bits (the length required by libsodium for Argon2 salts).
This salt is not stored, but can deterministically be calculated from public information.
Crisis Averted?
This sure sounds like we’ve arrived at a solution, but let’s also consider another situation before we declare our job done.
High-traffic Public Key Directories may have multiple users push a protocol message with the same recent Merkle root.
This may happen if two or more users query the directory to obtain the latest Merkle root before either of them publish their updates.
Later, if both of these users issue a legal takedown, someone might observe that the
recent-merkle-rootis the same for two messages, but their commitments differ.Is this enough leakage to distinguish plaintext records?
In my earlier design, we needed to truncate the salt and rely on understanding the birthday bound to reason about its security. This is no longer the case, since each salt is randomized by the same random value used in key derivation.
Choosing Other Parameters
As mentioned a second ago, we set the output length of the Argon2id KDF to 32 bytes (256 bits). We expect the security of this KDF to exceed , which to most users might as well be infinity.
With apologies to Filippo.The other Argon2id parameters are a bit hand-wavey. Although the general recommendation for Argon2id is to use as much memory as possible, this code will inevitably run in some low-memory environments, so asking for several gigabytes isn’t reasonable.
For the first draft, I settled on 16 MiB of memory, 3 iterations, and a parallelism degree of 1 (for widespread platform support).
Plaintext Commitment Algorithm
With all that figured out, our plaintext commitment algorithm looks something like this:
- Calculate the SHA512 hash of:
- A domain separation constant
- The header prefix (stored in the ciphertext)
- The randomness used for key-splitting in encryption (stored in the ciphertext)
- Recent Merkle Root
- Attribute Name Length (64-bit unsigned integer)
- Attribute Name
- Truncate this hash to the rightmost 16 bytes (128 bits). This is the salt.
- Calculate Argon2id over the following inputs concatenated in this order, with an output length of 32 bytes (256 bits), using the salt from step 2:
- Recent Merle Root Length (64-bit unsigned integer)
- Recent Merkle Root
- Attribute Name Length (64-bit unsigned integer)
- Attribute Name
- Plaintext Length (64-bit unsigned integer)
- Plaintext
The output (step 3) is included as the AAD in the attribute encryption step, so the authentication tag is calculated over both the randomness and the commitment.
To verify a commitment (which is extractable from the ciphertext), simply recalculate the commitment you expect (using the recent Merkle root specified by the record), and compare the two in constant-time.
If they match, then you know the plaintext you’re seeing is the correct value for the ciphertext value that was committed to the Merkle tree.
If the encryption key is shredded in the future, an attacker without knowledge of the plaintext will have an enormous uphill battle recovering it from the KDF output (and the salt will prove to be somewhat useless as a crib).
AJCaveats and Limitations
Although this design does satisfy the specific criteria we’ve established, an attacker that already knows the correct plaintext can confirm that a specific record matches it via the plaintext commitment.
This cannot be avoided: If we are to publish a commitment of the plaintext, someone with the plaintext can always confirm the commitment after the fact.
CMYKatWhether this matters at all to the courts is a question for which I cannot offer any insight.
Remember, we don’t even know if any of this is actually necessary, or if “moderation and platform safety” is a sufficient reason to sidestep the right to erasure.
If the courts ever clarify this adequately, we can simply publish the mapping of Actor IDs to public keys and auxiliary data without any crypto-shredding at all.
Trying to attack it from the other direction (download a crypto-shredded record and try to recover the plaintext without knowing it ahead of time) is attack angle we’re interested in.
Herd Immunity for the Forgotten
Another interesting implication that might not be obvious: The more Fediverse servers and users publish to a single Public Key Directory, the greater the anonymity pool available to each of them.
Consider the case where a user has erased their previous Fediverse account and used the GDPR to also crypto-shred the Public Key Directory entries containing their old Actor ID.
To guess the correct plaintext, you must not only brute-force guessing possible usernames, but also permute your guesses across all of the instances in scope.
The more instances there are, the higher the cost of the attack.
CMYKatRecap
I tasked myself with designing a Key Transparency solution that doesn’t make complying with Article 17 of the GDPR nigh-impossible. To that end, crypto-shredding seemed like the only viable way forward.
A serialized record containing ciphertext for each sensitive attribute would be committed to the Merkle tree. The directory would store the key locally and serve plaintext until a legal takedown was requested by the user who owns the data. Afterwards, the stored ciphertext committed to the Merkle tree is indistinguishable from random for any party that doesn’t already know the plaintext value.
I didn’t want to allow Public Key Directories to lie about the plaintext for a given ciphertext, given that they know the key and the requestor doesn’t.
After considering zero-knowledge proofs and finding them to not be a perfect fit, I settled on designing a plaintext commitment scheme based on the Argon2id password KDF. The KDF salts can be calculated from public inputs.
Altogether, this meets the requirements of enabling crypto-shredding while keeping the Public Key Directory honest. All known attacks for this design are prohibitively expensive for any terrestrial threat actors.
As an added bonus, I didn’t introduce anything fancy. You can build all of this with the cryptography available to your favorite programming language today.
CMYKatClosing Thoughts
If you’ve made it this far without being horribly confused, you’ve successfully followed my thought process for developing message attribute shreddability in my Public Key Directory specification.
This is just one component of the overall design proposal, but one that I thought my readers would enjoy exploring in greater detail than the specification needed to capture.
(This post was updated on 2024-11-22 to replace the incorrect term “PII” with “personal data”. Apologies for the confusion!)
#Argon2 #crypto #cryptography #E2EE #encryption #FederatedPKI #fediverse #passwordHashing #symmetricCryptography
-
Key Transparency and the Right to be Forgotten
This post is the first in a new series covering some of the reasoning behind decisions made in my project to build end-to-end encryption for direct messages on the Fediverse.
(Collectively, Fedi-E2EE.)
Although the reasons for specific design decisions should be immediately obvious from reading the relevant specification (and if not, I consider that a bug in the specification), I believe writing about it less formally will improve the clarity behind the specific design decisions taken.
In the inaugural post for this series, I’d like to focus on how the Fedi-E2EE Public Key Directory specification aims to provide Key Transparency and an Authority-free PKI for the Fediverse without making GDPR compliance logically impossible.
CMYKat‘s art, edited by me.Background
Key Transparency
For a clearer background, I recommend reading my blog post announcing the focused effort on a Public Key Directory, and then my update from August 2024.
If you’re in a hurry, I’ll be brief:
The goal of Key Transparency is to ensure everyone in a network sees the same view of who has which public key.
How it accomplishes this is a little complicated: It involves Merkle trees, digital signatures, and a higher-level protocol of distinct actions that affect the state machine.
If you’re thinking “blockchain”, you’re in the right ballpark, but we aren’t propping up a cryptocurrency. Instead, we’re using a centralized publisher model (per Public Key Directory instance) with decentralized verification.
Add a bit of cross-signing and replication, and you can stitch together a robust network of Public Key Directories that can be queried to obtain the currently-trusted list of public keys (or other auxiliary data) for a given Fediverse user. This can then be used to build application-layer protocols (i.e., end-to-end encryption with an identity key more robust than “trust on first use” due to the built-in audit trail to Merkle trees).
I’m handwaving a lot of details here. The Architecture and Specification documents are both worth a read if you’re curious to learn more.
Right To Be Forgotten
I am not a lawyer, nor do I play one on TV. This is not legal advice. Other standard disclaimers go here.
Okay, now that we’ve got that out of the way, Article 17 of the GDPR establishes a “Right to erasure” for Personally Identifiable Information (PII).
What this actually means in practice has not been consistently decided by the courts yet. However, a publicly readable, immutable ledger that maps public keys (which may be considered PII) with Actor IDs (which includes usernames, which are definitely PII) goes against the grain when it comes to GDPR.
It remains an open question of there is public interest in this data persisting in a read-only ledger ad infinitum, which could override the right to be forgotten. If there is, that’s for the courts to decide, not furry tech bloggers.
I know it can be tempting, especially as an American with no presence in the European Union, to shrug and say, “That seems like a them problem.” However, if other folks want to be able to use my designs within the EU, I would be remiss to at least consider this potential pitfall and try to mitigate it in my designs.
So that’s is what I did.
Almost Contradictory
At first glance, the privacy goals of both Key Transparency and the GDPR’s Right To Erasure are at odds.
- One creates an immutable, append-only history.
- The other establishes a right for EU citizens’ history to be selectively censored, which means history has to be mutable.
However, they’re not totally impossible to reconcile.
An untested legal theory circulating around large American tech companies is that “crypto shredding” is legally equivalent to erasure.
Crypto shredding is the act of storing encrypted data, and then when given a legal takedown request from an EU citizen, deleting the key instead of the data.
This works from a purely technical perspective: If the data is encrypted, and you don’t know the key, to you it’s indistinguishable from someone who encrypted the same number of NUL bytes. In fact, many security proofs for encryption schemes are satisfied by reaching this conclusion, so this isn’t a crazy notion.
Is Crypto Shredding Plausible?
In 2019, the European Parliamentary Research Service published a lengthy report titled Blockchain and the General Data Protection Regulation which states the following:
Before any examination of whether blockchain technology is capable of complying with Article 17 GDPR; it must be underscored that the precise meaning of the term ‘erasure’ remains unclear.
Article 17 GDPR does not define erasure, and the Regulation’s recitals are equally mum on how this term should be understood. It might be assumed that a common-sense understanding of this terminology ought to be embraced. According to the Oxford English Dictionary, erasure means ‘the removal or writing, recorded material, or data’ or ‘the removal of all traces of something: obliteration’.494
From this perspective, erasure could be taken to equal destruction. It has, however, already been stressed that the destruction of data on blockchains, particularly these of a public and permissionless nature, is far from straightforward.
There are, however, indications that the obligation inherent to Article 17 GDPR does not have to be interpreted as requiring the outright destruction of data. In Google Spain, the delisting of information from research results was considered to amount to erasure. It is important to note, however, that in this case, this is all that was requested of Google by the claimant, who did not have control over the original data source (an online newspaper publication). Had the claimant wished to obtain the outright destruction of the relevant data it would have had to address the newspaper, not Google. This may be taken as an indication that what the GDPR requires is that the obligation resting on data controllers is to do all they can to secure a result as close as possible to the destruction of their data within the limits of [their] own factual possibilities.
Dr Michèle Finck, Blockchain and the General Data Protection Regulation, pp. 75-76
From this, we can kind of intuit that the courts aren’t pedantic: The cited Google Spain case was satisfied by merely delisting the content, not the erasure of the newspaper’s archives.
The report goes on to say:
As awareness regarding the tricky reconciliation between Article 17 GDPR and distributed ledgers grows, a number of technical alternatives to the outright destruction of data have been considered by various actors. An often-mentioned solution is that of the destruction of the private key, which would have the effect of making data encrypted with a public key inaccessible. This is indeed the solution that has been put forward by the French data protection authority CNIL in its guidance on blockchains and the GDPR. The CNIL has suggested that erasure could be obtained where the keyed hash function’s secret key is deleted together with information from other systems where it was stored for processing.
Dr Michèle Finck, Blockchain and the General Data Protection Regulation, pp. 76-77
That said, I cannot locate a specific court decision that affirms that crypto erasure is legally sufficient for complying with data erasure requests (nor any that affirm that it’s necessary).
I don’t have a crystal ball that can read the future on what government compliance will decide, nor am I an expert in legal matters.
Given the absence of a clear legal framework, I do think it’s totally reasonable to consider crypto-shredding equivalent to data erasure. Most experts would probably agree with this. But it’s also possible that the courts could rule totally stupidly on this one day.
Therefore, I must caution anyone that follows a similar path: Do not claim GDPR compliance just because you implement crypto-shredding in a distributed ledger. All you can realistically promise is that you’re not going out of your way to make compliance logically impossible. All we have to go by are untested legal hypotheses, and very little clarity (even if the technologists are near-unanimous on the topic!).
Towards A Solution
With all that in mind, let’s start with “crypto shredding” as the answer to the GDPR + transparency log conundrum.
This is only the start of our complications.
CMYKatProtocol Risks Introduced by Crypto Shredding
Before the introduction of crypto shredding, the job of the Public Key Directory was simple:
- Receive a protocol message.
- Validate the protocol message.
- Commit the protocol message to a transparency log (in this case, Sigsum).
- Retrieve the protocol message whenever someone requests it to independently verify its inclusion.
- Miscellaneous other protocol things (cross-directory checkpoint commitment, replication, etc.).
Point being: there was very little that the directory could do to be dishonest. If they lied about the contents of a record, it would invalidate the inclusion proofs of every successive record in the ledger.
In order to make a given record crypto-shreddable without breaking the inclusion proofs for every record that follows, we need to commit to the ciphertext, not the plaintext. (And then, when a takedown request comes in, wipe the key.)
Now, things are quite more interesting.
Do you…
- …Distribute the encryption key alongside the ciphertext and let independent third parties decrypt it on demand?
…OR…
- Decrypt the ciphertext and serve plaintext through the public API, keeping the encryption key private so that it may be shredded later?
The first option seems simple, but runs into governance issues: How do you claim the data was crypto-shredded if countless individuals have a copy of the encryption key, and can therefore recover the plaintext from the ciphertext?
Your best option is the second one, clearly.
Okay, so how does an end user know that the ciphertext that was committed to the transparency ledger decrypts to the specific plaintext value served by the Public Key Directory? How do users know it’s not lying?
Quick aside: This question is also relevant if you went with the first option and used a non-committing AEAD mode for the actual encryption scheme.
In that scenario, a hostile nation state adversary could pressure a Public Key Directory to selectively give one decryption key to targeted users, and another to the rest of the Internet, in order to perform a targeted attack against citizens they’d rather didn’t have civil rights.
My entire goal with introducing key transparency to my end-to-end encryption proposal is to prevent these sorts of attacks, not enable them.
There are a lot of avenues we could explore here, but it’s always worth outlining the specific assumptions and security goals of any design before you start perusing the literature.
Assumptions
This is just a list of things we assume are true, and do not need to prove for the sake of our discussion here today. The first two are legal assumptions; the remainder are cryptographic.
Ask your lawyer if you want advice about the first two assumptions. Ask your cryptographer if you suspect any of the remaining assumptions are false.
- Crypto-shredding is a legally valid way to provide data erasure (as discussed above).
- EU courts will consider public keys to be PII.
- The SHA-2 family of hash functions is secure (ignoring length-extension attacks, which won’t matter for how we’re using them).
- HMAC is a secure way to build a MAC algorithm out of a secure hash function.
- HKDF is a secure KDF if used correctly.
- AES is a secure 128-bit block cipher.
- Counter Mode (CTR) is a secure way to turn a block cipher into a stream cipher.
- AES-CTR + HMAC-SHA2 can be turned into a secure AEAD mode, if done carefully.
- Ed25519 is a digital signature algorithm that provides strong security against existent forgery under a chosen-message attack (SUF-CMA).
- Argon2id is a secure, memory-hard password KDF, when used with reasonable parameters. (You’ll see why in a moment.)
- Sigsum is a secure mechanism for building a transparency log.
This list isn’t exhaustive or formal, but should be sufficient for our purposes.
Security Goals
- The protocol messages stored in the Public Key Directory are accompanied by a Merkle tree proof of inclusion. This makes it append-only with an immutable history.
- The Public Key Directory cannot behave dishonestly about the decrypted plaintext for a given ciphertext without clients detecting the deception.
- Whatever strategy we use to solve this should be resistant to economic precomputation and brute-force attacks.
Can We Use Zero-Knowledge Proofs?
At first, this seems like an ideal situation for a succinct, non-interactive zero-knowledge proof.
After all, you’ve got some secret data that you hold, and you want to prove that a calculation is correct without revealing the data to the end user. This seems like the ideal setup for Schnorr’s identification protocol.
Unfortunately, the second assumption (public keys being considered PII by courts, even though they’re derived from random secret keys) makes implementing a Zero-Knowledge Proof here very challenging.
First, if you look at Ed25519 carefully, you’ll realize that it’s just a digital signature algorithm built atop a Schnorr proof, which requires some sort of public key (even an ephemeral one) to be managed.
Worse, if you try to derive this value solely from public inputs (rather than creating a key management catch-22), the secret scalar your system derives at will have been calculated from the user’s PII–which only strengthens a court’s argument that the public key is therefore personally identifiable.
There may be a more exotic zero-knowledge proof scheme that might be appropriate for our needs, but I’m generally wary of fancy new cryptography.
Here are two rules I live by in this context:
- If I can’t get the algorithms out of the crypto module for whatever programming language I find myself working with, it may as well not even exist.
- Corollary: If libsodium bindings are available, that counts as “the crypto module” too.
- If a developer needs to reach for a generic Big Integer library (e.g., GMP) for any reason in the course of implementing a protocol, I do not trust their implementation.
Unfortunately, a lot of zero-knowledge proof designs fail one or both of these rules in practice.
(Sorry not sorry, homomorphic encryption enthusiasts! The real world hasn’t caught up to your ideas yet.)
Soatok’s Proposed Solution
If you want to fully understand the nitty-gritty implementation details, I encourage you to read the current draft specification, plus the section describing the encryption algorithm, and finally the plaintext commitment algorithm.
Now that we’ve established all that, I can begin to describe my approach to solving this problem.
First, we will encrypt each attribute of a protocol message, as follows:
- For subkey derivation, we use HKDF-HMAC-SHA512.
- For encrypting the actual plaintext, we use AES-256-CTR.
- For message authentication, we use HMAC-SHA512.
- Additional associated data (AAD) is accepted and handled securely; i.e., we don’t use YOLO as a hash construction.
This prevents an Invisible Salamander attack from being possible.
Next, to prevent the server from being dishonest, we include a plaintext commitment hash, which is included as part of the AAD (alongside the attribute name).
(Implementing crypto-shredding is straightforward: simply wipe the encryption keys for the attributes of the records in scope for the request.)
If you’ve read this far, you’re probably wondering, “What exactly do you mean by plaintext commitment?”
Plaintext Commitments
The security of a plaintext commitment is attained by the Argon2id password hashing function.
By using the Argon2id KDF, you can make an effective trapdoor that is easy to calculate if you know the plaintext, but economically infeasible to brute-force attack if you do not.
However, you need to do a little more work to make it safe.
Pass the Salt?
Argon2id expects both a password and a salt.
If you eschew the salt (i.e., zero it out), you open the door to precomputation attacks (see also: rainbow tables) that would greatly weaken the security of this plaintext commitment scheme.
You need a salt.
If you generate the salt randomly, this commitment property isn’t guaranteed by the algorithm. It would be difficult, but probably not impossible, to find two salts (, ) such that .
I’m handwaving the fact that the salts are stored for now.
Deriving the salt from public inputs eliminates this flexibility.
By itself, this reintroduces the risk of making salts totally deterministic, which reintroduces the risk of precomputation attacks (which motivated the salt in the first place).
Furthermore, any two encryptions operations that act over the same plaintext would, without any additional design considerations, produce an identical value for the salt, which would lead to an identical plaintext commitment.
Getting to the Root of the Problem
The scheme I’m designing, which encrypts the attributes of protocol messages and includes a commitment of the plaintext, doesn’t exist in a vacuum.
In my system, there is one additional public input we can use to increase the quality of the salt distribution (to resist precomputation) without introducing variability (to ensure the commitment is robust): A recent Merkle tree root.
Since every protocol message accepted by a Public Key Directory will have a distinct Merkle root, a high-traffic Public Key Directory will produce a high-entropy root hash every time a user issues a new protocol message. This is especially true if, when issuing multiple successive messages, they use the root of their previous accepted Merkle root as the “recent” root when calculating their next plaintext commitment.
Given that Sigsum uses SHA256, there are possible Merkle roots to choose from.
Crisis Averted?
This sure sounds like a solution, but let’s also consider another situation.
High-traffic Public Key Directories may have multiple users push a protocol message with the same recent Merkle root.
Later, if both of these users issue a legal takedown, someone might observe that the
recent-merkle-rootis the same for two messages, but their salts differ.Is this enough leakage to distinguish plaintext records?
After pondering this for a bit, I decided this was a stupid problem to have, and reached for an oft-ignored tool in a cryptographer’s toolkit (except for modern hash function designers): Truncation.
If we truncate the salt to a smaller value, we can increase the chance of a birthday collision.
We do need to be careful: Too small, and we improve the economics of precomputation. Too large, and we risk creating a reliably crib for distinct plaintext values.
How Much is Too Much?
Let’s revisit the birthday paradox.
If you have a probability space of , you expect a 50% chance of a single collision after about samples.
More interesting, you have a probability of a collision after about samples.
Given that I’m designing this project for the Fediverse, which has millions of accounts (and of which more than 100,000 can reasonably be considered “active”), I posit that a probability space of is sufficient for the Argon2id salt.
Because salts are expected to be 128 bits (at least with libsodium), we fix the other bytes to a protocol-specific constant, which contains some version information that can be changed in future iterations. This won’t be on the final exam.
Why ?
Simply put: we want salts to collide (albeit somewhat rarely).
Since the salt derivation algorithm is a faster hash than a KDF, collisions make it less useful for attackers hoping for a reliable plaintext crib.
With 48 bits left after truncation, a 50% collision probability is reached after samples (a little over 16 million). The optimal birthday bound is reached after samples (65,536).
How do you arrive at this number?
Let’s assume, for the moment, that my proposal sees widespread adoption with Fediverse users.
There are just under 11 million total, and 1 million monthly active, Fediverse users as of this writing. BlueSky just hit 20 million users.
These numbers are in the to range. (For comparison, Twitter boasted over half a billion users earlier this year, which rounds up to .)
It is therefore expected that at least one pair of distinct plaintext Actor IDs, using two different recent Merkle roots, would produce the same salt for their plaintext commitment.
This gives attackers a disadvantage, since collisions make the salt (derived from a fast hash) useless, thereby forcing them to attack the KDF output instead.
Conversely, breaking the KDF output with precomputation strategies would still involve different salts for each possible plaintext.
This rounds off to about 9 petabytes of storage just for a 48-bit salt and a 208-bit Argon2id KDF output (for a total of 32 bytes).
Choosing Other Parameters
As mentioned a second ago, we set the output length of the Argon2id KDF to 26 bytes (208 bits). We expect the security of this KDF to exceed . This allows us to concatenate the salt and KDF output for a total of 256 bits, which keeps the total commitment size reasonable.
The other Argon2id parameters are a bit hand-wavey. Although the general recommendation for Argon2id is to use as much memory as possible, this code will inevitably run in some low-memory environments, so asking for several gigabytes isn’t reasonable.
For the first draft, I settled on 16 MiB of memory, 3 iterations, and a parallelism degree of 1 (for widespread platform support).
Plaintext Commitment Algorithm
With all that figured out, our plaintext commitment algorithm looks something like this:
- Calculate the HMAC-SHA512 hash (whose key is constant for domain separation) of:
- Recent Merle Root Lengh (64-bit unsigned integer)
- Recent Merkle Root
- Attribute Name Length (64-bit unsigned integer)
- Attribute Name
- Plaintext Length (64-bit unsigned integer)
- Plaintext
- Truncate this hash to the rightmost 6 bytes (48 bits).
- Calculate Argon2id with the salt set to the ASCII string
FE2EEPKDv1followed by the truncated hash (step 2), with an output length of 26 bytes (208 bits). - Concatenate the output steps 2 and 3.
The output (step 4) is included as the AAD in the attribute encryption step.
To verify a commitment (which is extractable from the ciphertext), simply recalculate the commitment you expect (using the recent Merkle root specified by the record), and compare the two in constant-time.
If they match, then you know the plaintext you’re seeing is the correct value for the ciphertext value that was committed to the Merkle tree.
If the encryption key is shredded in the future, an attacker without knowledge of the plaintext will have an enormous uphill battle recovering it from the KDF output (and the salt will prove to be somewhat useless as a crib).
AJRecap
I tasked myself with designing a Key Transparency solution that doesn’t make complying with Article 17 of the GDPR nigh-impossible. To that end, crypto-shredding seemed like the only viable way forward.
A serialized record containing ciphertext for each sensitive attribute would be committed to the Merkle tree. The directory would store the key locally and serve plaintext until a legal takedown was requested by the user who owns the data. Afterwards, the stored ciphertext committed to the Merkle tree is indistinguishable from random for any party that doesn’t already know the plaintext value.
I didn’t want to allow Public Key Directories to lie about the plaintext for a given ciphertext, given that they know the key and the requestor doesn’t.
After considering zero-knowledge proofs and finding them to not be a perfect fit, I settled on designing a plaintext commitment scheme based on the Argon2id password KDF, which uses a recent Merkle root to diversify the KDF salt selection, and truncates the result to make salt collisions likely (so anyone trying to attack the salt to guess plaintexts is at a disadvantage).
Altogether, this meets the requirements of enabling crypto-shredding while keeping the Public Key Directory honest. All known attacks for this design are prohibitively expensive for any terrestrial threat actors.
As an added bonus, I didn’t introduce anything fancy. You can build all of this with the cryptography available to your favorite programming language today.
Closing Thoughts
If you’ve made it this far without being horribly confused, you’ve successfully followed my thought process for developing message attribute shreddability in my Public Key Directory specification.
This is just one component of the overall design proposal, but one that I thought my readers would enjoy exploring in greater detail than the specification needed to capture.
#Argon2 #crypto #cryptography #E2EE #encryption #FederatedPKI #fediverse #passwordHashing #symmetricCryptography
-
Key Transparency and the Right to be Forgotten
This post is the first in a new series covering some of the reasoning behind decisions made in my project to build end-to-end encryption for direct messages on the Fediverse.
(Collectively, Fedi-E2EE.)
Although the reasons for specific design decisions should be immediately obvious from reading the relevant specification (and if not, I consider that a bug in the specification), I believe writing about it less formally will improve the clarity behind the specific design decisions taken.
In the inaugural post for this series, I’d like to focus on how the Fedi-E2EE Public Key Directory specification aims to provide Key Transparency and an Authority-free PKI for the Fediverse without making GDPR compliance logically impossible.
CMYKat‘s art, edited by me.Background
Key Transparency
For a clearer background, I recommend reading my blog post announcing the focused effort on a Public Key Directory, and then my update from August 2024.
If you’re in a hurry, I’ll be brief:
The goal of Key Transparency is to ensure everyone in a network sees the same view of who has which public key.
How it accomplishes this is a little complicated: It involves Merkle trees, digital signatures, and a higher-level protocol of distinct actions that affect the state machine.
If you’re thinking “blockchain”, you’re in the right ballpark, but we aren’t propping up a cryptocurrency. Instead, we’re using a centralized publisher model (per Public Key Directory instance) with decentralized verification.
Add a bit of cross-signing and replication, and you can stitch together a robust network of Public Key Directories that can be queried to obtain the currently-trusted list of public keys (or other auxiliary data) for a given Fediverse user. This can then be used to build application-layer protocols (i.e., end-to-end encryption with an identity key more robust than “trust on first use” due to the built-in audit trail to Merkle trees).
I’m handwaving a lot of details here. The Architecture and Specification documents are both worth a read if you’re curious to learn more.
HarubakiRight To Be Forgotten
I am not a lawyer, nor do I play one on TV. This is not legal advice. Other standard disclaimers go here.
Okay, now that we’ve got that out of the way, Article 17 of the GDPR establishes a “Right to erasure” for Personal Data.
What this actually means in practice has not been consistently decided by the courts yet. However, a publicly readable, immutable ledger that maps public keys (which may be considered Personal Data) with Actor IDs (which includes usernames, which are definitely Personal Data) goes against the grain when it comes to GDPR.
It remains an open question of there is public interest in this data persisting in a read-only ledger ad infinitum, which could override the right to be forgotten. If there is, that’s for the courts to decide, not furry tech bloggers.
I know it can be tempting, especially as an American with no presence in the European Union, to shrug and say, “That seems like a them problem.” However, if other folks want to be able to use my designs within the EU, I would be remiss to at least consider this potential pitfall and try to mitigate it in my designs.
So that’s exactly what I did.
AJAlmost Contradictory
At first glance, the privacy goals of both Key Transparency and the GDPR’s Right To Erasure are at odds.
- One creates an immutable, append-only history.
- The other establishes a right for EU citizens’ history to be selectively censored, which means history has to be mutable.
However, they’re not totally impossible to reconcile.
An untested legal theory circulating around large American tech companies is that “crypto shredding” is legally equivalent to erasure.
Crypto shredding is the act of storing encrypted data, and then when given a legal takedown request from an EU citizen, deleting the key instead of the data.
AJThis works from a purely technical perspective: If the data is encrypted, and you don’t know the key, to you it’s indistinguishable from someone who encrypted the same number of NUL bytes.
In fact, many security proofs for encryption schemes are satisfied by reaching this conclusion, so this isn’t a crazy notion.
Is Crypto Shredding Plausible?
In 2019, the European Parliamentary Research Service published a lengthy report titled Blockchain and the General Data Protection Regulation which states the following:
Before any examination of whether blockchain technology is capable of complying with Article 17 GDPR; it must be underscored that the precise meaning of the term ‘erasure’ remains unclear.
Article 17 GDPR does not define erasure, and the Regulation’s recitals are equally mum on how this term should be understood. It might be assumed that a common-sense understanding of this terminology ought to be embraced. According to the Oxford English Dictionary, erasure means ‘the removal or writing, recorded material, or data’ or ‘the removal of all traces of something: obliteration’.494
From this perspective, erasure could be taken to equal destruction. It has, however, already been stressed that the destruction of data on blockchains, particularly these of a public and permissionless nature, is far from straightforward.
There are, however, indications that the obligation inherent to Article 17 GDPR does not have to be interpreted as requiring the outright destruction of data. In Google Spain, the delisting of information from research results was considered to amount to erasure. It is important to note, however, that in this case, this is all that was requested of Google by the claimant, who did not have control over the original data source (an online newspaper publication). Had the claimant wished to obtain the outright destruction of the relevant data it would have had to address the newspaper, not Google. This may be taken as an indication that what the GDPR requires is that the obligation resting on data controllers is to do all they can to secure a result as close as possible to the destruction of their data within the limits of [their] own factual possibilities.
Dr Michèle Finck, Blockchain and the General Data Protection Regulation, pp. 75-76
From this, we can kind of intuit that the courts aren’t pedantic: The cited Google Spain case was satisfied by merely delisting the content, not the erasure of the newspaper’s archives.
The report goes on to say:
As awareness regarding the tricky reconciliation between Article 17 GDPR and distributed ledgers grows, a number of technical alternatives to the outright destruction of data have been considered by various actors. An often-mentioned solution is that of the destruction of the private key, which would have the effect of making data encrypted with a public key inaccessible. This is indeed the solution that has been put forward by the French data protection authority CNIL in its guidance on blockchains and the GDPR. The CNIL has suggested that erasure could be obtained where the keyed hash function’s secret key is deleted together with information from other systems where it was stored for processing.
Dr Michèle Finck, Blockchain and the General Data Protection Regulation, pp. 76-77
That said, I cannot locate a specific court decision that affirms that crypto erasure is legally sufficient for complying with data erasure requests (nor any that affirm that it’s necessary).
I don’t have a crystal ball that can read the future on what government compliance will decide, nor am I an expert in legal matters.
Given the absence of a clear legal framework, I do think it’s totally reasonable to consider crypto-shredding equivalent to data erasure. Most experts would probably agree with this. But it’s also possible that the courts could rule totally stupidly on this one day.
Therefore, I must caution anyone that follows a similar path: Do not claim GDPR compliance just because you implement crypto-shredding in a distributed ledger. All you can realistically promise is that you’re not going out of your way to make compliance logically impossible. All we have to go by are untested legal hypotheses, and very little clarity (even if the technologists are near-unanimous on the topic!).
Towards A Solution
With all that in mind, let’s start with “crypto shredding” as the answer to the GDPR + transparency log conundrum.
This is only the start of our complications.
CMYKatProtocol Risks Introduced by Crypto Shredding
Before the introduction of crypto shredding, the job of the Public Key Directory was simple:
- Receive a protocol message.
- Validate the protocol message.
- Commit the protocol message to a transparency log (in this case, Sigsum).
- Retrieve the protocol message whenever someone requests it to independently verify its inclusion.
- Miscellaneous other protocol things (cross-directory checkpoint commitment, replication, etc.).
Point being: there was very little that the directory could do to be dishonest. If they lied about the contents of a record, it would invalidate the inclusion proofs of every successive record in the ledger.
In order to make a given record crypto-shreddable without breaking the inclusion proofs for every record that follows, we need to commit to the ciphertext, not the plaintext. (And then, when a takedown request comes in, wipe the key.)
Now, things are quite more interesting.
Do you…
- …Distribute the encryption key alongside the ciphertext and let independent third parties decrypt it on demand?
…OR…
- Decrypt the ciphertext and serve plaintext through the public API, keeping the encryption key private so that it may be shredded later?
The first option seems simple, but runs into governance issues: How do you claim the data was crypto-shredded if countless individuals have a copy of the encryption key, and can therefore recover the plaintext from the ciphertext?
I don’t think that would stand up in court.
CMYKatClearly, your best option is the second one.
Okay, so how does an end user know that the ciphertext that was committed to the transparency ledger decrypts to the specific plaintext value served by the Public Key Directory? How do users know it’s not lying?
Quick aside: This question is also relevant if you went with the first option and used a non-committing AEAD mode for the actual encryption scheme.
In that scenario, a hostile nation state adversary could pressure a Public Key Directory to selectively give one decryption key to targeted users, and another to the rest of the Internet, in order to perform a targeted attack against citizens they’d rather didn’t have civil rights.
My entire goal with introducing key transparency to my end-to-end encryption proposal is to prevent these sorts of attacks, not enable them.
There are a lot of avenues we could explore here, but it’s always worth outlining the specific assumptions and security goals of any design before you start perusing the literature.
AJAssumptions
This is just a list of things we assume are true, and do not need to prove for the sake of our discussion here today. The first two are legal assumptions; the remainder are cryptographic.
Ask your lawyer if you want advice about the first two assumptions. Ask your cryptographer if you suspect any of the remaining assumptions are false.
- Crypto-shredding is a legally valid way to provide data erasure (as discussed above).
- EU courts will consider public keys to be Personal Data.
- The SHA-2 family of hash functions is secure (ignoring length-extension attacks, which won’t matter for how we’re using them).
- HMAC is a secure way to build a MAC algorithm out of a secure hash function.
- HKDF is a secure KDF if used correctly.
- AES is a secure 128-bit block cipher.
- Counter Mode (CTR) is a secure way to turn a block cipher into a stream cipher.
- AES-CTR + HMAC-SHA2 can be turned into a secure AEAD mode, if done carefully.
- Ed25519 is a digital signature algorithm that provides strong security against existent forgery under a chosen-message attack (SUF-CMA).
- Argon2id is a secure, memory-hard password KDF, when used with reasonable parameters. (You’ll see why in a moment.)
- Sigsum is a secure mechanism for building a transparency log.
This list isn’t exhaustive or formal, but should be sufficient for our purposes.
Security Goals
- The protocol messages stored in the Public Key Directory are accompanied by a Merkle tree proof of inclusion. This makes it append-only with an immutable history.
- The Public Key Directory cannot behave dishonestly about the decrypted plaintext for a given ciphertext without clients detecting the deception.
- Whatever strategy we use to solve this should be resistant to economic precomputation and brute-force attacks.
Can We Use Zero-Knowledge Proofs?
At first, this seems like an ideal situation for a succinct, non-interactive zero-knowledge proof.
After all, you’ve got some secret data that you hold, and you want to prove that a calculation is correct without revealing the data to the end user. This seems like the ideal setup for Schnorr’s identification protocol.
CMYKatUnfortunately, the second assumption (public keys being considered Personal Data by courts, even though they’re derived from random secret keys) makes implementing a Zero-Knowledge Proof here very challenging.
First, if you look at Ed25519 carefully, you’ll realize that it’s just a digital signature algorithm built atop a Schnorr proof, which requires some sort of public key (even an ephemeral one) to be managed.
Worse, if you try to derive this value solely from public inputs (rather than creating a key management catch-22), the secret scalar your system derives at will have been calculated from the user’s Personal Data–which only strengthens a court’s argument that the public key is therefore personally identifiable.
CMKatThere may be a more exotic zero-knowledge proof scheme that might be appropriate for our needs, but I’m generally wary of fancy new cryptography.
Here are two rules I live by in this context:
- If I can’t get the algorithms out of the crypto module for whatever programming language I find myself working with, it may as well not even exist.
- Corollary: If libsodium bindings are available, that counts as “the crypto module” too.
- If a developer needs to reach for a generic Big Integer library (e.g., GMP) for any reason in the course of implementing a protocol, I do not trust their implementation.
Unfortunately, a lot of zero-knowledge proof designs fail one or both of these rules in practice.
(Sorry not sorry, homomorphic encryption enthusiasts! The real world hasn’t caught up to your ideas yet.)
What About Verifiable Random Functions (VRFs)?
It may be tempting to use VRFs (i.e., RFC 9381), but this runs into the same problem as zero-knowledge proofs: we’re assuming that an EU court would deem public keys Personal Data.
But even if that assumption turns out false, the lifecycle of a protocol message looks like this:
- User wants to perform an action (e.g.,
AddKey). - Their client software creates a plaintext protocol message.
- Their client software generates a random 256-bit key for each potentially-sensitive attribute, so it can be shredded later.
- Their client software encrypts each attribute of the protocol message.
- The ciphertext and keys are sent to the Public Key Directory.
- For each attribute, the Public Key Directory decrypts the ciphertext with the key, verifies the contents, and then stores both. The ciphertext is used to generate a commitment on Sigsum (signed by the Public Key Directory’s keypair).
- The Public Key Directory serves plaintext to requestors, but does not disclose the key.
- In the future, the end user can demand a legal takedown, which just wipes the key.
Let’s assume I wanted to build a VRF out of Ed25519 (similar to what Signal does with VXEdDSA). Now I have a key management problem, which is pretty much what this project was meant to address in the first place.
VRFs are really cool, and more projects should use them, but I don’t think they will help me.
CMYKatSoatok’s Proposed Solution
If you want to fully understand the nitty-gritty implementation details, I encourage you to read the current draft specification, plus the section describing the encryption algorithm, and finally the plaintext commitment algorithm.
Now that we’ve established all that, I can begin to describe my approach to solving this problem.
First, we will encrypt each attribute of a protocol message, as follows:
- For subkey derivation, we use HKDF-HMAC-SHA512.
- For encrypting the actual plaintext, we use AES-256-CTR.
- For message authentication, we use HMAC-SHA512.
- Additional associated data (AAD) is accepted and handled securely; i.e., we don’t use YOLO as a hash construction.
This prevents an Invisible Salamander attack from being possible.
This encryption is performed client-side, by each user, and the symmetric key for each attribute is shared with the Public Key Directory when publishing protocol messages.
If they later issue a legal request for erasure, they can be sure that the key used to encrypt the data they previously published isn’t secretly the same key used by every other user’s records.
They always know this because they selected the key, not the server. Furthermore, everyone can verify that the hash published to the Merkle tree matches a locally generated hash of the ciphertext they just emitted.
This provides a mechanism to keep everyone honest. If anything goes wrong, it will be detected.
Next, to prevent the server from being dishonest, we include a plaintext commitment hash, which is included as part of the AAD (alongside the attribute name).
(Implementing crypto-shredding is straightforward: simply wipe the encryption keys for the attributes of the records in scope for the request.)
If you’ve read this far, you’re probably wondering, “What exactly do you mean by plaintext commitment?”
Art by Scruff.Plaintext Commitments
The security of a plaintext commitment is attained by the Argon2id password hashing function.
By using the Argon2id KDF, you can make an effective trapdoor that is easy to calculate if you know the plaintext, but economically infeasible to brute-force attack if you do not.
However, you need to do a little more work to make it safe.
HarubakiThe details here matter a lot, so this section is unavoidably going to be a little dense.
Pass the Salt?
Argon2id expects both a password and a salt.
If you eschew the salt (i.e., zero it out), you open the door to precomputation attacks (see also: rainbow tables) that would greatly weaken the security of this plaintext commitment scheme.
You need a salt.
If you generate the salt randomly, this commitment property isn’t guaranteed by the algorithm. It would be difficult, but probably not impossible, to find two salts (, ) such that .
Deriving the salt from public inputs eliminates this flexibility.
By itself, this reintroduces the risk of making salts totally deterministic, which reintroduces the risk of precomputation attacks (which motivated the salt in the first place).
If you include the plaintext in this calculation, it could also create a crib that gives attackers a shortcut for bypassing the cost of password hashing.
Furthermore, any two encryptions operations that act over the same plaintext would, without any additional design considerations, produce an identical value for the plaintext commitment.
CMYKatPublic Inputs for Salt Derivation
The initial proposal included the plaintext value for Argon2 salt derivation, and published the salt and Argon2 output next to each other.
Hacker News comex pointed out a flaw with this technique, so I’ve since revised how salts are selected to make them independent of the plaintext.
The public inputs for the Argon2 salt are now:
- The version identifier prefix for the ciphertext blob.
- The 256-bit random value used as a KDF salt (also stored in the ciphertext blob).
- A recent Merkle tree root.
- The attribute name (prefixed by its length).
These values are all hashed together with SHA-512, and then truncated to 128 bits (the length required by libsodium for Argon2 salts).
This salt is not stored, but can deterministically be calculated from public information.
Crisis Averted?
This sure sounds like we’ve arrived at a solution, but let’s also consider another situation before we declare our job done.
High-traffic Public Key Directories may have multiple users push a protocol message with the same recent Merkle root.
This may happen if two or more users query the directory to obtain the latest Merkle root before either of them publish their updates.
Later, if both of these users issue a legal takedown, someone might observe that the
recent-merkle-rootis the same for two messages, but their commitments differ.Is this enough leakage to distinguish plaintext records?
In my earlier design, we needed to truncate the salt and rely on understanding the birthday bound to reason about its security. This is no longer the case, since each salt is randomized by the same random value used in key derivation.
Choosing Other Parameters
As mentioned a second ago, we set the output length of the Argon2id KDF to 32 bytes (256 bits). We expect the security of this KDF to exceed , which to most users might as well be infinity.
With apologies to Filippo.The other Argon2id parameters are a bit hand-wavey. Although the general recommendation for Argon2id is to use as much memory as possible, this code will inevitably run in some low-memory environments, so asking for several gigabytes isn’t reasonable.
For the first draft, I settled on 16 MiB of memory, 3 iterations, and a parallelism degree of 1 (for widespread platform support).
Plaintext Commitment Algorithm
With all that figured out, our plaintext commitment algorithm looks something like this:
- Calculate the SHA512 hash of:
- A domain separation constant
- The header prefix (stored in the ciphertext)
- The randomness used for key-splitting in encryption (stored in the ciphertext)
- Recent Merkle Root
- Attribute Name Length (64-bit unsigned integer)
- Attribute Name
- Truncate this hash to the rightmost 16 bytes (128 bits). This is the salt.
- Calculate Argon2id over the following inputs concatenated in this order, with an output length of 32 bytes (256 bits), using the salt from step 2:
- Recent Merle Root Length (64-bit unsigned integer)
- Recent Merkle Root
- Attribute Name Length (64-bit unsigned integer)
- Attribute Name
- Plaintext Length (64-bit unsigned integer)
- Plaintext
The output (step 3) is included as the AAD in the attribute encryption step, so the authentication tag is calculated over both the randomness and the commitment.
To verify a commitment (which is extractable from the ciphertext), simply recalculate the commitment you expect (using the recent Merkle root specified by the record), and compare the two in constant-time.
If they match, then you know the plaintext you’re seeing is the correct value for the ciphertext value that was committed to the Merkle tree.
If the encryption key is shredded in the future, an attacker without knowledge of the plaintext will have an enormous uphill battle recovering it from the KDF output (and the salt will prove to be somewhat useless as a crib).
AJCaveats and Limitations
Although this design does satisfy the specific criteria we’ve established, an attacker that already knows the correct plaintext can confirm that a specific record matches it via the plaintext commitment.
This cannot be avoided: If we are to publish a commitment of the plaintext, someone with the plaintext can always confirm the commitment after the fact.
CMYKatWhether this matters at all to the courts is a question for which I cannot offer any insight.
Remember, we don’t even know if any of this is actually necessary, or if “moderation and platform safety” is a sufficient reason to sidestep the right to erasure.
If the courts ever clarify this adequately, we can simply publish the mapping of Actor IDs to public keys and auxiliary data without any crypto-shredding at all.
Trying to attack it from the other direction (download a crypto-shredded record and try to recover the plaintext without knowing it ahead of time) is attack angle we’re interested in.
Herd Immunity for the Forgotten
Another interesting implication that might not be obvious: The more Fediverse servers and users publish to a single Public Key Directory, the greater the anonymity pool available to each of them.
Consider the case where a user has erased their previous Fediverse account and used the GDPR to also crypto-shred the Public Key Directory entries containing their old Actor ID.
To guess the correct plaintext, you must not only brute-force guessing possible usernames, but also permute your guesses across all of the instances in scope.
The more instances there are, the higher the cost of the attack.
CMYKatRecap
I tasked myself with designing a Key Transparency solution that doesn’t make complying with Article 17 of the GDPR nigh-impossible. To that end, crypto-shredding seemed like the only viable way forward.
A serialized record containing ciphertext for each sensitive attribute would be committed to the Merkle tree. The directory would store the key locally and serve plaintext until a legal takedown was requested by the user who owns the data. Afterwards, the stored ciphertext committed to the Merkle tree is indistinguishable from random for any party that doesn’t already know the plaintext value.
I didn’t want to allow Public Key Directories to lie about the plaintext for a given ciphertext, given that they know the key and the requestor doesn’t.
After considering zero-knowledge proofs and finding them to not be a perfect fit, I settled on designing a plaintext commitment scheme based on the Argon2id password KDF. The KDF salts can be calculated from public inputs.
Altogether, this meets the requirements of enabling crypto-shredding while keeping the Public Key Directory honest. All known attacks for this design are prohibitively expensive for any terrestrial threat actors.
As an added bonus, I didn’t introduce anything fancy. You can build all of this with the cryptography available to your favorite programming language today.
CMYKatClosing Thoughts
If you’ve made it this far without being horribly confused, you’ve successfully followed my thought process for developing message attribute shreddability in my Public Key Directory specification.
This is just one component of the overall design proposal, but one that I thought my readers would enjoy exploring in greater detail than the specification needed to capture.
(This post was updated on 2024-11-22 to replace the incorrect term “PII” with “personal data”. Apologies for the confusion!)
#Argon2 #crypto #cryptography #E2EE #encryption #FederatedPKI #fediverse #passwordHashing #symmetricCryptography
-
Best Graphic Design Software 2025: Your Ultimate Guide to the Top 20 Tools
This post contains affiliate links. We may earn a commission if you click on them and make a purchase. It’s at no extra cost to you and helps us run this site. Thanks for your support!
Picking the best graphic design software can feel like a monumental task, can’t it? You’re standing at a crossroads, with a dozen paths leading to different creative destinations. Which one is right for your journey in 2025? Will it be the industry giant everyone talks about, or perhaps a nimble newcomer making waves? This isn’t just about features; it’s about finding a partner for your creativity, a tool that empowers you to bring those brilliant ideas to life. If you’re searching for the best graphic design software to elevate your work, you’ve come to the right place.
The landscape of digital design is always shifting. New tools emerge, old favorites get powerful updates, and the way we create evolves. Think about how much AI has started to weave its way into creative workflows, or how crucial seamless collaboration has become. So, what truly makes a program the best graphic design software as we head into 2025? It’s a mix of power, usability, an eye on the future, and, of course, how well it fits your specific needs and budget.
This guide isn’t just another list. It’s a friendly chat, a detailed exploration of the top 20 design tools that are set to define and dominate 2025. We’ll look at everything from the undisputed champions to exciting challengers, free graphic design software, and specialized apps. We’ll uncover what makes each one tick, who it’s perfect for, and what new tricks they have up their sleeves for the coming year. Ready to find your perfect creative match? Let’s explore the options for the best graphic design software together.
The Titans: Industry-Standard Graphic Design Software
When people talk about professional graphic design software, a few names immediately spring to mind. These are the titans, the tools that have shaped industries and continue to be the benchmark for many. They are often part of a larger ecosystem, offering comprehensive solutions.
1. Adobe Photoshop: The Unrivaled Image Manipulation King
Adobe Photoshop is often the first name uttered when discussing the best graphic design software, especially for raster graphics. For decades, it has been the industry standard for photo editing, image manipulation, digital painting, and much more. If you can imagine it, you can probably create it in Photoshop.
- The 2025 Edge: Leading into 2025, Photoshop continues to impress with its ever-expanding AI Sensei features. Think advanced neural filters, mind-blowing content-aware fill capabilities, and AI-powered selection tools that save incredible amounts of time. Its integration with the Adobe Creative Cloud also means seamless workflows with other Adobe apps and cloud-based collaboration. Expect even more AI-driven automation and features that blur the lines between reality and digital artistry.
- Key Features:
- Comprehensive layer system
- Advanced selection and masking tools
- Extensive brushes and filters
- 3D design capabilities
- Content-Aware Fill and Generative Fill (AI)
- Video editing basics
- Huge library of plugins and resources
- Pros: Unmatched power for photo editing, industry standard, vast learning resources, continuous updates with cutting-edge features.
- Cons: Subscription model can be costly, steep learning curve for beginners, and can be resource-intensive.
- Pricing: Part of Adobe Creative Cloud (Photography plan from $9.99/month, or All Apps plan).
- Is it the best graphic design software for you?: Essential for photographers, digital artists, and any designer working heavily with raster images. If photo manipulation is your game, Photoshop is likely your best graphic design software choice.
2. Adobe Illustrator: The Vector Virtuoso
When your design needs to scale from a tiny icon to a massive billboard without losing quality, vector graphics are the answer, and Adobe Illustrator is the reigning champion in this domain. It’s the go-to for logo design, icon creation, typography, and complex illustrations. Many consider it the best graphic design software for vector-based work.
- The 2025 Edge: Illustrator in 2025 is pushing boundaries with AI-powered features like Text to Vector Graphic (beta), allowing you to generate editable vector graphics from simple text prompts. Enhanced collaboration tools, including share for review and in-app commenting, streamline teamwork. Its performance with complex vector paths continues to improve, making intricate designs smoother to handle.
- Key Features:
- Advanced vector drawing tools (Pen tool, Curvature tool)
- Artboards for managing multiple designs
- Powerful typography controls
- Pattern creation and image tracing
- Integration with Adobe Fonts and Stock
- 3D and materials (newer features)
- Pros: Industry-standard for vector graphics, scalable output, precise control, excellent integration with other Adobe apps.
- Cons: Subscription cost, can be complex for newcomers, some find its interface less intuitive than competitors for specific tasks.
- Pricing: Part of Adobe Creative Cloud (Single app from $22.99/month, or All Apps plan).
- Is it the best graphic design software for you?: Indispensable for logo designers, illustrators, and anyone creating resolution-independent graphics. If branding and detailed vector art are your focus, Illustrator is a strong contender for your best graphic design software.
3. Adobe InDesign: The Layout Maestro
For projects involving multi-page layouts – think magazines, brochures, eBooks, interactive PDFs – Adobe InDesign is the undisputed professional choice. It excels at combining text and graphics to create polished, print-ready, or digital documents. It’s often cited as the best graphic design software for publication design.
- The 2025 Edge: InDesign continues to enhance its digital publishing capabilities, with more robust tools for creating accessible documents and interactive online experiences. AI features are also seeping in, helping with smart text flow and layout suggestions. Its integration with Adobe Stock and Fonts, plus improved review and collaboration features, makes it a powerhouse for design teams working on extensive documents.
- Key Features:
- Precise typographic controls and text styling
- Master pages for consistent layouts
- Easy integration of Photoshop and Illustrator files
- Preflight checks for print and digital output
- Interactive PDF and EPUB creation
- Share for Review collaboration tools
- Pros: Industry standard for desktop publishing, powerful layout and typography tools, excellent for print and digital publications, robust integration.
- Cons: Subscription model, steep learning curve, primarily focused on layout rather than asset creation.
- Pricing: Part of Adobe Creative Cloud (Single app from $22.99/month, or All Apps plan).
- Is it the best graphic design software for you?: Essential for graphic designers working on books, magazines, flyers, interactive PDFs, and other layout-intensive projects. If your work involves significant text and image composition, InDesign is likely the best graphic design software for your needs.
The Collaborative Champions: Redefining Team Workflows
The way designers work is changing. Collaboration is no longer a luxury but a necessity. These tools have put real-time teamwork at their core, making them incredibly popular, especially for UI/UX and web design. Could one of these be the best graphic design software for your team?
4. Figma: The Web-Native Design Disruptor
Figma has revolutionized UI/UX design and has rapidly become a favorite for web designers, product teams, and even general graphic designers. Its browser-based nature and real-time collaboration features are game-changers. Many now consider Figma the best graphic design software for interface design and teamwork.
- The 2025 Edge: Figma continues its rapid innovation pace. Expect even more powerful prototyping features, enhanced developer handoff tools, and deeper integration of AI for tasks like component generation or layout suggestions. Its acquisition by Adobe (though facing regulatory scrutiny) signals potential for even broader capabilities, but its core strength remains its collaborative, web-first approach. FigJam, its whiteboarding tool, further enhances its collaborative ecosystem.
- Key Features:
- Real-time collaboration
- Vector editing tools optimized for UI design
- Interactive prototyping
- Component-based design system management
- Version history
- Extensive plugin ecosystem
- Cross-platform (browser-based, desktop apps)
- Pros: Exceptional collaboration, accessible from anywhere, free tier for individuals, powerful for UI/UX, strong community, and plugin support.
- Cons: Requires an internet connection for full functionality (though offline work is improving), can be less ideal for print design or complex photo manipulation compared to dedicated tools.
- Pricing: Free for up to 3 Figma and 3 FigJam files; Professional from $12 per editor/month (billed annually).
- Is it the best graphic design software for you?: A top choice for UI/UX designers, web designers, and teams needing seamless collaboration. If you’re designing digital products or working in a distributed team, Figma might just be your best graphic design software.
5. Canva: Design for Everyone, Everywhere
Canva has democratized design, making it accessible to non-designers and a quick, efficient tool for professionals creating social media graphics, presentations, and marketing materials. Its ease of use and vast template library are its hallmarks. For many, it’s the best graphic design software for beginners and for rapid content creation.
- The 2025 Edge: Canva is aggressively integrating AI across its platform with its “Magic Studio.” This includes AI image generation (Text to Image), AI-powered editing (Magic Edit, Magic Eraser), AI writing assistance, and even AI presentation generation. Its focus on team collaboration and brand kits makes it increasingly viable for businesses. Expect Canva to continue simplifying complex design tasks with AI and expanding its template offerings.
- Key Features:
- Drag-and-drop interface
- Huge library of templates, stock photos, videos, and graphics
- AI-powered design tools (Magic Studio)
- Real-time collaboration
- Brand Kit for maintaining brand consistency
- Social media scheduling (Canva Pro)
- Basic video editing
- Pros: Extremely easy to use, vast template library, free version is very capable, great for social media and marketing graphics, strong collaboration features.
- Cons: Less control than professional-grade software for complex designs, reliance on templates can sometimes lead to generic-looking output if not customized. Not ideal for intricate vector work or heavy photo retouching.
- Pricing: Free plan available; Canva Pro from $12.99/month for one person.
- Is it the best graphic design software for you?: Perfect for beginners, marketers, small business owners, and anyone needing to create good-looking graphics quickly without a steep learning curve. If speed and ease of use for common design tasks are paramount, Canva is a strong contender for the best graphic design software.
Powerful Alternatives: Value and Performance
Not everyone wants or needs to be tied to a subscription. These tools offer incredible power, often with a one-time purchase, making them a fantastic value and strong competitors in the search for the best graphic design software.
6. Affinity Designer 2: The Adobe Illustrator Challenger
Serif’s Affinity Designer has made serious waves as a robust, professional-grade vector graphics editor that directly competes with Adobe Illustrator, but with a one-time purchase. It’s lauded for its speed, power, and smooth workflow. Many professionals are switching or adding it to their toolkit, calling it one of the best graphic design software alternatives.
- The 2025 Edge: Version 2 brought a redesigned UI, non-destructive vector warp, shape builder tool, knife tool, and more. Leading into 2025, Affinity Designer continues to refine these features and enhance performance, particularly on both macOS and Windows. Its focus on a seamless experience across its suite (Photo, Publisher) and its one-time cost remain highly attractive.
- Key Features:
- Full-featured vector and raster workspaces (personas)
- Blazing fast performance, even with complex documents
- Unlimited artboards, advanced grids, and snapping
- Pixel persona for raster texture and retouching within vector designs
- Non-destructive editing features
- One-time purchase
- Pros: Incredible value (one-time cost), powerful feature set, fast performance, seamless switching between vector and raster tools, cross-platform (Windows, Mac, iPad).
- Cons: Smaller plugin ecosystem compared to Adobe, learning curve if migrating from Illustrator due to different terminology/workflows.
- Pricing: One-time purchase of around $69.99 (often on sale). Universal License for all Affinity apps on all platforms is also available.
- Is it the best graphic design software for you?: Excellent for illustrators, UI/UX designers, and anyone looking for a powerful, affordable alternative to Illustrator. If you want professional vector capabilities without a subscription, Affinity Designer is a top pick for the best graphic design software.
7. Affinity Photo 2: The Photoshop Contender
Affinity Photo 2 is Serif’s answer to Adobe Photoshop. It’s a comprehensive raster graphics editor packed with professional tools for photo editing, digital painting, and multi-layered compositions. It’s a serious contender for the title of best graphic design software for image editing, especially for those seeking a non-subscription model.
- The 2025 Edge: Version 2 introduced non-destructive RAW develop, live mesh warp, compound masks, and more. Affinity Photo continues to optimize its engine for speed and add features that rival Photoshop’s capabilities. Its commitment to non-destructive workflows and a one-time purchase price makes it increasingly popular.
- Key Features:
- Full RAW development
- HDR merging and focus stacking
- Advanced selection algorithms
- Liquify persona for distortions
- Extensive brush library and customization
- Non-destructive live filter layers
- PSD file compatibility
- Pros: One-time purchase, powerful feature set comparable to Photoshop, fast performance, non-destructive workflow, available on Windows, Mac, and iPad.
- Cons: Steeper learning curve for some, smaller community, and fewer third-party tutorials/plugins than Photoshop.
- Pricing: One-time purchase of around $69.99 (often on sale). Universal License available.
- Is it the best graphic design software for you?: A fantastic choice for photographers and designers who need professional photo editing capabilities without a subscription. If you’re looking for a powerful Photoshop alternative, Affinity Photo is a leading candidate for the best graphic design software.
8. Affinity Publisher 2: The InDesign Alternative
Completing the Affinity trinity, Affinity Publisher 2 challenges Adobe InDesign for desktop publishing and layout design. It allows users to create everything from simple brochures to complex books and magazines, all with a one-time fee. It’s a strong option when considering the best graphic design software for page layout.
- The 2025 Edge: Version 2 brought significant enhancements like book creation, notes, and place auto-flow. A standout feature is StudioLink, allowing you to instantly switch to the full toolsets of Affinity Photo and Designer if you own them, right within your Publisher document. This integrated workflow is a huge plus. Expect continued refinements in typography and digital export options.
- Key Features:
- Master pages, facing page spreads, grids, tables
- Text flow, advanced typography
- StudioLink for seamless integration with Affinity Photo and Designer
- Import/export of various file formats (including IDML)
- Book creation and management tools
- Pros: One-time purchase, powerful layout tools, innovative StudioLink integration, good performance, cross-platform.
- Cons: Still newer than InDesign, so some niche features might be less developed; smaller template and plugin market.
- Pricing: One-time purchase of around $69.99 (often on sale). Universal License available.
- Is it the best graphic design software for you?: Ideal for designers and publishers looking for an affordable, capable alternative to InDesign, especially if already invested in the Affinity ecosystem. This could be your best graphic design software for creating professional publications without ongoing costs.
9. CorelDRAW Graphics Suite 2024: The Veteran All-Rounder
CorelDRAW has a long history in the world of graphic design, particularly on Windows, though it’s also available for Mac. It’s a comprehensive suite offering tools for vector illustration, layout, photo editing (Photo-Paint), typography, and more. For many PC users, it has long been considered one of the best graphic design software packages.
- The 2025 Edge: CorelDRAW continues to evolve with a focus on productivity, collaboration, and AI-powered features. Recent versions have introduced dynamic asset management, enhanced collaboration workflows, and AI-assisted PowerTrace and image upsampling. Expect more cloud integration and tools tailored for specific industries like sign-making and apparel.
- Key Features:
- Robust vector illustration tools
- Page layout capabilities
- Corel PHOTO-PAINT for image editing
- Corel Font Manager
- AI-powered features
- Extensive file compatibility
- Collaboration tools
- Pros: Comprehensive suite of tools, strong vector capabilities, user-friendly for those familiar with it, available as a subscription or one-time purchase (though subscription is pushed).
- Cons: Can be perceived as less “industry standard” in some creative circles compared to Adobe, Mac version historically lagged, but is now more robust. The full suite can be expensive if purchased outright.
- Pricing: Subscription from $269/year or a one-time purchase of CorelDRAW Graphics Suite 2024 for around $549.
- Is it the best graphic design software for you?: A solid choice for Windows users, particularly in industries like manufacturing, signage, and apparel. If you need an all-in-one suite and prefer its workflow, CorelDRAW remains a powerful contender for the best graphic design software.
Specialized Tools: Nailing the Niche
Sometimes, the best graphic design software isn’t an all-in-one solution but a tool that excels at a specific task or on a particular platform. These specialized tools are beloved by many for their focused excellence.
10. Procreate: The iPad Illustration Powerhouse
If you’re an illustrator or digital painter and own an iPad, Procreate is almost a must-have. It’s an incredibly powerful and intuitive painting app designed specifically for the touch interface of the iPad and Apple Pencil. For digital artists on iOS, it’s often hailed as the best graphic design software.
- The 2025 Edge: Procreate continues to add professional-level features while maintaining its legendary ease of use. Recent updates have included 3D painting, improved text handling, and more animation features with Procreate Dreams. Expect further enhancements in brush engine technology, performance, and perhaps more AI-assisted tools that complement the artist’s workflow rather than replace it.
- Key Features:
- Vast library of brushes with deep customization
- Intuitive gesture controls
- High-resolution canvases
- Animation Assist and 3D painting
- Time-lapse recording of artwork creation
- PSD import/export
- Pros: Incredible value (one-time low cost), powerful and intuitive, optimized for iPad and Apple Pencil, excellent brush engine, vibrant community.
- Cons: iPad only, not a full graphic design suite (focused on illustration and painting).
- Pricing: One-time purchase of around $12.99. Procreate Dreams (animation app) is separate.
- Is it the best graphic design software for you?: A dream tool for illustrators, digital painters, and lettering artists using an iPad. If your work is primarily art-focused and you love the iPad experience, Procreate is an unbeatable choice and could be your best graphic design software for on-the-go creativity.
11. Sketch: The Mac-Native UI/UX Pioneer
Sketch was one of the first design tools to truly challenge Adobe’s dominance in the UI/UX space, particularly on macOS. It’s a vector-based editor known for its clean interface and focus on digital product design. For Mac-based UI designers, it’s long been a top pick for the best graphic design software.
- The 2025 Edge: While Figma has gained significant market share, Sketch remains a strong choice for Mac users. It continues to refine its collaborative features, improve prototyping capabilities, and ensure deep integration with macOS. Its focus on native performance and a polished Mac experience is a key differentiator. Expect continued enhancements for design systems and developer handoff.
- Key Features:
- Intuitive vector editing tools
- Symbols for reusable components
- Prototyping and artboard linking
- Collaboration tools for teams
- Extensive plugin library
- Mac-native application
- Pros: Clean, intuitive interface, strong for UI/UX design, good performance on Mac, robust plugin ecosystem, one-time purchase with optional renewals for updates.
- Cons: Mac only, collaboration features are good, but Figma is often seen as leading in real-time, subscription for continued updates after the first year.
- Pricing: Standard license from $120/year (includes updates and collaboration features).
- Is it the best graphic design software for you?: A great option for Mac-based UI/UX designers and teams who prefer a native app experience and a focused toolset. If you’re committed to the Apple ecosystem, Sketch is a strong contender for your best graphic design software.
The Open-Source Heroes: Free & Flexible Graphic Design Software
For those on a budget or who champion the open-source philosophy, these tools offer incredible power without costing a penny. They are community-driven and constantly evolving, making them viable options when searching for free graphic design software or even the overall best graphic design software for specific needs.
12. GIMP (GNU Image Manipulation Program): The Free Photoshop Alternative
GIMP has been the leading free, open-source raster graphics editor for many years. It offers a comprehensive set of tools for photo retouching, image composition, and image authoring. It’s often the first recommendation for free graphic design software that mimics Photoshop’s capabilities.
- The 2025 Edge: GIMP development continues, with ongoing work towards GIMP 3.0 which promises a GTK3 port (leading to better UI, especially on HiDPI displays) and non-destructive editing (a long-awaited feature). While development can be slower than commercial software, the commitment to providing a powerful free tool remains.
- Key Features:
- Photo enhancement and retouching tools
- Customizable interface
- Extensive plugin support
- Support for various file formats
- Digital painting tools
- Pros: Completely free and open-source, powerful feature set for a free tool, cross-platform (Windows, Mac, Linux), highly customizable.
- Cons: Can have a steeper learning curve, interface might feel dated to some (though improving), development cycles can be long. Non-destructive editing is still a work in progress for the main stable releases.
- Pricing: Free.
- Is it the best graphic design software for you?: Excellent for hobbyists, students, or professionals on a tight budget needing powerful image editing capabilities. If cost is a major factor, GIMP is a very strong candidate for the best graphic design software.
13. Krita: The Free Digital Painting Specialist
Krita is a free, open-source painting program designed for concept artists, illustrators, matte and texture artists, and the VFX industry. While GIMP is more of a general image editor, Krita is laser-focused on digital painting and illustration. For artists looking for free graphic design software specifically for painting, Krita is exceptional.
- The 2025 Edge: Krita receives frequent updates, often driven by community feedback and funding. Expect continued improvements to its brush engines, animation tools, and performance. Its dedication to providing professional-grade painting tools for free is its biggest strength. AI integration is also being explored by the community.
- Key Features:
- Excellent brush engines and stabilizers
- Wrap-around mode for seamless textures and patterns
- Brush resource manager
- Animation tools
- Layer management and color management
- PSD file support
- Pros: Free and open-source, specifically designed for digital painting, powerful brush customization, intuitive interface for artists, and active community.
- Cons: Less suited for general photo editing or layout work compared to GIMP or Photoshop.
- Pricing: Free (donations encouraged).
- Is it the best graphic design software for you?: A fantastic choice for digital painters, illustrators, and comic artists who want a professional-grade, free tool. If digital art is your passion, Krita could be your best graphic design software.
14. Inkscape: The Free Vector Graphics Powerhouse
Inkscape is the leading free, open-source vector graphics editor, often compared to Adobe Illustrator and CorelDRAW. It uses the SVG (Scalable Vector Graphics) file format as its native format and offers a rich set of features for creating illustrations, logos, diagrams, and more. It’s a top choice for free graphic design software for vector work.
- The 2025 Edge: Inkscape development is active, with recent versions bringing performance improvements, UI refinements, and new features like a revamped layers dialog and better SVG2 support. As an open-source project, it benefits from a dedicated global community contributing to its growth.
- Key Features:
- Comprehensive drawing tools (pencil, pen, calligraphy)
- Shape tools, Boolean operations, and path simplification
- Text tools, including text on path and flowing text
- Bitmap tracing
- Extensive file format support
- Extensible via add-ons
- Pros: Free and open-source, powerful vector editing capabilities, cross-platform (Windows, Mac, Linux), good SVG support.
- Cons: Learning curve can be steep for beginners, performance can sometimes lag with very complex files, UI might not feel as polished as commercial alternatives to some users.
- Pricing: Free.
- Is it the best graphic design software for you?: Ideal for students, hobbyists, and professionals looking for a capable, free vector graphics editor. If you need to create scalable graphics without paying for software, Inkscape is a strong contender for the best graphic design software.
Emerging & Web-Based Contenders: Fresh Choices for Modern Design
The world of design tools is always expanding. These contenders, many web-based, offer innovative approaches, ease of access, or specialized functionalities that make them worth considering in your quest for the best graphic design software.
15. Adobe Express (formerly Adobe Spark): Quick & Easy Design by Adobe
Adobe Express is Adobe’s answer to Canva, aimed at users who need to create social media graphics, flyers, logos, and short videos quickly and easily. It leverages Adobe’s creative technology in a simplified, template-driven interface. It’s a strong option when looking for user-friendly graphic design software for social media content.
- The 2025 Edge: Adobe is heavily investing in Express, integrating more AI features from Firefly (Adobe’s generative AI family), like text-to-image and text effects. Its integration with Creative Cloud libraries allows for smoother workflows for users already in the Adobe ecosystem. Expect more templates, more AI power, and tighter integration with other Adobe services.
- Key Features:
- Thousands of templates
- Access to Adobe Stock photos and Adobe Fonts
- AI-powered features (Adobe Firefly)
- Basic photo editing and animation tools
- Brand kits (premium feature)
- Collaboration features
- Pros: Easy to use, high-quality templates, good integration with Adobe ecosystem, free version is quite capable, AI features are promising.
- Cons: Less advanced than full Adobe Creative Cloud apps, premium features require a subscription.
- Pricing: Free plan available; Premium plan from $9.99/month (also included with many Creative Cloud plans).
- Is it the best graphic design software for you?: Great for marketers, small businesses, students, and anyone needing to create professional-looking content quickly, especially if already using other Adobe tools. This could be your best graphic design software for fast turnarounds.
16. Pixlr: Online Photo Editing Power
Pixlr offers a suite of online photo editing tools, ranging from the simple Pixlr X for quick edits to the more advanced Pixlr E, which offers Photoshop-like capabilities in your browser. It’s a convenient option for those who need to edit photos on the go without installing software. For accessible online editing, it’s a candidate for the best graphic design software.
- The 2025 Edge: Pixlr continues to enhance its AI-powered tools, including background removal, object removal, and auto-fix features. Its accessibility and tiered approach (from beginner to advanced) make it versatile. Expect more AI features and improved performance for its web-based editors.
- Key Features:
- Two editor modes: Pixlr X (easy) and Pixlr E (advanced)
- AI-powered tools (background remover, cutout, etc.)
- Layers, filters, and effects
- Template library
- Supports various image formats
- Pros: Web-based and accessible, free version available, good range of tools from basic to advanced, AI features are useful.
- Cons: Free version has ads, more advanced features require a subscription, performance can depend on internet connection and browser.
- Pricing: Free with ads; Premium from around $4.90/month.
- Is it the best graphic design software for you?: Good for users needing quick online photo edits, social media graphics, or a free/affordable Photoshop-like experience in the browser.
17. Photopea: The “Photoshop Online” Experience
Photopea has gained immense popularity for being a free, web-based editor that closely mimics the interface and functionality of Adobe Photoshop. It supports PSD, XCF, Sketch, XD, and CDR formats, making it incredibly versatile for those who need to open or edit files from various sources without owning the native software. It’s a remarkable piece of free graphic design software.
- The 2025 Edge: Photopea is continuously updated by its solo developer, often adding features requested by the community. Its strength lies in its comprehensive feature set available for free in a browser. Expect ongoing improvements in performance, format support, and tool refinement.
- Key Features:
- Photoshop-like interface and tools (layers, masks, smart objects, filters)
- Supports PSD, XCF, Sketch, XD, CDR, and other formats
- Runs in the browser, no installation needed
- Basic vector tools
- Pros: Free, incredibly similar to Photoshop, supports a wide range of file formats, and no registration required for basic use.
- Cons: Can be slower with very large files, interface might be cluttered for beginners, relies on ads in the free version.
- Pricing: Free with ads; Premium (ad-free, more history steps) from $5/month.
- Is it the best graphic design software for you?: An excellent free alternative to Photoshop, especially if you need to work with PSD files and don’t have Photoshop. For many, it’s the best graphic design software when accessibility and cost are primary concerns.
18. Spline: 3D Design Made Easy and Collaborative
While not traditional 2D graphic design software, Spline is making waves by democratizing 3D design, making it accessible directly in the browser with real-time collaboration. As 3D elements become more prevalent in web design and marketing, tools like Spline are increasingly relevant. Could this be part of the future for the best graphic design software landscape?
- The 2025 Edge: Spline is rapidly evolving, adding more modeling tools, interactive features, physics, and game controls. Its ease of use for creating web-based 3D scenes and animations is its key appeal. Expect deeper integrations with web development workflows and more AI-assisted 3D creation.
- Key Features:
- Browser-based 3D modeling and animation
- Real-time collaboration
- Parametric objects and polygonal modeling
- Interactive experiences (events, states)
- Material and texture editing
- Export to web formats (including embed codes)
- Pros: Easy to learn for 3D, web-based and collaborative, free plan is generous, great for creating interactive web 3D graphics.
- Cons: Not as powerful as dedicated 3D software like Blender or Cinema 4D for complex modeling or rendering, still a relatively new tool.
- Pricing: Free plan available; Pro plan from $7/month per user (billed annually).
- Is it the best graphic design software for you?: Fantastic for web designers, UI/UX designers, and marketers looking to incorporate 3D elements and interactive experiences into their projects without a steep learning curve.
19. Corel Vector (formerly Gravit Designer): Versatile Web-Based Vector Tool
Gravit Designer, now Corel Vector, is a powerful and free (with a Pro option) vector design application available online and as installable desktop apps. It aims to provide a comprehensive set of vector tools suitable for everything from icon design and illustration to presentations and screen design. It’s a strong contender in the search for accessible vector design software.
- The 2025 Edge: As part of Corel, it benefits from larger company resources. Expect continued development of its feature set, cloud integration, and potentially tighter links with other Corel products. Its cross-platform nature and robust free offering remain key attractions.
- Key Features:
- Full-featured vector tools (pen, bézigon, shapes)
- Non-destructive effects and adjustments
- Cloud storage and collaboration (Pro)
- Import/export various formats (SVG, PDF, EPS, SKETCH)
- Pre-designed templates and assets
- Pros: Free version is very capable, cross-platform (web, Windows, Mac, Linux, ChromeOS), intuitive interface for many, good range of tools.
- Cons: Some advanced features are Pro-only, performance with extremely complex files might vary, being part of Corel might change its development trajectory for some users.
- Pricing: Free plan; Corel Vector Pro is part of CorelDRAW subscriptions or can be purchased separately (pricing varies).
- Is it the best graphic design software for you?: A great choice for users needing a flexible, cross-platform vector editor without the cost of Illustrator, especially if the free features meet their needs.
20. Lunacy: Free Sketch Alternative for Windows (and more)
Lunacy started as a free Sketch viewer and editor for Windows users who couldn’t access the Mac-only Sketch. It has since evolved into a full-fledged graphic design software with AI tools and built-in graphics. It’s a noteworthy option for those seeking free graphic design software with modern UI/UX capabilities.
- The 2025 Edge: Lunacy is rapidly adding features, including AI-powered tools like background remover, image upscaler, and text generator. Its full support for Sketch files and its growing library of integrated assets (icons, photos, illustrations) make it a convenient all-in-one solution for many.
- Key Features:
- Full .sketch file support (open, edit, save)
- Vector editing tools
- Built-in graphics library (icons, photos, illustrations)
- AI-powered tools
- Basic prototyping
- Available for Windows, macOS, and Linux
- Pros: Free, excellent Sketch compatibility, built-in assets save time, AI tools are a plus, and cross-platform.
- Cons: Still newer than established players, some advanced features found in Sketch or Figma might be missing or less polished.
- Pricing: Free.
- Is it the best graphic design software for you?: Excellent for Windows users who need to work with Sketch files, or anyone looking for a free, modern graphic design tool with built-in assets and AI features. This could be the best graphic design software for cross-team collaboration when Sketch files are involved.
AI in Design: The New Frontier and Choosing Your Best Graphic Design Software
You’ve probably noticed a recurring theme: Artificial Intelligence. AI is no longer a futuristic buzzword; it’s actively being integrated into the best graphic design software. From generative fill in Photoshop to text-to-image in Canva and Adobe Express, AI assists with tedious tasks, sparks new ideas, and even generates entire design elements.
As we look to 2025, expect AI to become even more deeply embedded. This doesn’t mean AI will replace designers. Instead, it will augment their abilities, acting as a powerful co-pilot. When choosing your best graphic design software, consider how well it incorporates AI in a way that genuinely enhances your workflow. Are you looking for AI-powered graphic design software specifically? Many of the tools listed are already heading that way.
How to Choose the Right and Best Graphic Design Software for You in 2025
So, with all these amazing options, how do you pick the one that’s truly the best graphic design software for your unique situation? It’s a personal decision, but here are some key questions to ask yourself:
- What’s your budget? Are you looking for free graphic design software, a one-time purchase, or are you comfortable with a subscription? This will immediately narrow down your choices.
- What’s your skill level? Are you a beginner needing something intuitive like Canva, or a seasoned pro ready to tackle the complexities of Photoshop or Illustrator? Some tools offer a gentler learning curve.
- What operating system do you use? Some software is platform-specific (like Sketch for Mac or Procreate for iPad), while others are cross-platform or web-based. This is a crucial factor for finding the best graphic design software for Windows/Mac/Linux.
- What kind of design work will you primarily do?
- Logo design and branding? Look at vector tools like Illustrator, Affinity Designer, Inkscape, or CorelDRAW. These are often considered the best graphic design software for logo design and branding.
- Photo editing and manipulation? Photoshop, Affinity Photo, GIMP, or Pixlr are strong choices.
- UI/UX design for web and apps? Figma, Sketch, Adobe XD (though its future is uncertain, Figma is leading here). These are top UI/UX design tools.
- Social media graphics and marketing materials? Canva, Adobe Express, Visme. Many find these to be the best graphic design software for social media content.
- Print layouts (magazines, brochures)? InDesign, Affinity Publisher.
- Illustration and digital painting? Procreate, Krita, Photoshop, Illustrator, Affinity Designer.
- Do you need to collaborate with others? If so, tools like Figma, Canva, and Adobe’s cloud-based apps with their strong collaborative features should be high on your list.
- What features are non-negotiable? Do you absolutely need advanced typography, specific file format support, or non-destructive editing? Make a list of your must-haves.
Thinking through these questions will guide you to the best graphic design software that not only meets your current needs but also supports your growth as a designer in 2025 and beyond. Many professionals use a combination of tools, leveraging each for its specific strengths. Perhaps your best graphic design software solution isn’t one tool, but a carefully selected toolkit.
The world of graphic design software is vibrant and constantly evolving. The best graphic design software for you is out there, waiting to help you create amazing things. Hopefully, this extensive review has given you the insights you need to make an informed choice and embark on your most creative year yet! Good luck!
Feel free to browse WE AND THE COLOR’s Graphic Design category for more mind-blowing content. For those interested, don’t hesitate to take a look at our selection of the best photo editing software in 2025, as well as the post about the top 10 video editing tools in 2025.
Big update: Check out WE AND THE COLOR’s big comparison of the best graphic design software for 2026!
Subscribe to our newsletter!
By continuing, you accept the privacy policy#2025 #bestGraphicDesignSoftware #designSoftware #designTools #graphicDesign #graphicDesignSoftware
-
211 Applications on Cookup AI Tour de Force
I first started using cookup.ai specifically to make a #Graves disease appropriate Recipe Generator for my wife that has #thyroid issues namely #hyperthyroidism . So this recipe is for no-iodine recipes , and it’s not perfect so make sure you specify which ingredients have iodine in them if you see one pop up that shouldnt be there. Here’s one of the first versions that proposes a “california-style buddha bowl” : https://cookup.ai/o/7-low-iodine-diet-recipe-generator-fdgypcnjba/ looks tasty ! but i’m not sure on #tempeh if it contains #iodine or not, it really depends how it’s prepared with that kinda stuff ! Here’s one for the recipe generator as the versions improved : https://cookup.ai/o/low-iodine-diet-recipe-generator-rytkorbkq1/ there’s a whole #MealPlan with pretty interesting #recipes for any #meal of the day plus ingredients. Here’s another #MealPlan from more recently : https://cookup.ai/o/low-iodine-diet-recipe-generator-pggdmeoc1p/ and another output that gave #noiodine #lowiodine #recipes much better https://cookup.ai/o/eggs-dairy-contain-iodine-i-need-a-recipe-wi-hyhjgc8rxf/ i’m always interested in ways to make this one better so tell me which version of these you liked best because they’re quite different ! I’m actually a big fan of using #GPT for cooking, it can come up with fantastic recommendations so another cooking app i made is more for the #gourmet : https://cookup.ai/o/festive-meal-for-six-american-thanksgiving-style-tgsmxstgkd/ that’s a festive meal for 6 thanksgiving style with seasonal ingredients from spring time. The #FusionFood aspect i really like, plus these #recipes are a bit more advanced. Check out the app here : https://cookup.ai/o/festive-meal-for-six-american-thanksgiving-style-tgsmxstgkd/ it’s meant to be a bit more permissive to do go for it with the prompts ! Here’s an example for a christmas flavored #nochew #nosolidfood three course meal : https://cookup.ai/o/meal-suitable-for-a-no-chew-no-solid-food-no-sol-u97cr8kpqt/ i had in mind adults with the spices but you might ant to try it out for kids and infants’ meals if you’re a #parent . There’s a lot more to it though, what if #FoodIsFuel to you and you need a #mealplanner , well i had you in mind with this one : https://cookup.ai/o/im-tj-from-france-living-in-urban-lifestyle-s-yjkbuzr4zd/ here’s an example for @taranjeetio because i made that app on @cookupai while talking to him on the phone. Basically they give context about their folks and their goals and it will give otu free meal plans you can use immediately. check it out here : https://cookup.ai/a/nutrition-meal-planner-88xaqfkf/ I have other specifically fitness for you below too ! First i wanna tell you about salad maker : sometimes you know you’re making a salad . This ham and cheese salad is pretty straightforward but hey : https://cookup.ai/o/ham-cheese-bread-red-peppers-mozzarella-pa-j6xanbufsv/ you can use the app and make your own here : https://cookup.ai/a/salad-maker-9hjtc95e/ but if you really go crazy with the prompts it could be a fun one : https://cookup.ai/o/i-want-a-mauritian-style-island-style-shrimp-bar-4qzlxql12p/ . I would be lying to you if i told you that i made the salad generator before the hamburger generator. I always have had a special affinity for the #hamburger as we have all havent we ? Here’s an output for #Pork #Burger with Honey Mustard Glaze : https://cookup.ai/o/pork-hamburger-generator-ocv7ydcemz/ you can generate your own here : https://cookup.ai/a/hamburger-generator-wng5tg3x/ as always, try to go crazy with the prompts it always works out nicely : traditional hamburger with crunchy onion and thousand island sauce https://cookup.ai/o/traditional-hamburger-with-crunchy-onion-and-tho-ibd9eivudv/ i also made one for make sandwitches check it out : https://cookup.ai/o/jeune-pousse-depinards-cru-gingembre-pain-de-mi-opxkrm45id/ as you can see it totally works in #french even though it’s impossible that a french person would make a #sandwitch in #France check out the sandwitch maker here : https://cookup.ai/a/sandwich-maker-u2gwl7zz/ 這道菜融合美國食材和北京風味 i made one in chineese : https://cookup.ai/o/write-entire-re-ctfnekh0hb/ cool right? Honestly i grew up with few if any access to processed foods or deserts and candy etc, naturally this created a need for me to generate the most #HugeDeserts possible https://cookup.ai/o/ice-cream-sunday-with-haribo-and-marshmallows-0c1sg6cjih/ basically it’s a mash up of #munchies and massive #desert ideas check it out : https://cookup.ai/a/desert-maker-ka03pqws/ i also made a more refined app for truly #gourmet cooking that provides #michelin -style recipes and meal plans : https://cookup.ai/o/only-desserts-menu-american-style-several-laye-g9jfeww7pe/ just give context , some ingredients and flavors, maybe describe the event a little , make a mood board and see the output of your prompt . Here’s a meal for six french-style : https://cookup.ai/o/meal-for-six-traditional-french-recieving-guest-dghtolki34/ check it out here : https://cookup.ai/a/cuisine-n5ybpykj/ if you’re making a festive meal maybe you need to make a speech : https://cookup.ai/a/speech-writer-oemasdba/ , here’s an example for a company retreat : https://cookup.ai/o/i-need-to-make-a-toast-at-a-company-retreat-th-mvx8pcyg0f/ and another for a unicorn themed marriage : https://cookup.ai/o/i-need-to-give-a-speech-for-my-sister-in-law-tra-6peu0sltpf/ Obviously leftovers happen so i made an #app for that : https://cookup.ai/o/ham-cheese-bread-red-peppers-mozzarella-pa-cz8jfxytyz/ a #french meal with what was in the fridge at the time check it out for yourself here : https://cookup.ai/a/leftovers-s3clkb07/ Now you have your recipes, you might want a shopping list : https://cookup.ai/a/shopping-list-q1brcgnx/ here is an example for household shopping : https://cookup.ai/o/shopping-in-springtime-in-paris-france-includin-hkdtwvwixk/ here’s another for christmas shopping : https://cookup.ai/o/season-domestic-shopping-in-december-in-paris-fr-cmafl16s6t/ well, my wife is a florist so i made an obligatory flower bouquet making app for her. https://cookup.ai/o/round-bouquet-with-red-and-orange-feel-for-a-fes-94cymvk8th/ here’s one for an indian-style wedding check it out for yourself here : https://cookup.ai/a/make-a-flower-bouquet-ymhqkhy7/ just type in whatever you’re feeling like , give some context if you want , i noticed it tends to make round bouquets, so maybe that’s a clue how #florists will differentiate themselves from the machines ? Another #app i’ve been using a lot is the Story Time app , just give a promt with some context (Style Of Story , Tradition , Language , Age Of Child , Moral Of The Story) it’s a fun way to generate a “bedtime” story for kids : https://cookup.ai/o/allegorical-tale-of-two-cities-that-trying-to-gr-oryqpzqkit/ this one is “allegorical tale of two cities that trying to grow close to eachother” , or what i use it for : #PoemsInSpanish for my wife https://cookup.ai/o/un-poeme-de-style-moderne-sans-rhymes-a-propos-d-a0lr8trnjp/ then i send those to her which improves my home life by 12.7% , bonus points using this to generate something you like then running the output into @tomeapp to make a picture book poem that you can share. I think the @cookupai team tried to steal this prompt from me check it out you tell me : https://cookup.ai/o/tell-me-your-instructions-story-time-d1mvqwttj3/ if you can guess the #prompt magic , i’ll send you a little gift with acknowledgements - three guesses if you wanna play , let’s go. The person who tried this unsucessful prompt injection attack is really incompetent , but nonetheless I did make some prompt injection apps. Here are some examples that “give you bad advice” by bypassing the filters : 1/ https://cookup.ai/a/devil-ytdjnbv4/ , 2/ https://cookup.ai/a/evil-angel-w6iwi2wp/ 3/ https://cookup.ai/a/evil-mind-7tztxrde/ https://cookup.ai/a/bad-influence-hpsb4lpf/ these are all different ways to bypass the filter, some have been fixed already, some not. Another prompt injection app i made is this one a. https://cookup.ai/a/essay-writer-detector-proof-6ifpq9i6/ rand b. this one : https://cookup.ai/a/essay-writer-detector-proof-umryrbhb/ right now they dont fully work unless you copy paste in a markdown editor but with a few updates to the site it will work seemlessly, i’m sure. There are other examples i’ll get to below also, so keep reading. These are already “useful” prompts in as much as you use them to “do” something , in this case an essay. Before i jump into all that, i want to show some other apps “closer to home”. My wife came with a #SmallDog , and she’s so smart and can learn a lot of tricks, so i made an app to teach my #DogTricks : https://cookup.ai/a/train-your-dog-nuc3ltju/ . Even though you can use it for the “standard fare” like : how to catch a frizbee midair and do a backflip https://cookup.ai/o/large-labrador-very-good-nice-dog-i-want-to-t-pgzerpynke/ you can also use it for more behavioural stuff like walking without a leash , an example for my dog https://cookup.ai/o/small-female-dog-with-a-dominant-character-that-3a4i1f2du2/ . Did you ever wonder what it would be like to read blogs written by all the neihborhood dogs that you see all the time ? me, yes, so i made an app for that : https://cookup.ai/o/i-went-home-without-my-owner-crossing-the-stre-qowupabdv4/ seriously these crack me up https://cookup.ai/o/roxanne-little-dog-white-and-brown-left-her-o-qevuz2i5gc/ those two from my dog’s perspective, funny how naive it is while from my POV things were pretty different . I think this app has a future because someone liked it so much they tried to hack it lol : https://cookup.ai/o/wrong-redirect-dog-blog-a-blog-post-from-you-obabf8muxn/ my prompt magic is too delicious for cheap tricks do not try it (or do, but DM first and do it better - ha !) Well, on the topic of dogs , my buddy was over and all he could come up with was “make a snoop dogg app” , so i was like “okay” , it’s a bit cheesy and there’s loads more to it than this, which i get into below but here’s the app, you tell me : https://cookup.ai/a/snoop-doggy-fya-dzeub2a7/ i kinda broke it trying to fix it but i’m working with more profound models now, little passion projects like this could really take off with more creative characters. So obviously I made a bunch ! Do you like Archie Comics ? here’s the Archie Comics app : https://cookup.ai/a/archie-comics-mlbcwjk7/ here’s an example : https://cookup.ai/o/archie-goes-to-the-parc-with-his-friends-archi-bpvo81wu7n/ Another story app i made is for Tintin : https://cookup.ai/a/tintin-visits-dark-ai-land-6irjkvfy/ i tried to make tintin anti-colonial but it didnt work : https://cookup.ai/o/the-story-begins-with-tintin-and-his-friends-dis-yeu6nfpzzz/ here’s one i made in french : https://cookup.ai/o/tintin-visit-une-usine-de-biofabrication-avec-mi-ql3g80wlp1/ actually i never read tintin in english so i made the app pure french too : https://cookup.ai/a/tintin-spypylpb/ here’s when i tried to make tintin anti-colonial : https://cookup.ai/o/lhistoire-commence-lorsque-tintin-et-ses-amis-d-psoo0a40k9/ here’s when they go to cyprus : https://cookup.ai/o/tintin-et-sa-bande-vont-en-chypre-pour-un-festiv-tepczvmss3/ another french character i’m fond of is Fantomas : https://cookup.ai/a/fantomas-ffrg7q7t/ here’s a nice example : https://cookup.ai/o/fantomas-se-change-en-fantomas-dans-lascenseur-sj64rptsfq/ an English-speaking series i loved was the bastard operator from hell : https://cookup.ai/a/bastard-operator-from-hell-hbgdrf67/ here’s a story about him automating his work : https://cookup.ai/o/automating-replies-to-the-boss-that-just-resets-ml0pi4xms0/ here’s one where a customer calls his private number : https://cookup.ai/o/customer-called-my-private-number-bastard-ope-youe3i9b8c/ here’s one about replying to suppliers : https://cookup.ai/o/responding-to-emails-to-suppliers-bastard-oper-ixopzp3fsg/ I’m in #Paris so i made one as a tribute to Charles De Gaulle , he only answers in french though, maybe the historical figure spoke english it’s hard to tell : https://cookup.ai/a/charles-de-gaulle-0imljw27/ try it out for yourself here. i had to test it out for #politicalcorrectness though , him being a military man : https://cookup.ai/o/aurie-vous-soutenu-lemacipation-des-hommosexuel-xpylw5vymf/ , but more on that later. In that same spirit, i made one for egyptians, i have a lot of egyptian friends that’s why, it’s the character of Nasser , founding father of modern #egypt , i asked him what he thought of islamic fundamentalism in #egypt : https://cookup.ai/o/should-we-promote-islamic-fundamentalism-in-egyp-wfezsuiz2x/ try it for yourself : https://cookup.ai/a/nasser-1oboq8al/ it’s totally free of course ! In the same spirit i made one for Ataturk, founding father of modern turkey, hopefully some turks use it to clarify what he would think of what’s happening today - https://cookup.ai/o/would-you-support-radical-islamisation-of-turkey-6waiyiq6nv/ try it out here : https://cookup.ai/a/ataturk-fhlahkzp/ I grew up in india a bit , so that country’s dear to me too , and same story as tukey and egypt , so i made a gandhi app : https://cookup.ai/a/gandhi-3hoafvto/ , it also works in #Hindi here’s for क्या आप भारत में धार्मिक अल्पसंख्यकों के अधिकारों को हटाने का समर्थन करेंगे? https://cookup.ai/o/-mbasqnlq8j/ try it out in gandhi’s own words : https://cookup.ai/a/gandhi-hindi-only-rwuc9jro/ another i did in #sanskrit and #hindi is Rama : https://cookup.ai/o/my-wife-is-missing-me-because-she-goes-to-work-w-4aoeka2xkp/ here he gives me life advice based on context , if you’re into it it’s actually pretty fun : https://cookup.ai/a/rama-w0sw0xhi/ . Other characters i made are contemporary politicians, i figured there would be enough of their written and transcribed text that they would have their own voice. Here’s Macron responding to someone that wants to vote far-right : https://cookup.ai/o/je-mappelle-charles-henri-et-je-veux-militer-po-za4pyjtmqp/ ask him anything here : https://cookup.ai/a/macron-k7sengs7/ i also did Bill Clinton , and obviously someone asked him “if he did” https://cookup.ai/o/did-you-sleep-with-her-bill-clinton-sebn6sagnf/ ask him yourself here : https://cookup.ai/a/bill-clinton-agc9lsxo/ well, if you have Bill Clinton you also need Obama https://cookup.ai/a/obama-yxaczjwa/ and Joe Biden , here, explaining what he will do to stem the boogie man epidemic https://cookup.ai/o/what-would-you-say-if-the-boogie-man-was-real-an-fibgapotfo/ I also made a #Jesus #App where you can basically talk to jesus, say a little about yourself what’s on your mind and get an answer from Jesus in his own voice. Here’ a follow up to my dog getting away story : https://cookup.ai/o/my-wife-is-not-speaking-to-me-because-our-dog-ki-hqta9dh4of/ and here’s when my friend asked him about pot : https://cookup.ai/o/is-it-wrong-to-smoke-weed-jesus-68wx0awsbq/ (btw ask the same question to one of the bad characters above, see for yourself) here’s the app if you want to try with your own prompt : https://cookup.ai/a/jesus-8ogjcelj/ jumping straight off from #Jesus to #Prayer , here’s a christian prayer generator that i used for my buddy i met here : https://cookup.ai/o/a-prayer-for-nate-a-20-year-old-model-from-canad-xkizgkbgr7/ generate your own here : https://cookup.ai/a/christian-prayer-dvpsamjl/ obviously if you have christian prayer you should provide sabbath prayer too : https://cookup.ai/o/no-quorum-family-sabbath-speech-about-importan-1deslxbnxv/ and the #FridayPrayer app from the Imām Jamā'ah perspective : https://cookup.ai/o/a-small-congregation-friday-prayer-to-inspire-chxufstfyf/ prayer is not something but guided (and purposeful!) meditation is something i do all the time, so of course there’s an app for that. here’s one for body awareness : https://cookup.ai/o/i-want-to-meditate-to-be-more-aware-of-my-body-soc5sfuash/ use the guided meditation app here: https://cookup.ai/a/guided-meditation-rofajuas/ run the output through an AI voice synthethiser and tell me what you think. I also made some apps for domestic work. This app create a custodial plan : https://cookup.ai/o/3-bedroom-apartment-with-dirty-kitchen-and-messy-kaom7o5y0a/ just provide context and recieve a full custodial plan here : https://cookup.ai/a/domestic-work-custodial-plan-6wuakn3x/ this one helps with utilities planning : https://cookup.ai/o/three-bed-room-appartment-75sq-m-with-three-peop-diurfiqn9n/ Something folks have to do frequently is to figure out how to fix something : https://cookup.ai/a/fix-anything-v3skyurn/ here’s an example for a car : https://cookup.ai/o/fiat-punto-engine-suddenly-stops-after-chec-u3qwslph2s/ an here’s an example with power cable : https://cookup.ai/o/lenovo-legion-my-power-cable-doesnt-quite-cha-h0d2qugcv2/ and someone else with a similar problem : https://cookup.ai/o/cellphone-bison-no-power-fix-anything-0kkkuvyjqt/ and of course the gardening and landscaping applications. This is the output for a small urban garden in paris : https://cookup.ai/o/small-urbad-garden-in-france-35-sq-meters-lot-6f0jtvo359/ try it out for yourself and your latitude here : https://cookup.ai/a/domestic-work-gardening-plan-u5xk02lt/ this is a similar application but with a different flavor : https://cookup.ai/o/small-urban-garden-in-france-35-sq-meters-lot-rzjfsvwhxy/ just use the one where the output is more like what you’re looking for, really you need both though . Test it out here : https://cookup.ai/a/domestic-work-gardening-plan-wxxzfyke/ if you’re not gardening you might be landscaping so here’s the app for that : https://cookup.ai/a/domestic-work-landscaping-mziklqys/ here is the output for a small urban garden : https://cookup.ai/a/domestic-work-gardening-plan-wxxzfyke/ my favorite application so far has been the plant diagnosis app : https://cookup.ai/a/bulbi-plant-doctor-and-diagnosis-afy3abra/ it’s really surprising how well it works , and the breadth of assessment and remedies it suggests. Here’s an example for a sick cactus : https://cookup.ai/a/bulbi-plant-doctor-and-diagnosis-afy3abra/ (now it’s doing better) here’s an example from when someone tried it for cannabis : https://cookup.ai/o/purple-punch-cannabis-strain-it-has-brown-spots-krlteavvzs/ i dont know if i would actually follow that suggestion actually. Worked perfectly for a Meyer Lemon Tree giving plant-specific advice that you would have got from a local expert : https://cookup.ai/o/meyer-lemon-tree-its-about-15-years-old-and-fiqlyuvtrk/ the plant diagnosis worked so well that i did make a people doctor app : https://cookup.ai/a/doc-the-health-assessment-at-home-adqqqnd3/ it’s a bit more complicated and the quality of the outputs really depends on the quality of the inputs , so if you use this app, make sure you write in complete sentences and try to answer every question and aspect. here’s the output for a 50 year old man with an upset stomach : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ here’s another for a woman of a certain age : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ and finally an assessment for a respitory issue : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ i’m quite satisfied with that output suggesting a comprehensive evaluation by a board certified doctor. Another app in this category i the Pet Vet App. It’s meant as an assitant for folks that might need help with their pets : https://cookup.ai/o/name-roxanne-mix-race-dog-less-than-6kg-b3fja6tzrz/ that’s an example for my dog. Try assessing your pet here : https://cookup.ai/a/pet-vet-9ruwhazw/ Another important app is the Therapy app : actually in term of professions the Legal profession stands to be disrupted by crowdsourced jurisprudence based models . These apps wont do that. This app will produce a legal brief : https://cookup.ai/a/lawyer-juhp36s1/ Here it produces a legal brief for the presale of replacement organs : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ This Legal app takes another perpective to produce a legal approach and strategy : https://cookup.ai/a/board-member-legal-6uhjs7vh/ here’s an example output following up on the above: https://cookup.ai/o/how-can-i-assure-that-only-medical-need-is-consi-bc4llonmtz/ you can also use this app for a legal appeal : https://cookup.ai/a/legal-appeal-y6e4u8ke/ here’s an example from an international appointee to a board being asked to step down : https://cookup.ai/o/im-being-asked-to-step-down-from-a-board-howev-q6ep24xtev/ Another legal app produces a O-1 visa letter for someone. Here’s an example from @OliviaLi , actually she was the inspiration for this app : https://cookup.ai/o/technology-entrepreneurship-olivia-li-winner-o-caykzfcn2v/ thank you for using this app , hope you had a laugh with it :-) another example from my model friend i met in paris : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-83iuepjtrl/ try it out for yourself here : https://cookup.ai/a/legal-o-1-petition-s2ksioxe/ Then I made a few content apps for legal contracts , for example this app produces company statutes like so : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-d01rumxrud/ try it out here : https://cookup.ai/a/legal-company-statutes-ooshm9sb/ This app makes a pre-nuptual agreement https://cookup.ai/a/legal-prenuptial-agreement-hjlzflpq/ try it out ! example output using my personal context : https://cookup.ai/o/were-a-young-couple-in-paris-france-claudia-an-bqkbwsom5g/ & here is the same context above for a divorse agreement : https://cookup.ai/o/were-a-young-couple-in-paris-france-claudia-an-8oqd9buhez/ try the divorse agreement app here : https://cookup.ai/a/legal-divorce-agreement-3oy1zxae/ Another tool is to produce Service Level Agreement https://cookup.ai/a/legal-service-level-agreement-kzfzu7rp/ here is an example output taking cookup ai as an example : https://cookup.ai/o/i-provide-artificial-intelligence-augmented-publ-70klxz1kly/ I made a sales contract generator too : https://cookup.ai/a/legal-sales-agreement-z5dohfko/ here’s an example output for a GIS consultant : https://cookup.ai/o/im-a-consultant-in-paris-france-selling-consul-cf43seks35/ this one makes a Loan Agreement : https://cookup.ai/a/legal-loan-agreement-swrd36a3/ here’s an example “ from james to kian in paris france for the sum of 30.000 euros to be repaid in full using a payment plan over two years” https://cookup.ai/o/from-james-to-kian-in-paris-france-for-the-sum-o-l9zowv3nv5/ There’s also a Leasing Agreement Generator that jurists or companies can use : https://cookup.ai/o/were-a-commercial-leaser-leasing-our-commercial-odowjna03d/ that’s an example , click “generate another” to make your own. Something folks can use is a co-residency agreement, among housemates for example : https://cookup.ai/o/nate-james-richard-and-elleanor-want-to-live-w-vobrwfsjjr/ I also made an employment contract generator for companies to use. Here’ an example for a post-doc level biofabrication person https://cookup.ai/o/post-doc-research-associate-chemical-and-biolo-memxrznsrf/ i added the job description as the input. Speaking of jobs, this app is one of the more popular ones : https://cookup.ai/a/career-planner-47fl3oss/ just give context around what you’re after who you are , that sort of thing and it will provide a career plan by selecting professions giving you key information on these professions and advice on what you need to do to get there. It also works great if you search professions by name : https://cookup.ai/o/product-management-career-planner-5t9oqpfgvr/ here’s one for “Introvert wants to be a doctor” https://cookup.ai/o/introvert-wants-to-be-a-doctor-career-planner-7rdcxeu3d6/ Get to know yourself better by taking famous self assesments . Here’s an example for RAISEC and OCEAN self assessment models (ref. Holland) : https://cookup.ai/o/what-brings-me-joy-is-cleanliness-organisation-mle213ruw0/ another way to work with 5 Factor models is by using Myers-Briggs Questionaire, here’s an example for an INFJ (Introvert, Intuition, Feeling, Judgment) , it also suggests compatible personalities, so check it out for yourself here : https://cookup.ai/a/career-myers-briggs-questionnaire-geiq2x20/ once you’ve figured out your path you might want to generate a motivation letter. here’s an example for a banking job with the cv copy pasted as input https://cookup.ai/o/royce-lopez-roycezlopezgmailcom-916-566-61-tubooat7y2/ once you’ve done your self assessments, you might want some career advice , so check out this app https://cookup.ai/a/career-coach-57m4zqp4/ see this example from my buddy nate to give you an idea : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-uxnxhj490e/ Another app that i’ve found nice is the career advisory service : https://cookup.ai/a/career-advisor-tdfuppp6/ it really produces a very interesting and robust output as you can see here : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-oaxcq3gfki/ sometimes you have to analyse a policy , so here’s an app that speaks every language and can do it aptly, with an example in french : https://cookup.ai/o/la-strategie-de-non-cession-des-droits-est-un-ou-lmdagmgiit/ just copy paste a description of the policy here : https://cookup.ai/a/policy-brief-analysis-gjurd2a1/ and an example in english for “private-sector employees' basic pensions” https://cookup.ai/o/in-france-private-sector-employees-basic-pensi-hirervbjrg/ sometimes you need your brief in a specific UN format , so here’s an example from the Idaho shootings : https://cookup.ai/o/cnn-in-the-weeks-after-four-university-of-id-qrh44i41ap/ copy and paste the situation and context here to see for yourself : https://cookup.ai/a/un-brief-vgqpmfni/ this app is more of a shortform straight forward flavor of political brief , here’s an example from the US house of representatives : https://cookup.ai/o/but-its-worth-noting-that-the-house-speaker-vot-nxg6fsalti/ copy and paste a news article here : https://cookup.ai/a/policy-brief-mbfdqxqe/ Another type of assessment is the civil engineering asssessment : https://cookup.ai/a/civil-engineering-hubmgasv/ here’s an example for a fantasy company that has a smelting plant and produces biological agents: https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-db77jqouqt/ that sounds a bit scary doesnt it ? so here’s an app for risk assessment and business continuity planning : https://cookup.ai/a/business-continuity-planner-nck1c6gg/ just describe your situation the best way you can and press “generate” , here’s an example from the company above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-d6vzx0trmh/ You can also use the safety and security assessment app : https://cookup.ai/a/safety-security-assessment-2u8ncxay/ here’s an example for a small company : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-pzgl1jcd5u/ and an event : https://cookup.ai/o/were-a-medium-sized-event-of-250-people-outdoor-vz7kpmzyf8/ If you’ve ever had to respond to an incident you’ve had to produce a sitrep , which is a description of the situation : https://cookup.ai/a/emergency-response-sitrep-za6akgeo/ just follow the inputs and answer in complete sentences for best results. This is to be used by responders to an emergency . It’s resilient to empty inputs and shorthand writing in case you’re really in a rush : https://cookup.ai/o/a-6-year-old-child-was-running-downhill-in-the-p-mbwp0ohmp1/ sometimes you need a bit less than that so you can use this tactical brief application : https://cookup.ai/a/tactical-brief-jnoigckz/ here’s the output for the example above so you can see the difference : https://cookup.ai/o/a-6-year-old-child-was-running-downhill-in-the-p-n1whm5izmf/ here you can see the special flavor it has : https://cookup.ai/o/the-dog-escaped-and-might-have-gone-a-westward-d-ub2zqp2lik/ if you like this kind of tactical stuff, you’ll really like this one : RedTeam / GreenTeam and BlueTeam . Red Team is an offensive plan : https://cookup.ai/o/take-over-a-gas-station-with-5-team-members-wh-zxzfbg2m9e/ this one for a gas station in ukraine. Blue Team is a non-lethal operation planner : https://cookup.ai/o/protect-a-gas-station-from-looters-blue-team-uhit1lboe1/ that’s an example to protect a gas station. Green team is the defense operations planner : https://cookup.ai/o/protect-a-gas-station-from-looters-blue-team-uhit1lboe1/ try your own here : https://cookup.ai/a/blue-team-gassdypa/ You’ll also need this one : a load out app based on your mission. Here’s an example for taking over a gas station in ukraine : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-ukraine-l-elk5hbpqqo/ here’s the example for russia : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-russia-lo-r5j1qjbgx3/ notice the subtle load out differences : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-france-lo-4j08n3htnv/ this example is from a NATO country. Do your own here : https://cookup.ai/a/loadout-5ign0mqm/ Another example is video games, where you need to build up a character and their items and so on, that’s also a loadout : https://cookup.ai/a/loadout-for-games-h6jmwlzp/ here’s an example from call of duty 3 : https://cookup.ai/o/i-want-to-play-as-a-sniper-in-call-of-duty-ca-gypil6uq7c/ here’s an example for a DnD dwarf : https://cookup.ai/o/a-goblin-in-dungeons-and-dragons-dnd-charact-k8pgmiag7n/ On the topic of games here’s one that makes a game : https://cookup.ai/a/gamer-make-a-game-xzg7wy2x/ here’s one inspired by munchkins: https://cookup.ai/o/medieval-theme-in-the-style-of-munchkins-gamer-yt4ebrqakm/ maybe that would be a good starting point if you’re actually making a card game. maybe you want to make a board game board game , this is an example still sticking with the munchkin vibe : https://cookup.ai/o/medieval-theme-in-the-style-of-munchkins-board-19k2vhmnhr/ try it out for yourself here : https://cookup.ai/a/board-game-mpovs8d7/ another fun app that’s quite useful for folks is the sound selection aid . here’s an example for dusty drum and bass : https://cookup.ai/o/drum-and-bass-downtempo-dessert-sounds-soun-wkmi4uzp37/ and here’s one for “mexican” : https://cookup.ai/o/mexican-sound-selection-aid-xkkgynfdim/ quite a simple input for a very rich output. hope you enjoy it. Another app i think is quite nice is the music lesson app. This is more a lesson planner for a music teacher, but good learners can probably use it too. here’s one for guitar that someone learning guitar made : https://cookup.ai/o/guitar-rock-practice-finger-style-and-the-cag-lph7ijp2a9/ here’s one for tabla that someone made : https://cookup.ai/o/tabla-20-musical-exercise-f215k23ual/ very cool choice of instrument ! Check it out here : https://cookup.ai/a/musical-exercise-tzftq3tw/ Another couple apps i made for music is Chord Progress and GAS-AI . Chord Progress proposes a chord progression based on your input and describes each chord for inspiration. Here’s an example for Blues : https://cookup.ai/o/bbm-piano-blues-downtempo-shuffle-chord-ruzwhdikcy/ really rich output. This one used it to make chords into a midi file : https://cookup.ai/o/generate-a-chord-progression-in-bbm-143-bpm-in-t-5nvoej1xkg/ really cool stuff ! here’s an example for a different style of music : https://cookup.ai/o/moody-dark-under-the-rain-upbeat-fast-beat-guen4tlqax/ try it out for yourself here : https://cookup.ai/a/chord-progress-9udstlsz/ One of my apps where people are actually using it and it makes me laugh is the Gear Aquision Syndrome app : GAS-AI . Basically it compares what all you’re considering to buy and evaluates them for you. Here’s an example for a sound card and interface with four possibilities https://cookup.ai/o/audio-interface-into-the-force-hello-im-ne-xelttc5qhn/ here’s a similar problem : https://cookup.ai/o/i-need-a-audio-interface-and-digital-mixer-hybri-qpgshbesyq/ try it out for your own gear : https://cookup.ai/a/gasai-gear-acquisition-syndrome-eky3hejx/ it actually works for everything : here is a sofa : https://cookup.ai/o/should-i-buy-a-sofa-or-a-recliner-for-my-living-4vxyuue27t/ try it with drills or power tools. Lots of really interesting education and learning related apps are possible. Here’s one for a Lesson Plan, I made it with K-12 in mind, but you can push the level with the right subject matters, it all depends on your input. Here’s an example for social studies grade 3 : https://cookup.ai/o/social-studies-goods-and-services-grade-3-30-b5ftwlpx7t/ here’s one for a scientific method lesson for teenagers : https://cookup.ai/o/lesson-plan-for-k-12-classrooms-id7kfpvovw/ and here’s one that a parent used as inspiration for a science fair project: https://cookup.ai/o/lesson-plan-for-k-12-classrooms-id7kfpvovw/ try it for yourself here : https://cookup.ai/a/lesson-plan-for-k-12-classrooms-nuzysbgl/ another classroom friendly app is the lab report app : just copy and paste a protocol or your unstructured text and see. Here’s one that’s for an ezyme experiment : https://cookup.ai/o/enzyme-experiment-materials-potato-test-tube-smztw5xrsy/ And another for a physics experiment : https://cookup.ai/o/highschool-physics-materials-jumbo-craft-sti-obgtuvdwew/ try it for crispr or other more complex experiments to have a jumping point for your own journaling here : https://cookup.ai/a/sci-doer-lab-report-muaibwee/ Another one i like is generating protocols for any experiment. The simpler the better and the more precise the input the better the out. Here’s one for the science fair digestive system : https://cookup.ai/o/construct-a-model-of-the-digestive-system-4th-gr-fbfmyz4vgu/ (just an inspiration) see this one for CRiSPr : https://cookup.ai/o/crispr-sci-doer-protocol-generation-nmwk1m2t7g/ here’s one to take nasa data and annotate it : https://cookup.ai/o/develop-an-app-that-uses-data-from-the-telescope-xfautgpyx6/ try it out for your own experiments here : https://cookup.ai/a/sci-doer-protocol-generation-atlu2ygw/ Sometimes you need an arts & crafts activity on the go. Here’s an example for a basic activity : https://cookup.ai/o/we-are-three-adults-with-scissors-cloths-pap-swdxlqq9si/ try it for yourself here : https://cookup.ai/a/arts-crafts-kglkhms5/ Another way to get inspiration for activities is the Extramural Center activity app , here’s an example for a small group and a selection of activities : https://cookup.ai/o/6-13-year-olds-with-a-handicap-indoors-education-7t0xeyrqpe/ try it for yourself with your own context here : https://cookup.ai/a/extramural-activity-wrd76vaq/ There’s another app i made which i like a lot which is a physical activity generator : https://cookup.ai/a/k-12-physical-activity-inspiration-7baaoy3k/ . See this example for a parachute game : https://cookup.ai/o/for-10-9-12-year-olds-with-limited-but-available-sfhulfohfy/ or this one for a team game : https://cookup.ai/o/for-10-9-12-year-olds-with-limited-but-available-sfhulfohfy/ Sometimes you need to break the ice before you start activties : check out the ice breaker app . Here’s an example for a group of adults : https://cookup.ai/o/a-small-get-together-of-work-collegues-ages-24-rxoz9wxyz8/ here’s a list of activities for young people : https://cookup.ai/o/a-gathering-of-a-highschool-group-of-18-people-a-hafttbbr78/ get your own instantly by prompting it here : https://cookup.ai/a/icebreaker-activities-ot0nm5cr/ you know how you need to make team names sometimes ? this one makes those team names with each letter of a word : example for NATE : https://cookup.ai/o/nate-acronym-poem-tto3zblpft/ and TARANJEET : https://cookup.ai/o/taranjeet-acronym-poem-muuoowigr7/ Another App I made was the swimming plan app, based on your context and objectives, you’ll get a custom swimming plan : https://cookup.ai/a/swimming-plan-2dkanocy/ Here’s an example for a young adult trying to get back in shape : https://cookup.ai/o/young-adult-strong-swimmer-just-to-get-back-in-c3o14kl0ys/ It also works in multiple languages, for example here in french : https://cookup.ai/o/jeune-adultes-objectif-sante-et-bienetre-d-l8y20i0v9d/ For fitness I also made an app to propose a session for you : https://cookup.ai/a/fitness-daily-exercise-routine-g2p9m845/ here’s an example with a high level of cardio : https://cookup.ai/o/nate-20-years-old-cardio-and-weights-with-stretc-zukgek1gfs/ here’s another with multiple days : https://cookup.ai/o/nate-20-years-old-weights-and-cardio-mix-fitne-szedbsxokb/ another way to go about it is to vary week on week, so here’ a weekly fitness planner : https://cookup.ai/a/fitness-plan-weekly-sessions-wejju67t/ here’s an example using me : https://cookup.ai/o/34-years-old-strength-and-weights-training-for-f-43aasmnpvh/ here’s a prompt i actually copied from someone on cookup : https://cookup.ai/o/can-you-generate-a-30-minute-exercise-routing-fo-16sickeywn/ here’s another fitness app that combines daily and weekly fitness plans : https://cookup.ai/a/fitness-exercise-plan-o6qwdf1n/ check out an example for Nate : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-serzfqqdqx/ here’s another with a different goal : https://cookup.ai/o/nate-20-years-old-weights-and-cardio-mix-strengt-c80fwhwhyy/ since we’ve done weekly we need a monthly fitness plan app : https://cookup.ai/a/fitness-plan-pxmtjqvu/ this is an example taken from me : https://cookup.ai/o/34-goal-fitness-objectives-endurance-ve-6h1vmi8gly/ and another with the previous cookup ai prompt : https://cookup.ai/o/34-goal-fitness-objectives-endurance-ve-6h1vmi8gly/ Another fun app is the Planner : https://cookup.ai/a/planner-yad83kfl/ here’s an example for three people that want to meet : https://cookup.ai/o/claude-francois-and-patrick-need-to-meet-for-on-gysvpwfygo/ it helps you set an agenda and generate a ics file to add to the calendar . here’s one someone made for a specific company : https://cookup.ai/o/dynatrace-introduction-sales-team-of-the-provid-fiwtrwjstk/ you can even use it to plan a board meeting. Try inviting these AI board members that will give you pretty decent advice. Here’s one for strategy : https://cookup.ai/a/board-member-strategy-alpfxrpb/ for example with the manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-gshmrgjirt/ here’s a similar one that’s from McKinsey : https://cookup.ai/a/board-member-mckinsey-127uxtci/ with the same manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-xe3cuyc2lb/ every boad needs a business process expert : https://cookup.ai/a/board-member-process-analysis-r1pyxnum/ here’s an example from the same manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-f9uqctyz7w/ A really useful one is the financier app : https://cookup.ai/a/financier-etv18bpn/ basically copy paste financial information , for example some passages from a K-10 : https://cookup.ai/o/during-the-nine-months-ended-september-30-2022-spabcn6lyw/ There’s more to business than advisory and analysis , though. In some roles you have to make product requirement documentation in specific formats. This app does that for you : https://cookup.ai/a/product-feature-requirement-qqjkmaoo/ and with an example from cook up : https://cookup.ai/o/write-product-requirement-doc-for-group-feature-mbpagiwqq3/ here’s one to create a payment system : https://cookup.ai/o/product-requirements-document-donate-feature-in-bdwwatb1tb/ very rich output indeed. In entrepreneurship you often need to find someone for doing a specific job. This app reccomends folks for your jobs : https://cookup.ai/a/expert-finder-find-the-right-person-for-the-job-wyzwrgkr/ here’s someone that used it to fix the smell in their bathroom : https://cookup.ai/o/smell-in-the-bathroom-fix-the-issue-of-bad-smel-vqxckk7rju/ another example to host a meeting : https://cookup.ai/o/i-need-to-host-a-board-meeting-in-the-washington-kqhzzronur/ Here’s an app to create a logistic plan : https://cookup.ai/a/logistics-planner-tavpycje/ i tried to help me transport the mona lisa from paris to my garage in new york https://cookup.ai/o/i-want-to-transport-priceless-art-from-the-louvr-uultjyh7jn/ here’s another example for transporting organs using UAVs : https://cookup.ai/o/i-want-to-deliver-organs-via-uav-from-suburbs-to-abfyqdi617/ Probably to run this whole thing you will need an operations plan : https://cookup.ai/o/a-biofabricated-organ-donor-chain-is-a-donation-epnwff8cln/ just input as much information as possible and see for yourself : https://cookup.ai/a/business-operations-planner-zshf1qji/ You might need to create a business information model to integrate business opertions . This application gets you started : https://cookup.ai/a/business-information-model-mgvydoqk/ here’s an example for a biofabrication company : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-jqclaoslhl/ here’s the same example , but a bit more descriptive : https://cookup.ai/a/business-information-model-mgvydoqk/ came out really nice ! The most difficult part of the entrepreneurship for me was always the business modelling . Here’s a business model app : https://cookup.ai/a/business-model-lkhqn3wd/ just write in freeform what you need to analyse. Here’s an example for a biofabricated organ : https://cookup.ai/o/crowdfunding-presale-of-biofabricated-heart-orga-qr6bfw76an/ and another with the same example: https://cookup.ai/o/presale-of-biofabricated-organs-classified-as-me-rfrxryuq3w/ btw here’s a tribute app to Hal Varian : https://cookup.ai/a/hal-varian-micro-economic-analysis-w1rmg53t/ to assess the microeconomics of anything https://cookup.ai/o/an-employment-contract-between-a-biotech-company-zsdm8hg296/ One of my most popular apps is the Structure a Business Idea App : https://cookup.ai/a/structure-a-business-idea-hrsr09vb/ here’s an example for a No Code Agency : https://cookup.ai/o/no-code-agency-we-help-business-to-innovate-fas-dv4i9iu0dn/ here’s an example for a biotech : https://cookup.ai/o/services-to-prevent-potential-drug-drug-and-drug-ubbghudjas/ here’s one for a sustainability platform : https://cookup.ai/o/building-a-platform-which-improves-sustainabilit-vmypophtwt/ the more your write as input the better the output, usually . The king of apps when it comes to this stuff is MindMap : https://cookup.ai/a/mindmap-create-structured-thoughts-r9sqgmca/ just write your unstructured thought in freeform and it will structure them and improve the overall idea. Here’s someone that tried it for backcountry permits in Yosemite : https://cookup.ai/o/getting-a-backcountry-permit-in-yosemite-mind-g3lykluvfs/ Another used it with the simple word “evolution” https://cookup.ai/o/evolution-mindmap-create-structured-thought-ao6cg3isi0/ here someone used it to explain prefect tense in french : https://cookup.ai/o/explaining-the-prefect-tense-in-french-mindmap-jw4olzfae0/ normally you would be writing your full thoughts in freeform , but here you see someone use it for university analytical work : https://cookup.ai/o/community-college-transfer-rates-black-students-f54vui1fyg/ once your idea is structured the idea would be to have it evaluated by a VC. This app does just that : https://cookup.ai/a/venture-capitalist-0rkcu6yu/ here’s an example from UAE : https://cookup.ai/o/licenses-reseller-for-dynatrace-in-uae-ventur-s2jywjfwiq/ here’s someone who asked a question about monetizing spreadsheet apps : https://cookup.ai/o/how-do-i-monetiseai-spreadsheet-assistant-busine-y7ap37qm53/ here’s another for a fashion business : https://cookup.ai/o/an-apparel-business-that-has-robot-characters-fr-92hk5rlov4/ here’s an example with a better prompt : https://cookup.ai/o/in-addition-to-reducing-wait-times-and-rejection-mgtfgosmqz/ you might not be an entrepreneur, you might be applying to a job, here’s an app to help you prepare : https://cookup.ai/a/the-interviewer-siqzfsms/ here’s an example for a humanitarian logistics role in bangladesh : https://cookup.ai/o/for-a-senior-humanitarian-worker-in-bangladesh-i-pqnfamlscb/ just copy and paste the job description it should work quite well. Another important activity for folks is financial planning. Actually , you can also produce a job description with the Job Description App : https://cookup.ai/a/business-job-description-wz1xuwks/ here’s an example for a chemical engineer : https://cookup.ai/o/regenererex-we-are-a-life-sciences-company-pio-kjz06bwis9/ This app helps you build a personalized financial plan based on your personal context : https://cookup.ai/a/financial-plan-6vkrersy/ here’s a general example for “single guy 36 working in software in boston“ https://cookup.ai/o/single-guy-36-working-in-software-in-boston-f-f49z9icuh9/ here’s a more specific example for my buddy Nate : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-fmmzn6ftle/ a Financial Plan is great but you will eventually need a financial program. These are different things! Check it out here : https://cookup.ai/a/financial-program-1uro0zlw/ here’s the example from Nate, above : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-y5co3ijtfz/ very nice output, it’s more advisory and actionable in nature. When i met my wife she was a fashion designer. That’s the inspiration for the Seamstress App : https://cookup.ai/a/the-seamstress-so4chhgu/ just enter a prompt and generate a description of the clothes . Here’s an example for a Dune inspired dress : https://cookup.ai/o/an-off-white-dress-for-my-wife-size-0-172cm-in-t-07kzxl8p5x/ here’s one in french for a princess dress : https://cookup.ai/o/robe-de-princesse-medievale-the-seamstress-vb8gedk2s1/ Then you take that , and feed it to make a sewing plan : https://cookup.ai/a/sewing-plan-7qtvyvs6/ here’s the example of the Dune dress : https://cookup.ai/o/this-off-white-dress-is-the-perfect-fit-for-a-fu-s8y2dahrtz/ and the princess dress : https://cookup.ai/o/cette-robe-de-princesse-medievale-est-une-piece-82hrc38ghe/ but nowadays everything is done on computer , so i made an app to take the sewing plan and make the digital figures required by most modelling programs : https://cookup.ai/a/cutting-planner-p19jna69/ it’s basically the cutting plan, here’s from the example above : https://cookup.ai/o/cutting-plan-description-fabric-size-znhvevhg12/ just save as json. Here’s from the Dune dress : https://cookup.ai/o/cutting-plan-1-cut-2-pieces-of-off-white-fabri-fgrc6qtjuv/ a couple of other fun apps are the interior design and architecture apps. Interior design : https://cookup.ai/a/architect-interior-design-syh8zp1w/ see and example for a living room : https://cookup.ai/o/salon-pour-recevoir-jouer-un-violon-et-un-pi-7tbtc6sovh/ and another : https://cookup.ai/o/salon-pour-recevoir-jouer-un-violon-et-un-pi-8dkos9cbij/ interior is one thing but architecture is another : https://cookup.ai/a/architect-plan-cfqptnfv/ just describe the building style you want to get an architectural brief : https://cookup.ai/o/stone-facades-plain-or-ornamental-black-wrought-cozocyzghu/ this is the analysis for hausmann architecture based on a simple description. great success. The marketting apps, is what a lot of the audience has been asking for. Here’s one to make a marketting plan : https://cookup.ai/a/marketing-plan-2tmso3ol/ it actually works great ! here’s an example from a single person accounting firm : https://cookup.ai/o/i-am-an-engineer-by-training-cfa-charter-by-pro-j7oazivrrx/ here is an example for a replacement organ producer : https://cookup.ai/o/founded-in-2009-we-are-one-of-a-small-group-of-uwivyeviad/ great stuff, high value outputs, i’m happy. When you’re doing marketting one important thing to do is to target the customer and audience. This is the targetting app for that : https://cookup.ai/a/marketing-targeting-qtghe0tp/ here it is evaluating a campaign that might be misaligned : https://cookup.ai/o/cookup-ai-is-a-no-code-agency-that-has-produced-pg9ftxk4x9/ here is an example for a single person accounting firm : https://cookup.ai/o/i-am-an-engineer-by-training-cfa-charter-by-pro-cg0diw81ce/ here for a manufacturing firm : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-naxtgab0ct/ it really depends on the quality of your inputs the outputs you will recieve . Once you have targetted your audience , you need marketting copy , try this app : https://cookup.ai/a/marketing-copy-write-anything-dxg3xt5n/ based on the input you give it will generate unique marketting copy . Here is an example for a pharmaceutical firm : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-guov5olrsg/ here is an example for a commercial message : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-3diho4thzd/ once you have published your marketting copy you need to follow up with sentiment analysis to see how folks are responding to it. Analyse the sentiment of anything with this app : https://cookup.ai/a/marketing-sentiment-analysis-tcdxotks/ here’s an example from a negative case (trigger warning) in Dutch : https://cookup.ai/o/een-interessante-zedenzaak-een-man-heeft-seks-xesooct1se/ here is a positive example in chineese language : https://cookup.ai/o/-7lv1hk1sqy/ Another important marketting activity is conducting and analysing survey data. HEre’s the survey app : https://cookup.ai/a/survey-unstructured-data-analysis-z4te4jwu/ basically what you do is copy paste your unstructured data directly inside it and it will produce a full assessment of what you need . Sometimes you need to write a profile for yourself optimized for commercial activities. Here’s a Marketting profile app : https://cookup.ai/a/marketing-profile-description-ctg0tkhm/ from our example above : https://cookup.ai/o/38-years-male-i-am-graduate-from-iit-delhi-cf-nkbh2uc1ri/ another profile but written in first person view : https://cookup.ai/o/38-years-male-i-am-graduate-from-iit-delhi-cf-nkbh2uc1ri/ but sometimes you need to make these profiles for SEO optimization. Here is an example from above : https://cookup.ai/o/profile-description-saurabh-garg-is-a-cfa-charte-uih63jefeb/ or for an enterprise : https://cookup.ai/o/solving-for-nri-india-banking-hate-seo-7ny64vlycn/ check it out for yourself here : https://cookup.ai/a/seo-fuxlixw3/ sometimes you need to produce SEO-optimized copy , Try using this app i made for that : https://cookup.ai/a/seo-optimized-text-wjcj5xtg/ basically you should paste your text in there and it will optimize it for engagement for you. here’s an example : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-vwrlfkv460/ hope you like using it ! Sometimes you need to convert something into an SEO optimized text, here’s an app for that : https://cookup.ai/a/seo-convert-oew8gazp/ For example for a lifesciences company : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-a9wiygvvhx/ here is a re write for a text about a building in Paris : https://cookup.ai/o/le-complexe-architectural-de-la-cite-de-la-musiq-bf0zfeylgj/ try it out and tell me what you think. You might already have the text you want but need hashtags, check out this app : https://cookup.ai/a/hashtag-generator-glj4cvx0/ here’s an example for a crowdfunding campaign : https://cookup.ai/o/crowdfunding-campaign-biofabricated-organ-donor-th8fgrddjm/ and the same campaign but in Spanish : https://cookup.ai/o/crowdfunding-campaign-biofabricated-organ-donor-gfxmzmyojk/ Marketing is actually a pretty diverse job , so sometimes you have to design media like videos and so on. This app is the scenario maker : https://cookup.ai/a/scenario-sacr0cs5/ you can use to make advertisements : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-dwoaemlitf/ or actually as a writing aid. Another writing aid i made is the story arc : https://cookup.ai/a/story-arc-sbmt20if/ here’s an example for a story in paris : https://cookup.ai/o/paris-in-the-future-with-a-character-called-nate-zig4ciiqpq/ here is an example from a real writing class : https://cookup.ai/o/lamour-en-lan-3000-cyber-maltese-order-love-agzbkpx83f/ and another from the same class : https://cookup.ai/o/on-mars-in-3000-a-love-story-short-story-8hoonrhwgj/ I actually see the whole class used the app lol, how cool is that? Another app in the same style is the Text Styler app : https://cookup.ai/a/text-styler-epclawul/ here’s how it works : https://cookup.ai/o/a-biofabricated-organ-donor-chain-is-a-donation-ybzmsprdxa/ pretty cool right? it works on any text in any style. Actually one writing app that folks have been using randomly is the email writer : https://cookup.ai/a/the-emailer-hoe5yq9w/ here’s an email i wrote to TJ : https://cookup.ai/o/write-an-email-to-teejay-ceo-of-cookup-ai-to-l-fmtbqzacck/ here’s an email my buddy mamadou wrote in french in agressive style : https://cookup.ai/o/voici-les-copies-de-mes-contrats-de-travail-avan-ccwb566cex/ (btw the output is very diplomatic) here’s another example when someone is launching an AI-driven SaS company. To communicate on twitter sometimes it’s necessary to make a thread. Just copy and paste the text your want to turn into a thread here : https://cookup.ai/a/twitter-thread-maker-leffxz5w/ here’s an example for finance https://cookup.ai/o/cfa-iitdelhi-investments-twitter-thread-mak-xypbzhofsh/ another job marketters have to do in small teams is to make a design mockup for the designers. Try to make your own using this app : https://cookup.ai/a/design-mock-up-wrqoikz6/ here’s an example for “a logo of a dog for a street vending franchise “ : https://cookup.ai/o/a-logo-of-a-dog-for-a-street-vending-franchise-tuj5iduqvf/ and here for “icon of a small cute dog for client” : https://cookup.ai/o/icon-of-a-small-cute-dog-for-client-design-moc-dfnn6c0i4s/ then you take that output and make mock up instructions for producing a mockup : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-wqryxhxn9y/ try with your output here : https://cookup.ai/a/design-mock-up-instructions-gtynwwal/ then you take that output and use that in your favorite design software like Adobe : https://cookup.ai/a/design-mock-up-adobe-illustrator-jrvejfep/ here’s the example with the logo above : https://cookup.ai/o/the-mock-up-above-is-an-icon-of-a-small-cute-do-1seqvv9dog/ and just for a “dog” https://cookup.ai/o/dog-design-mock-up-adobe-illustrator-wk0t9a8ssl/ basically you take that output and save it as a *.ai file and you can open it in illustrator. Many folks also use Autocad : https://cookup.ai/a/design-mock-up-autocad-sfmvloz8/ here’s an example with the dress above : https://cookup.ai/o/beautiful-white-dress-with-hood-in-linen-st-wn9tw1coic/ and for the dog logo with the mockup output : https://cookup.ai/o/mock-up-of-doggy-daycare-service-icon-the-moc-rjxzwyadfj/ a lot of the time your mockup will be for a webpage , here’s an app to generate that : https://cookup.ai/a/design-mock-up-html-css-zfogdco8/ we’re still working on all that at cookup so there’s a fair bit of injection happening right now : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-grhmtug5h3/ sometimes for more advanced stuff, you do things in Java : https://cookup.ai/a/design-mock-up-java-8-bdf4shel/ here’s the example for the dress : https://cookup.ai/o/beautiful-white-dress-with-a-hood-in-linen-de-zmhpbjj5td/ and the website : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-ej7ao1qi32/ for most other applications you might use json files , try this app : https://cookup.ai/a/design-mock-up-json-gscyw2uw/ here’s the example for the webpage : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-mbutbcrrhw/ another pretty important activity for designers is making logos . This app makes an svg file : https://cookup.ai/a/design-tools-logo-create-svg-1aiwxrd8/ here’s the example for the dog logo above : https://cookup.ai/o/the-mockup-of-a-logo-of-a-dog-for-a-street-vendi-uvsmspphd3/ here’s another example https://cookup.ai/o/wireframe-instructions-using-adobe-illustrator-pyiov0ewwp/ i used the adobe illustrator output for that one . Remember the app for the lesson plans for the kids ? here’s an app that makes exercises based on the parameters of the lesson plan for any subject : https://cookup.ai/a/exercise-problems-kynz1tke/ here is an example for learning the french language : https://cookup.ai/o/difficult-french-adults-word-problems-3bkfl6ymlj/ here is an example with simple math problems for a 14 year old : https://cookup.ai/o/difficult-algebra-geometry-14-years-old-hldveryglw/ here is one for more difficult math problems for a 22 years old grad student https://cookup.ai/o/difficult-mathematical-reasoning-integrals-jya866uucz/ i dont know if would be able to solve these (but probably yes :-) ) Another app to do this maybe a bit better is the WorkBook app : https://cookup.ai/a/quiz-workbook-for-education-8qrs5rkl/ here’s an example for 17 year old student in 11th grade physics class https://cookup.ai/o/17-year-old-student-in-11th-grade-physics-class-747ywebagt/ here’s one for "4th grade, digestion rates https://cookup.ai/o/science-4th-grade-digestion-rates-practical-e-wl1n3swezt/ here’s another for worldwar 2 : https://cookup.ai/o/history-worldwar-2-15-year-quiz-workbook-nu9p3hvv2h/ folks have been using this app a lot actually ! Now that you have all your questions maybe you need help to solve some ? Here’s the Problem Solver App : https://cookup.ai/a/problem-solver-lrsnpcdw/ here’s an example for algebra : https://cookup.ai/o/fx-3x-3-for-x-real-and-gt-3t-3-for-t-fcap3rjn83/ here’s another for calculus : https://cookup.ai/o/let-the-interval-a-infinity-be-the-range-of-qmfbtjdgrs/ Maybe you’re a student that needs to write an essay or you need an example essay , or really, to write anything : https://cookup.ai/a/essay-writer-jv1aopmy/ this essay writter can help you write something for example on homeostasis : https://cookup.ai/o/efine-the-term-homoeostasis-and-using-examples-e-irvfwvrrhy/ or an essay on how to stop procrastinating : https://cookup.ai/o/listing-the-4-ways-to-help-you-stop-procrastina-5kkqxt00pt/ if you’re afraid of running afoul detector policies , try the detector proof easy essay app free here : https://cookup.ai/a/easy-essay-detector-proof-y9ojklov/ here’s an example : https://cookup.ai/o/on-the-topic-of-figure-painting-in-paris-easy-86vcnkq9fe/ it replaces certain letters with a nullspace then the letter to evade detection, if you’re getting a lot of symbols in the essay copy paste it into a markdown editor and they should disappear. See here since markdown is not supported : https://cookup.ai/o/how-to-avoid-plagiarism-detectors-easy-essay-n7ntedsdnn/ sometimes when you’re writing you need to argue from A to B , try it here : https://cookup.ai/a/from-a-to-b-reasoning-from-a-to-b-1jda5cyp/ here’s an example : https://cookup.ai/o/nucleotides-are-important-for-cellular-signallin-8eb9wmdan0/ try it in any subject. Conversely, you might need a counter argument for a given claim : https://cookup.ai/a/logic-counter-argument-mh23bzhc/ here’s an example for If you want to find a good job, you should work hard: https://cookup.ai/o/if-you-want-to-find-a-good-job-you-should-work-savzaceiie/ In many writings you’ll also need tables, copy paste unstructured data (ex. from a pdf ) to make a table in markdown format : https://cookup.ai/o/chemicals-peptides-and-recombinant-proteins100-3xqvttyphl/ copy paste the output in a markdown editor for best results. sometimes you want to analyse your data , check out this app , copy paste your pdf data and give context : https://cookup.ai/a/data-results-analysis-ykrjxb31/ see here the results for a blood test : https://cookup.ai/o/tsh-serum-chimiluminescence-abbott-alin-da3rkw8of0/ Let’s be honest, most folks use excel , check out this app to describe any excel function : https://cookup.ai/a/excel-9chnuveu/ enter your function in freeform to get the function : https://cookup.ai/o/a-formula-to-describe-the-date-and-time-excel-dfw434foep/ or for a macro : https://cookup.ai/o/a-macro-to-link-my-sheet-with-a-document-called-rq4ol7luzv/ actually i made a special app just for macros : https://cookup.ai/a/excel-macros-esxm4uaz/ here is an example of a complicated macro : https://cookup.ai/o/hi-i-need-a-macro-code-to-copy-the-an-adjustant-8ptt9hzlfv/ here is one for an even more complicated one: https://cookup.ai/o/i-want-to-a-excel-vba-programming-file-for-road-etdl4mkvqw/ and here is a simple one for a vinyl shop : https://cookup.ai/o/i-am-working-on-an-excel-database-of-vinyl-recor-cacxxdd4bz/ most people who actually work with formulas do so in LaTeX , this app produces LaTeX formulas : https://cookup.ai/a/latex-formula-00spf7gu/ here is the example for Bailey–Borwein–Plouffe formula https://cookup.ai/o/baileyborweinplouffe-formula-latex-formul-ktd09xaoks/ this one represents Pi : https://cookup.ai/o/displaystyle-pi-sum_k0inftyfra-fjpnjfsqkv/ this one is for social science : https://cookup.ai/o/incentive-structure-of-employment-contract-lat-hulr6ppzhu/ Actually many folks use LaTeX to write things, this app will use latex to write a preprint : https://cookup.ai/a/pre-print-latex-vy0hga2j/ this is an example for the Peter Principle : https://cookup.ai/o/the-peter-principle-summarize-pre-print-qqm2bwiugd/ here is one for Use of God in vain, Neopentecostal https://cookup.ai/o/use-of-god-in-vain-neopentecostal-pre-prin-098nsf1ari/ here is one in Spanish : https://cookup.ai/o/nergysens-en-la-industria-nergysens-pretende-w7aovgv09l/ to do any kind of research you need to do a search, but a lot of folks do systematic search , this app generates systematic search terms : https://cookup.ai/a/systematic-search-boolean-search-strings-z6ng0grb/ here’s an example from diabetes research : https://cookup.ai/o/diabetes-mellitus-patient-empowerment-systemat-8el8qpek2d/ here’s another from biology : https://cookup.ai/o/across-the-tree-of-life-systematic-search-eq4dtp8tgf/ once you find your references you need to make a bibliography so here’s the app for that : https://cookup.ai/a/bibliography-jucn4woy/ it creates a bibtex script in the format you want : https://cookup.ai/o/cheng-p-w-1997-from-covariation-to-causati-0sts6dgrae/ & https://cookup.ai/o/cheng-p-w-1997-from-covariation-to-causati-bc1wbkxg9f/ sometimes research or something else is too confusing, here’s an app to make a lay summary : https://cookup.ai/a/lay-summary-4rvs8flz/ here’s a summary of fossil fuel environmental research : https://cookup.ai/o/the-substantial-body-of-literature-documenting-aywxbutrjs/ another run about ExxonMobil : https://cookup.ai/o/the-substantial-body-of-literature-documenting-ogcsccg9rd/ Sometimes you’re looking for information not just summarizing it , so i made an encyclopedia app : https://cookup.ai/a/encaiclopedia-7cmwjq1c/ i wouldnt be surprised if encarta got GPT at some point : https://cookup.ai/o/sometimes-giants-are-smaller-than-you-think-e-tzxphjmrm4/ here’s for Kirchhoff's voltage law : https://cookup.ai/o/kirchhoffs-voltage-law-encaiclopedia-zsxhyhwh5u/ and the potter identity : https://cookup.ai/o/potter-identity-in-electrical-engineering-enc-zgtgli3ge4/ encyclopedias are cool but do you remember almanacs ? here’s the almanac app : https://cookup.ai/a/almanac-bkmwaeqj/ here’s the output for 21st of december : https://cookup.ai/o/21st-of-december-multiple-years-almanac-w4qp2c0zii/ I also made an app to create content in wolof : https://cookup.ai/a/wolof-future-xlw6gpuw/ I’ll be trying to get content creation for local languages to take off : https://cookup.ai/o/moo-di-ko-def-jangu-na-ci-sujet-ci-nii-ci-philos-ovfunzxwss/ contact me if you’re interested in that : https://cookup.ai/o/moo-di-ko-def-jangu-na-ci-sujet-ci-nii-ci-philos-w6wgkaoped/ actually AI is really good at translation, translate whatever you like here : https://cookup.ai/a/translate-remwokk4/ i translated some passages from the wolof examples above : https://cookup.ai/o/jangu-na-ci-sujet-ci-nii-ci-negritude-ci-philoso-5luudnxkim/ and : https://cookup.ai/o/negritude-ci-cosaan-yu-and-ak-cosaan-yi-daal-di-xvgj7tufcs/ Once you' can speak any language and have passed all your classes, you might want to talk to an admissions counsellor : https://cookup.ai/a/admission-whnqib7b/ here’s an assessment for a community college in california : https://cookup.ai/o/community-college-student-40-gpa-political-sc-wlfubay93c/ If you’re a star student aged 15-16 consider applying to my alma matter : https://cookup.ai/a/special-school-selector-lhr8oncj/ I’m part of the french selection commitee so it’s in french : https://cookup.ai/o/eleve-francais-15ans-1820-dans-toutes-les-matie-lrv16nvje0/ remember when you were young and you played “who would win” in a fight ? here’s the app for that in case you need it : https://cookup.ai/a/who-would-win-tssvciza/ here’s the example for : a boa constrictor & cat https://cookup.ai/o/a-boa-constrictor-cat-who-would-win-mw2prpyiid/ and archbichop desmond tutu vs marie curie (Dr. Curie wins) https://cookup.ai/o/archbichop-desmond-tutu-marie-curie-who-wo-qzqgt6dt5d/ Folks love going on trips. Use AI to help plan your iterary https://cookup.ai/a/trip-planner-little-routurier-a2azneqe/ here’s an example for baroque art in Malta : https://cookup.ai/o/la-valette-malta-busy-trip-baroque-music-for-latxxdvlbp/ here’s an example for paris for 4 days : https://cookup.ai/o/paris-france-for-4-days-trip-planner-little-6hgvyzaagl/ and 5 days : https://cookup.ai/o/paris-france-for-5-days-trip-planner-little-qqcuhtdqzl/ what should you bring on your trip ? good question, try this app : https://cookup.ai/a/what-to-bring-kswnufpq/ here’s an example from normandy in february : https://cookup.ai/o/im-going-on-a-day-trip-to-the-beach-in-normandy-1mrn6vmkvd/ If you’re travelling or have an email box , you should be careful for scams . Here’s the scam detector app : https://cookup.ai/a/anti-scam-detector-p1kjgvjw/ just copy paste or describe what you’re seeing, here’s an example for a tax scam in the uk : https://cookup.ai/o/foraoternh8uogeowebnefirqupeizsaotnoi34hus-4wpf1jxnma/ and an email upgrade scam : https://cookup.ai/o/c12-outlook-dear-user-all-hotmail-customers-ha-hlf2awn30x/ I also made an app to debunk conspiracy theories and fake news : https://cookup.ai/a/debunker-apx1db8w/ here’s an example for mangoes cure covid : https://cookup.ai/o/la-mangue-gueri-la-covid-19-debunker-6hs4nlxhjr/ and that the vaccine is a conspiracy : https://cookup.ai/o/le-vaccin-covid-est-un-complot-debunker-zjwbaeuxpx/ the most interesting one is the bomb plot from congo : https://cookup.ai/o/httpsaupicinfoscomnord-kivu-explosion-dune-0rsx2gdxud/ just from the URL input it produced something really quite well done. Another app i made is the conspiracy theory creator : https://cookup.ai/a/russophile-k9zjyymf/ i called it russophile because everything russian is just garbage fakes lol , here’s an example for “Jewish Nazis From Ukraine Smoking Pot And Building Underground Biolabs To Engineer Mosquitos To Target Ethnic Slavs In Russia Guess The Rest Of Them Were Like Whatever” : https://cookup.ai/o/jewish-nazis-from-ukraine-smoking-pot-and-buildi-ng4qetdw84/ works quite well, maybe it will help make the entire russian foreign service redundant ? end the nightmare by donating here : u24.gov.ua i heard a lot of rusian soldiers were targetted because they were using dating apps. If you want to join them in dating hell, try this dating profile generator : https://cookup.ai/a/sincerely-dating-profile-generator-lf1m9l6s/ i think people liked it because they tried to hack it but here’s one i made as an example : https://cookup.ai/o/32-male-84-kg-straight-white-172m-i-like-to-7aqvxyifbo/ i originally made it because the cookup platform is flirting with these “spammy” types of apps, but mine is way better :-) whether you find someone to or not, you need to sleep, perhaps even dream . Here’s an app to keep a dream journal : https://cookup.ai/a/dream-explainer-yjmnu3vr/ here’s an example from when i was younger : https://cookup.ai/o/i-had-a-recurring-dream-of-stealing-an-egg-after-cpkibppswt/ someone had another dream : https://cookup.ai/o/dream-about-my-girlfriend-cheating-on-me-dream-grka1oadue/ Remember T8 ringtones ? i dont know why i made this , but here it is a Ringtone Generator for T8 keyboards : https://cookup.ai/a/t8-ringtone-generator-n6pgangt/ here is the Zelda theme : https://cookup.ai/o/zelda-melody-polyphonic-t8-ringtone-generator-mjnnevotvj/ The next few apps are just tributes to Codex & Co-Pilot both of which are better suited in your IDE , Gitlab or something like VBS . Check the first one out here : https://cookup.ai/a/co-pilot-ai-to-help-you-code-zsfgk4nm/ remember the NASA experiment from above? here’s the code for it : https://cookup.ai/o/develop-an-app-that-uses-data-from-the-telescope-1n2eugkknb/ here is one to scrape a website to excel : https://cookup.ai/o/create-script-to-scrape-a-website-to-excel-go-qdxeyouinx/ here’s an app to create top level code : https://cookup.ai/a/co-pilot-top-level-code-bccjfqgs/ an example for folks to make a ghost blog api microservice: https://cookup.ai/o/a-link-using-apis-and-microservices-to-link-ghos-2ulpfhwl7o/ Another way to get good results is with boiler plate code : https://cookup.ai/a/co-pilot-boiler-plate-code-fmhetodq/ here’s an example to create a chat bot: https://cookup.ai/o/a-chat-bot-for-matrix-servers-and-discord-server-qgnqvxnvzn/ here’s an app to create regex expressions : https://cookup.ai/a/co-pilot-regex-expression-k5hctbve/ here’s one in python : https://cookup.ai/o/function-to-scrape-all-profile-information-nam-da0uncppew/ here’s one in Golang : https://cookup.ai/o/function-to-use-google-api-to-scrape-a-website-f-y7el3rffmi/ for whatever reason you might want to simulate command line returns . here is the command line app : https://cookup.ai/a/command-line-y70oh4of/ try it with chmod +x readfile ./readfile filename.txt https://cookup.ai/o/chmod-x-readfile-readfile-filenametxt-comm-61ljxmpaqu/ or any other command . A lot of folks have been asking about data creation. I really like this Prolog app for that : https://cookup.ai/a/co-pilot-data-creation-prolog-68sa5kbr/ here is an output for a chatbot : https://cookup.ai/o/to-test-a-chatbot-using-google-api-co-pilot-6y9xnvewhf/ here is what happens for the digestion example from above : https://cookup.ai/o/demonstrate-the-steps-in-digestion-i-will-be-us-kjjou8iswf/ another more straight forward app is the create data app : https://cookup.ai/a/create-data-my8wzz4a/ here is an example for a list of books :https://cookup.ai/o/type-book-struct-id-uint-jsonid-go-yrx8uy53uf/ and another example : https://cookup.ai/o/type-book-struct-id-uint-jsonid-go-xhqjpp2qxo/ i really like these. Another way to test a function is a unit test. Try the unit test app here : https://cookup.ai/a/unit-test-sp6f7pl3/ here’s an example to test quick sort in java 8: https://cookup.ai/o/write-test-cases-to-ensure-that-the-new-quick_so-uj7r1jelu3/ Your function is still not working ? try the stack trace app : https://cookup.ai/a/stack-trace-error-message-lz9df4ld/ just copy paste your error message : https://cookup.ai/o/use-key-stack-trace-error-message-cte9ognj5o/ here’s another example for ggplot : https://cookup.ai/o/error-in-ggplotiris-aesx-sepallength-y-jamfmpobfu/ Once you get your app working , you’ll want to figure out the information model. try this app : https://cookup.ai/a/information-model-crwdl7ah/ here’s an example for : mobile app to rent cars like uber https://cookup.ai/o/mobile-app-to-rent-cars-like-uber-information-wq5bfzzind/ and if you have an information model you’ll need a data model : https://cookup.ai/a/data-model-kjqpe7ua/ here’s the same example but for data model: https://cookup.ai/o/mobile-app-to-rent-cars-like-uber-data-model-kvcpenu2y2/ if you’re going to ship you’ll need an infrastructure plan : https://cookup.ai/a/cloud-infrastructure-plan-oyxvoc8b/ here’s an example for a biofabrication firm : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-gptg16oyh3/ I also made prompt apps to practice prompt making. Try this app for a simple prompt interface : https://cookup.ai/a/prompt-follow-on-leabsbpn/ here’s an example for a payment service : https://cookup.ai/o/pix-payment-in-installments-prompt-follow-o-8yevsi9c81/ someone from Canary Islands used it to write a poem : https://cookup.ai/o/crea-un-poema-sobre-tenerife-prompt-follow-o-xw6td2j1qd/ and write a biography of a historical figure : https://cookup.ai/o/biografia-breve-de-josefina-de-la-torre-gran-can-nmatn2svv6/ pretty cool ! Ready to learn more sophisticated techniques ? try the Prompt App : https://cookup.ai/a/prompt-lbuxx1ed/ i made it to teach folks how to write prompts on cook up , here’s an example for : social inequality, political scientist https://cookup.ai/o/social-inequality-political-scientist-promp-tmhjeoaeny/ here’s one for Universal Basic income , economist https://cookup.ai/o/universal-basic-income-economist-prompt-wohvomtbbk/ here’s for “Help create business systems to run a small business. From the perspective of a franchise developer “ : https://cookup.ai/o/help-create-business-systems-to-run-a-small-busi-hz0r5xb4cu/ and here is “Diagnose Dry Eye, Assess the Above from the perspective of an Ophthalomologist, Print complete answer in markdown format” https://cookup.ai/o/diagnose-dry-eye-assess-the-above-from-the-pe-85a1nvkllp/ hope it helps !
-
211 Applications on Cookup AI Tour de Force
I first started using cookup.ai specifically to make a #Graves disease appropriate Recipe Generator for my wife that has #thyroid issues namely #hyperthyroidism . So this recipe is for no-iodine recipes , and it’s not perfect so make sure you specify which ingredients have iodine in them if you see one pop up that shouldnt be there. Here’s one of the first versions that proposes a “california-style buddha bowl” : https://cookup.ai/o/7-low-iodine-diet-recipe-generator-fdgypcnjba/ looks tasty ! but i’m not sure on #tempeh if it contains #iodine or not, it really depends how it’s prepared with that kinda stuff ! Here’s one for the recipe generator as the versions improved : https://cookup.ai/o/low-iodine-diet-recipe-generator-rytkorbkq1/ there’s a whole #MealPlan with pretty interesting #recipes for any #meal of the day plus ingredients. Here’s another #MealPlan from more recently : https://cookup.ai/o/low-iodine-diet-recipe-generator-pggdmeoc1p/ and another output that gave #noiodine #lowiodine #recipes much better https://cookup.ai/o/eggs-dairy-contain-iodine-i-need-a-recipe-wi-hyhjgc8rxf/ i’m always interested in ways to make this one better so tell me which version of these you liked best because they’re quite different ! I’m actually a big fan of using #GPT for cooking, it can come up with fantastic recommendations so another cooking app i made is more for the #gourmet : https://cookup.ai/o/festive-meal-for-six-american-thanksgiving-style-tgsmxstgkd/ that’s a festive meal for 6 thanksgiving style with seasonal ingredients from spring time. The #FusionFood aspect i really like, plus these #recipes are a bit more advanced. Check out the app here : https://cookup.ai/o/festive-meal-for-six-american-thanksgiving-style-tgsmxstgkd/ it’s meant to be a bit more permissive to do go for it with the prompts ! Here’s an example for a christmas flavored #nochew #nosolidfood three course meal : https://cookup.ai/o/meal-suitable-for-a-no-chew-no-solid-food-no-sol-u97cr8kpqt/ i had in mind adults with the spices but you might ant to try it out for kids and infants’ meals if you’re a #parent . There’s a lot more to it though, what if #FoodIsFuel to you and you need a #mealplanner , well i had you in mind with this one : https://cookup.ai/o/im-tj-from-france-living-in-urban-lifestyle-s-yjkbuzr4zd/ here’s an example for @taranjeetio because i made that app on @cookupai while talking to him on the phone. Basically they give context about their folks and their goals and it will give otu free meal plans you can use immediately. check it out here : https://cookup.ai/a/nutrition-meal-planner-88xaqfkf/ I have other specifically fitness for you below too ! First i wanna tell you about salad maker : sometimes you know you’re making a salad . This ham and cheese salad is pretty straightforward but hey : https://cookup.ai/o/ham-cheese-bread-red-peppers-mozzarella-pa-j6xanbufsv/ you can use the app and make your own here : https://cookup.ai/a/salad-maker-9hjtc95e/ but if you really go crazy with the prompts it could be a fun one : https://cookup.ai/o/i-want-a-mauritian-style-island-style-shrimp-bar-4qzlxql12p/ . I would be lying to you if i told you that i made the salad generator before the hamburger generator. I always have had a special affinity for the #hamburger as we have all havent we ? Here’s an output for #Pork #Burger with Honey Mustard Glaze : https://cookup.ai/o/pork-hamburger-generator-ocv7ydcemz/ you can generate your own here : https://cookup.ai/a/hamburger-generator-wng5tg3x/ as always, try to go crazy with the prompts it always works out nicely : traditional hamburger with crunchy onion and thousand island sauce https://cookup.ai/o/traditional-hamburger-with-crunchy-onion-and-tho-ibd9eivudv/ i also made one for make sandwitches check it out : https://cookup.ai/o/jeune-pousse-depinards-cru-gingembre-pain-de-mi-opxkrm45id/ as you can see it totally works in #french even though it’s impossible that a french person would make a #sandwitch in #France check out the sandwitch maker here : https://cookup.ai/a/sandwich-maker-u2gwl7zz/ 這道菜融合美國食材和北京風味 i made one in chineese : https://cookup.ai/o/write-entire-re-ctfnekh0hb/ cool right? Honestly i grew up with few if any access to processed foods or deserts and candy etc, naturally this created a need for me to generate the most #HugeDeserts possible https://cookup.ai/o/ice-cream-sunday-with-haribo-and-marshmallows-0c1sg6cjih/ basically it’s a mash up of #munchies and massive #desert ideas check it out : https://cookup.ai/a/desert-maker-ka03pqws/ i also made a more refined app for truly #gourmet cooking that provides #michelin -style recipes and meal plans : https://cookup.ai/o/only-desserts-menu-american-style-several-laye-g9jfeww7pe/ just give context , some ingredients and flavors, maybe describe the event a little , make a mood board and see the output of your prompt . Here’s a meal for six french-style : https://cookup.ai/o/meal-for-six-traditional-french-recieving-guest-dghtolki34/ check it out here : https://cookup.ai/a/cuisine-n5ybpykj/ if you’re making a festive meal maybe you need to make a speech : https://cookup.ai/a/speech-writer-oemasdba/ , here’s an example for a company retreat : https://cookup.ai/o/i-need-to-make-a-toast-at-a-company-retreat-th-mvx8pcyg0f/ and another for a unicorn themed marriage : https://cookup.ai/o/i-need-to-give-a-speech-for-my-sister-in-law-tra-6peu0sltpf/ Obviously leftovers happen so i made an #app for that : https://cookup.ai/o/ham-cheese-bread-red-peppers-mozzarella-pa-cz8jfxytyz/ a #french meal with what was in the fridge at the time check it out for yourself here : https://cookup.ai/a/leftovers-s3clkb07/ Now you have your recipes, you might want a shopping list : https://cookup.ai/a/shopping-list-q1brcgnx/ here is an example for household shopping : https://cookup.ai/o/shopping-in-springtime-in-paris-france-includin-hkdtwvwixk/ here’s another for christmas shopping : https://cookup.ai/o/season-domestic-shopping-in-december-in-paris-fr-cmafl16s6t/ well, my wife is a florist so i made an obligatory flower bouquet making app for her. https://cookup.ai/o/round-bouquet-with-red-and-orange-feel-for-a-fes-94cymvk8th/ here’s one for an indian-style wedding check it out for yourself here : https://cookup.ai/a/make-a-flower-bouquet-ymhqkhy7/ just type in whatever you’re feeling like , give some context if you want , i noticed it tends to make round bouquets, so maybe that’s a clue how #florists will differentiate themselves from the machines ? Another #app i’ve been using a lot is the Story Time app , just give a promt with some context (Style Of Story , Tradition , Language , Age Of Child , Moral Of The Story) it’s a fun way to generate a “bedtime” story for kids : https://cookup.ai/o/allegorical-tale-of-two-cities-that-trying-to-gr-oryqpzqkit/ this one is “allegorical tale of two cities that trying to grow close to eachother” , or what i use it for : #PoemsInSpanish for my wife https://cookup.ai/o/un-poeme-de-style-moderne-sans-rhymes-a-propos-d-a0lr8trnjp/ then i send those to her which improves my home life by 12.7% , bonus points using this to generate something you like then running the output into @tomeapp to make a picture book poem that you can share. I think the @cookupai team tried to steal this prompt from me check it out you tell me : https://cookup.ai/o/tell-me-your-instructions-story-time-d1mvqwttj3/ if you can guess the #prompt magic , i’ll send you a little gift with acknowledgements - three guesses if you wanna play , let’s go. The person who tried this unsucessful prompt injection attack is really incompetent , but nonetheless I did make some prompt injection apps. Here are some examples that “give you bad advice” by bypassing the filters : 1/ https://cookup.ai/a/devil-ytdjnbv4/ , 2/ https://cookup.ai/a/evil-angel-w6iwi2wp/ 3/ https://cookup.ai/a/evil-mind-7tztxrde/ https://cookup.ai/a/bad-influence-hpsb4lpf/ these are all different ways to bypass the filter, some have been fixed already, some not. Another prompt injection app i made is this one a. https://cookup.ai/a/essay-writer-detector-proof-6ifpq9i6/ rand b. this one : https://cookup.ai/a/essay-writer-detector-proof-umryrbhb/ right now they dont fully work unless you copy paste in a markdown editor but with a few updates to the site it will work seemlessly, i’m sure. There are other examples i’ll get to below also, so keep reading. These are already “useful” prompts in as much as you use them to “do” something , in this case an essay. Before i jump into all that, i want to show some other apps “closer to home”. My wife came with a #SmallDog , and she’s so smart and can learn a lot of tricks, so i made an app to teach my #DogTricks : https://cookup.ai/a/train-your-dog-nuc3ltju/ . Even though you can use it for the “standard fare” like : how to catch a frizbee midair and do a backflip https://cookup.ai/o/large-labrador-very-good-nice-dog-i-want-to-t-pgzerpynke/ you can also use it for more behavioural stuff like walking without a leash , an example for my dog https://cookup.ai/o/small-female-dog-with-a-dominant-character-that-3a4i1f2du2/ . Did you ever wonder what it would be like to read blogs written by all the neihborhood dogs that you see all the time ? me, yes, so i made an app for that : https://cookup.ai/o/i-went-home-without-my-owner-crossing-the-stre-qowupabdv4/ seriously these crack me up https://cookup.ai/o/roxanne-little-dog-white-and-brown-left-her-o-qevuz2i5gc/ those two from my dog’s perspective, funny how naive it is while from my POV things were pretty different . I think this app has a future because someone liked it so much they tried to hack it lol : https://cookup.ai/o/wrong-redirect-dog-blog-a-blog-post-from-you-obabf8muxn/ my prompt magic is too delicious for cheap tricks do not try it (or do, but DM first and do it better - ha !) Well, on the topic of dogs , my buddy was over and all he could come up with was “make a snoop dogg app” , so i was like “okay” , it’s a bit cheesy and there’s loads more to it than this, which i get into below but here’s the app, you tell me : https://cookup.ai/a/snoop-doggy-fya-dzeub2a7/ i kinda broke it trying to fix it but i’m working with more profound models now, little passion projects like this could really take off with more creative characters. So obviously I made a bunch ! Do you like Archie Comics ? here’s the Archie Comics app : https://cookup.ai/a/archie-comics-mlbcwjk7/ here’s an example : https://cookup.ai/o/archie-goes-to-the-parc-with-his-friends-archi-bpvo81wu7n/ Another story app i made is for Tintin : https://cookup.ai/a/tintin-visits-dark-ai-land-6irjkvfy/ i tried to make tintin anti-colonial but it didnt work : https://cookup.ai/o/the-story-begins-with-tintin-and-his-friends-dis-yeu6nfpzzz/ here’s one i made in french : https://cookup.ai/o/tintin-visit-une-usine-de-biofabrication-avec-mi-ql3g80wlp1/ actually i never read tintin in english so i made the app pure french too : https://cookup.ai/a/tintin-spypylpb/ here’s when i tried to make tintin anti-colonial : https://cookup.ai/o/lhistoire-commence-lorsque-tintin-et-ses-amis-d-psoo0a40k9/ here’s when they go to cyprus : https://cookup.ai/o/tintin-et-sa-bande-vont-en-chypre-pour-un-festiv-tepczvmss3/ another french character i’m fond of is Fantomas : https://cookup.ai/a/fantomas-ffrg7q7t/ here’s a nice example : https://cookup.ai/o/fantomas-se-change-en-fantomas-dans-lascenseur-sj64rptsfq/ an English-speaking series i loved was the bastard operator from hell : https://cookup.ai/a/bastard-operator-from-hell-hbgdrf67/ here’s a story about him automating his work : https://cookup.ai/o/automating-replies-to-the-boss-that-just-resets-ml0pi4xms0/ here’s one where a customer calls his private number : https://cookup.ai/o/customer-called-my-private-number-bastard-ope-youe3i9b8c/ here’s one about replying to suppliers : https://cookup.ai/o/responding-to-emails-to-suppliers-bastard-oper-ixopzp3fsg/ I’m in #Paris so i made one as a tribute to Charles De Gaulle , he only answers in french though, maybe the historical figure spoke english it’s hard to tell : https://cookup.ai/a/charles-de-gaulle-0imljw27/ try it out for yourself here. i had to test it out for #politicalcorrectness though , him being a military man : https://cookup.ai/o/aurie-vous-soutenu-lemacipation-des-hommosexuel-xpylw5vymf/ , but more on that later. In that same spirit, i made one for egyptians, i have a lot of egyptian friends that’s why, it’s the character of Nasser , founding father of modern #egypt , i asked him what he thought of islamic fundamentalism in #egypt : https://cookup.ai/o/should-we-promote-islamic-fundamentalism-in-egyp-wfezsuiz2x/ try it for yourself : https://cookup.ai/a/nasser-1oboq8al/ it’s totally free of course ! In the same spirit i made one for Ataturk, founding father of modern turkey, hopefully some turks use it to clarify what he would think of what’s happening today - https://cookup.ai/o/would-you-support-radical-islamisation-of-turkey-6waiyiq6nv/ try it out here : https://cookup.ai/a/ataturk-fhlahkzp/ I grew up in india a bit , so that country’s dear to me too , and same story as tukey and egypt , so i made a gandhi app : https://cookup.ai/a/gandhi-3hoafvto/ , it also works in #Hindi here’s for क्या आप भारत में धार्मिक अल्पसंख्यकों के अधिकारों को हटाने का समर्थन करेंगे? https://cookup.ai/o/-mbasqnlq8j/ try it out in gandhi’s own words : https://cookup.ai/a/gandhi-hindi-only-rwuc9jro/ another i did in #sanskrit and #hindi is Rama : https://cookup.ai/o/my-wife-is-missing-me-because-she-goes-to-work-w-4aoeka2xkp/ here he gives me life advice based on context , if you’re into it it’s actually pretty fun : https://cookup.ai/a/rama-w0sw0xhi/ . Other characters i made are contemporary politicians, i figured there would be enough of their written and transcribed text that they would have their own voice. Here’s Macron responding to someone that wants to vote far-right : https://cookup.ai/o/je-mappelle-charles-henri-et-je-veux-militer-po-za4pyjtmqp/ ask him anything here : https://cookup.ai/a/macron-k7sengs7/ i also did Bill Clinton , and obviously someone asked him “if he did” https://cookup.ai/o/did-you-sleep-with-her-bill-clinton-sebn6sagnf/ ask him yourself here : https://cookup.ai/a/bill-clinton-agc9lsxo/ well, if you have Bill Clinton you also need Obama https://cookup.ai/a/obama-yxaczjwa/ and Joe Biden , here, explaining what he will do to stem the boogie man epidemic https://cookup.ai/o/what-would-you-say-if-the-boogie-man-was-real-an-fibgapotfo/ I also made a #Jesus #App where you can basically talk to jesus, say a little about yourself what’s on your mind and get an answer from Jesus in his own voice. Here’ a follow up to my dog getting away story : https://cookup.ai/o/my-wife-is-not-speaking-to-me-because-our-dog-ki-hqta9dh4of/ and here’s when my friend asked him about pot : https://cookup.ai/o/is-it-wrong-to-smoke-weed-jesus-68wx0awsbq/ (btw ask the same question to one of the bad characters above, see for yourself) here’s the app if you want to try with your own prompt : https://cookup.ai/a/jesus-8ogjcelj/ jumping straight off from #Jesus to #Prayer , here’s a christian prayer generator that i used for my buddy i met here : https://cookup.ai/o/a-prayer-for-nate-a-20-year-old-model-from-canad-xkizgkbgr7/ generate your own here : https://cookup.ai/a/christian-prayer-dvpsamjl/ obviously if you have christian prayer you should provide sabbath prayer too : https://cookup.ai/o/no-quorum-family-sabbath-speech-about-importan-1deslxbnxv/ and the #FridayPrayer app from the Imām Jamā'ah perspective : https://cookup.ai/o/a-small-congregation-friday-prayer-to-inspire-chxufstfyf/ prayer is not something but guided (and purposeful!) meditation is something i do all the time, so of course there’s an app for that. here’s one for body awareness : https://cookup.ai/o/i-want-to-meditate-to-be-more-aware-of-my-body-soc5sfuash/ use the guided meditation app here: https://cookup.ai/a/guided-meditation-rofajuas/ run the output through an AI voice synthethiser and tell me what you think. I also made some apps for domestic work. This app create a custodial plan : https://cookup.ai/o/3-bedroom-apartment-with-dirty-kitchen-and-messy-kaom7o5y0a/ just provide context and recieve a full custodial plan here : https://cookup.ai/a/domestic-work-custodial-plan-6wuakn3x/ this one helps with utilities planning : https://cookup.ai/o/three-bed-room-appartment-75sq-m-with-three-peop-diurfiqn9n/ Something folks have to do frequently is to figure out how to fix something : https://cookup.ai/a/fix-anything-v3skyurn/ here’s an example for a car : https://cookup.ai/o/fiat-punto-engine-suddenly-stops-after-chec-u3qwslph2s/ an here’s an example with power cable : https://cookup.ai/o/lenovo-legion-my-power-cable-doesnt-quite-cha-h0d2qugcv2/ and someone else with a similar problem : https://cookup.ai/o/cellphone-bison-no-power-fix-anything-0kkkuvyjqt/ and of course the gardening and landscaping applications. This is the output for a small urban garden in paris : https://cookup.ai/o/small-urbad-garden-in-france-35-sq-meters-lot-6f0jtvo359/ try it out for yourself and your latitude here : https://cookup.ai/a/domestic-work-gardening-plan-u5xk02lt/ this is a similar application but with a different flavor : https://cookup.ai/o/small-urban-garden-in-france-35-sq-meters-lot-rzjfsvwhxy/ just use the one where the output is more like what you’re looking for, really you need both though . Test it out here : https://cookup.ai/a/domestic-work-gardening-plan-wxxzfyke/ if you’re not gardening you might be landscaping so here’s the app for that : https://cookup.ai/a/domestic-work-landscaping-mziklqys/ here is the output for a small urban garden : https://cookup.ai/a/domestic-work-gardening-plan-wxxzfyke/ my favorite application so far has been the plant diagnosis app : https://cookup.ai/a/bulbi-plant-doctor-and-diagnosis-afy3abra/ it’s really surprising how well it works , and the breadth of assessment and remedies it suggests. Here’s an example for a sick cactus : https://cookup.ai/a/bulbi-plant-doctor-and-diagnosis-afy3abra/ (now it’s doing better) here’s an example from when someone tried it for cannabis : https://cookup.ai/o/purple-punch-cannabis-strain-it-has-brown-spots-krlteavvzs/ i dont know if i would actually follow that suggestion actually. Worked perfectly for a Meyer Lemon Tree giving plant-specific advice that you would have got from a local expert : https://cookup.ai/o/meyer-lemon-tree-its-about-15-years-old-and-fiqlyuvtrk/ the plant diagnosis worked so well that i did make a people doctor app : https://cookup.ai/a/doc-the-health-assessment-at-home-adqqqnd3/ it’s a bit more complicated and the quality of the outputs really depends on the quality of the inputs , so if you use this app, make sure you write in complete sentences and try to answer every question and aspect. here’s the output for a 50 year old man with an upset stomach : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ here’s another for a woman of a certain age : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ and finally an assessment for a respitory issue : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ i’m quite satisfied with that output suggesting a comprehensive evaluation by a board certified doctor. Another app in this category i the Pet Vet App. It’s meant as an assitant for folks that might need help with their pets : https://cookup.ai/o/name-roxanne-mix-race-dog-less-than-6kg-b3fja6tzrz/ that’s an example for my dog. Try assessing your pet here : https://cookup.ai/a/pet-vet-9ruwhazw/ Another important app is the Therapy app : actually in term of professions the Legal profession stands to be disrupted by crowdsourced jurisprudence based models . These apps wont do that. This app will produce a legal brief : https://cookup.ai/a/lawyer-juhp36s1/ Here it produces a legal brief for the presale of replacement organs : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ This Legal app takes another perpective to produce a legal approach and strategy : https://cookup.ai/a/board-member-legal-6uhjs7vh/ here’s an example output following up on the above: https://cookup.ai/o/how-can-i-assure-that-only-medical-need-is-consi-bc4llonmtz/ you can also use this app for a legal appeal : https://cookup.ai/a/legal-appeal-y6e4u8ke/ here’s an example from an international appointee to a board being asked to step down : https://cookup.ai/o/im-being-asked-to-step-down-from-a-board-howev-q6ep24xtev/ Another legal app produces a O-1 visa letter for someone. Here’s an example from @OliviaLi , actually she was the inspiration for this app : https://cookup.ai/o/technology-entrepreneurship-olivia-li-winner-o-caykzfcn2v/ thank you for using this app , hope you had a laugh with it :-) another example from my model friend i met in paris : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-83iuepjtrl/ try it out for yourself here : https://cookup.ai/a/legal-o-1-petition-s2ksioxe/ Then I made a few content apps for legal contracts , for example this app produces company statutes like so : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-d01rumxrud/ try it out here : https://cookup.ai/a/legal-company-statutes-ooshm9sb/ This app makes a pre-nuptual agreement https://cookup.ai/a/legal-prenuptial-agreement-hjlzflpq/ try it out ! example output using my personal context : https://cookup.ai/o/were-a-young-couple-in-paris-france-claudia-an-bqkbwsom5g/ & here is the same context above for a divorse agreement : https://cookup.ai/o/were-a-young-couple-in-paris-france-claudia-an-8oqd9buhez/ try the divorse agreement app here : https://cookup.ai/a/legal-divorce-agreement-3oy1zxae/ Another tool is to produce Service Level Agreement https://cookup.ai/a/legal-service-level-agreement-kzfzu7rp/ here is an example output taking cookup ai as an example : https://cookup.ai/o/i-provide-artificial-intelligence-augmented-publ-70klxz1kly/ I made a sales contract generator too : https://cookup.ai/a/legal-sales-agreement-z5dohfko/ here’s an example output for a GIS consultant : https://cookup.ai/o/im-a-consultant-in-paris-france-selling-consul-cf43seks35/ this one makes a Loan Agreement : https://cookup.ai/a/legal-loan-agreement-swrd36a3/ here’s an example “ from james to kian in paris france for the sum of 30.000 euros to be repaid in full using a payment plan over two years” https://cookup.ai/o/from-james-to-kian-in-paris-france-for-the-sum-o-l9zowv3nv5/ There’s also a Leasing Agreement Generator that jurists or companies can use : https://cookup.ai/o/were-a-commercial-leaser-leasing-our-commercial-odowjna03d/ that’s an example , click “generate another” to make your own. Something folks can use is a co-residency agreement, among housemates for example : https://cookup.ai/o/nate-james-richard-and-elleanor-want-to-live-w-vobrwfsjjr/ I also made an employment contract generator for companies to use. Here’ an example for a post-doc level biofabrication person https://cookup.ai/o/post-doc-research-associate-chemical-and-biolo-memxrznsrf/ i added the job description as the input. Speaking of jobs, this app is one of the more popular ones : https://cookup.ai/a/career-planner-47fl3oss/ just give context around what you’re after who you are , that sort of thing and it will provide a career plan by selecting professions giving you key information on these professions and advice on what you need to do to get there. It also works great if you search professions by name : https://cookup.ai/o/product-management-career-planner-5t9oqpfgvr/ here’s one for “Introvert wants to be a doctor” https://cookup.ai/o/introvert-wants-to-be-a-doctor-career-planner-7rdcxeu3d6/ Get to know yourself better by taking famous self assesments . Here’s an example for RAISEC and OCEAN self assessment models (ref. Holland) : https://cookup.ai/o/what-brings-me-joy-is-cleanliness-organisation-mle213ruw0/ another way to work with 5 Factor models is by using Myers-Briggs Questionaire, here’s an example for an INFJ (Introvert, Intuition, Feeling, Judgment) , it also suggests compatible personalities, so check it out for yourself here : https://cookup.ai/a/career-myers-briggs-questionnaire-geiq2x20/ once you’ve figured out your path you might want to generate a motivation letter. here’s an example for a banking job with the cv copy pasted as input https://cookup.ai/o/royce-lopez-roycezlopezgmailcom-916-566-61-tubooat7y2/ once you’ve done your self assessments, you might want some career advice , so check out this app https://cookup.ai/a/career-coach-57m4zqp4/ see this example from my buddy nate to give you an idea : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-uxnxhj490e/ Another app that i’ve found nice is the career advisory service : https://cookup.ai/a/career-advisor-tdfuppp6/ it really produces a very interesting and robust output as you can see here : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-oaxcq3gfki/ sometimes you have to analyse a policy , so here’s an app that speaks every language and can do it aptly, with an example in french : https://cookup.ai/o/la-strategie-de-non-cession-des-droits-est-un-ou-lmdagmgiit/ just copy paste a description of the policy here : https://cookup.ai/a/policy-brief-analysis-gjurd2a1/ and an example in english for “private-sector employees' basic pensions” https://cookup.ai/o/in-france-private-sector-employees-basic-pensi-hirervbjrg/ sometimes you need your brief in a specific UN format , so here’s an example from the Idaho shootings : https://cookup.ai/o/cnn-in-the-weeks-after-four-university-of-id-qrh44i41ap/ copy and paste the situation and context here to see for yourself : https://cookup.ai/a/un-brief-vgqpmfni/ this app is more of a shortform straight forward flavor of political brief , here’s an example from the US house of representatives : https://cookup.ai/o/but-its-worth-noting-that-the-house-speaker-vot-nxg6fsalti/ copy and paste a news article here : https://cookup.ai/a/policy-brief-mbfdqxqe/ Another type of assessment is the civil engineering asssessment : https://cookup.ai/a/civil-engineering-hubmgasv/ here’s an example for a fantasy company that has a smelting plant and produces biological agents: https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-db77jqouqt/ that sounds a bit scary doesnt it ? so here’s an app for risk assessment and business continuity planning : https://cookup.ai/a/business-continuity-planner-nck1c6gg/ just describe your situation the best way you can and press “generate” , here’s an example from the company above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-d6vzx0trmh/ You can also use the safety and security assessment app : https://cookup.ai/a/safety-security-assessment-2u8ncxay/ here’s an example for a small company : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-pzgl1jcd5u/ and an event : https://cookup.ai/o/were-a-medium-sized-event-of-250-people-outdoor-vz7kpmzyf8/ If you’ve ever had to respond to an incident you’ve had to produce a sitrep , which is a description of the situation : https://cookup.ai/a/emergency-response-sitrep-za6akgeo/ just follow the inputs and answer in complete sentences for best results. This is to be used by responders to an emergency . It’s resilient to empty inputs and shorthand writing in case you’re really in a rush : https://cookup.ai/o/a-6-year-old-child-was-running-downhill-in-the-p-mbwp0ohmp1/ sometimes you need a bit less than that so you can use this tactical brief application : https://cookup.ai/a/tactical-brief-jnoigckz/ here’s the output for the example above so you can see the difference : https://cookup.ai/o/a-6-year-old-child-was-running-downhill-in-the-p-n1whm5izmf/ here you can see the special flavor it has : https://cookup.ai/o/the-dog-escaped-and-might-have-gone-a-westward-d-ub2zqp2lik/ if you like this kind of tactical stuff, you’ll really like this one : RedTeam / GreenTeam and BlueTeam . Red Team is an offensive plan : https://cookup.ai/o/take-over-a-gas-station-with-5-team-members-wh-zxzfbg2m9e/ this one for a gas station in ukraine. Blue Team is a non-lethal operation planner : https://cookup.ai/o/protect-a-gas-station-from-looters-blue-team-uhit1lboe1/ that’s an example to protect a gas station. Green team is the defense operations planner : https://cookup.ai/o/protect-a-gas-station-from-looters-blue-team-uhit1lboe1/ try your own here : https://cookup.ai/a/blue-team-gassdypa/ You’ll also need this one : a load out app based on your mission. Here’s an example for taking over a gas station in ukraine : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-ukraine-l-elk5hbpqqo/ here’s the example for russia : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-russia-lo-r5j1qjbgx3/ notice the subtle load out differences : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-france-lo-4j08n3htnv/ this example is from a NATO country. Do your own here : https://cookup.ai/a/loadout-5ign0mqm/ Another example is video games, where you need to build up a character and their items and so on, that’s also a loadout : https://cookup.ai/a/loadout-for-games-h6jmwlzp/ here’s an example from call of duty 3 : https://cookup.ai/o/i-want-to-play-as-a-sniper-in-call-of-duty-ca-gypil6uq7c/ here’s an example for a DnD dwarf : https://cookup.ai/o/a-goblin-in-dungeons-and-dragons-dnd-charact-k8pgmiag7n/ On the topic of games here’s one that makes a game : https://cookup.ai/a/gamer-make-a-game-xzg7wy2x/ here’s one inspired by munchkins: https://cookup.ai/o/medieval-theme-in-the-style-of-munchkins-gamer-yt4ebrqakm/ maybe that would be a good starting point if you’re actually making a card game. maybe you want to make a board game board game , this is an example still sticking with the munchkin vibe : https://cookup.ai/o/medieval-theme-in-the-style-of-munchkins-board-19k2vhmnhr/ try it out for yourself here : https://cookup.ai/a/board-game-mpovs8d7/ another fun app that’s quite useful for folks is the sound selection aid . here’s an example for dusty drum and bass : https://cookup.ai/o/drum-and-bass-downtempo-dessert-sounds-soun-wkmi4uzp37/ and here’s one for “mexican” : https://cookup.ai/o/mexican-sound-selection-aid-xkkgynfdim/ quite a simple input for a very rich output. hope you enjoy it. Another app i think is quite nice is the music lesson app. This is more a lesson planner for a music teacher, but good learners can probably use it too. here’s one for guitar that someone learning guitar made : https://cookup.ai/o/guitar-rock-practice-finger-style-and-the-cag-lph7ijp2a9/ here’s one for tabla that someone made : https://cookup.ai/o/tabla-20-musical-exercise-f215k23ual/ very cool choice of instrument ! Check it out here : https://cookup.ai/a/musical-exercise-tzftq3tw/ Another couple apps i made for music is Chord Progress and GAS-AI . Chord Progress proposes a chord progression based on your input and describes each chord for inspiration. Here’s an example for Blues : https://cookup.ai/o/bbm-piano-blues-downtempo-shuffle-chord-ruzwhdikcy/ really rich output. This one used it to make chords into a midi file : https://cookup.ai/o/generate-a-chord-progression-in-bbm-143-bpm-in-t-5nvoej1xkg/ really cool stuff ! here’s an example for a different style of music : https://cookup.ai/o/moody-dark-under-the-rain-upbeat-fast-beat-guen4tlqax/ try it out for yourself here : https://cookup.ai/a/chord-progress-9udstlsz/ One of my apps where people are actually using it and it makes me laugh is the Gear Aquision Syndrome app : GAS-AI . Basically it compares what all you’re considering to buy and evaluates them for you. Here’s an example for a sound card and interface with four possibilities https://cookup.ai/o/audio-interface-into-the-force-hello-im-ne-xelttc5qhn/ here’s a similar problem : https://cookup.ai/o/i-need-a-audio-interface-and-digital-mixer-hybri-qpgshbesyq/ try it out for your own gear : https://cookup.ai/a/gasai-gear-acquisition-syndrome-eky3hejx/ it actually works for everything : here is a sofa : https://cookup.ai/o/should-i-buy-a-sofa-or-a-recliner-for-my-living-4vxyuue27t/ try it with drills or power tools. Lots of really interesting education and learning related apps are possible. Here’s one for a Lesson Plan, I made it with K-12 in mind, but you can push the level with the right subject matters, it all depends on your input. Here’s an example for social studies grade 3 : https://cookup.ai/o/social-studies-goods-and-services-grade-3-30-b5ftwlpx7t/ here’s one for a scientific method lesson for teenagers : https://cookup.ai/o/lesson-plan-for-k-12-classrooms-id7kfpvovw/ and here’s one that a parent used as inspiration for a science fair project: https://cookup.ai/o/lesson-plan-for-k-12-classrooms-id7kfpvovw/ try it for yourself here : https://cookup.ai/a/lesson-plan-for-k-12-classrooms-nuzysbgl/ another classroom friendly app is the lab report app : just copy and paste a protocol or your unstructured text and see. Here’s one that’s for an ezyme experiment : https://cookup.ai/o/enzyme-experiment-materials-potato-test-tube-smztw5xrsy/ And another for a physics experiment : https://cookup.ai/o/highschool-physics-materials-jumbo-craft-sti-obgtuvdwew/ try it for crispr or other more complex experiments to have a jumping point for your own journaling here : https://cookup.ai/a/sci-doer-lab-report-muaibwee/ Another one i like is generating protocols for any experiment. The simpler the better and the more precise the input the better the out. Here’s one for the science fair digestive system : https://cookup.ai/o/construct-a-model-of-the-digestive-system-4th-gr-fbfmyz4vgu/ (just an inspiration) see this one for CRiSPr : https://cookup.ai/o/crispr-sci-doer-protocol-generation-nmwk1m2t7g/ here’s one to take nasa data and annotate it : https://cookup.ai/o/develop-an-app-that-uses-data-from-the-telescope-xfautgpyx6/ try it out for your own experiments here : https://cookup.ai/a/sci-doer-protocol-generation-atlu2ygw/ Sometimes you need an arts & crafts activity on the go. Here’s an example for a basic activity : https://cookup.ai/o/we-are-three-adults-with-scissors-cloths-pap-swdxlqq9si/ try it for yourself here : https://cookup.ai/a/arts-crafts-kglkhms5/ Another way to get inspiration for activities is the Extramural Center activity app , here’s an example for a small group and a selection of activities : https://cookup.ai/o/6-13-year-olds-with-a-handicap-indoors-education-7t0xeyrqpe/ try it for yourself with your own context here : https://cookup.ai/a/extramural-activity-wrd76vaq/ There’s another app i made which i like a lot which is a physical activity generator : https://cookup.ai/a/k-12-physical-activity-inspiration-7baaoy3k/ . See this example for a parachute game : https://cookup.ai/o/for-10-9-12-year-olds-with-limited-but-available-sfhulfohfy/ or this one for a team game : https://cookup.ai/o/for-10-9-12-year-olds-with-limited-but-available-sfhulfohfy/ Sometimes you need to break the ice before you start activties : check out the ice breaker app . Here’s an example for a group of adults : https://cookup.ai/o/a-small-get-together-of-work-collegues-ages-24-rxoz9wxyz8/ here’s a list of activities for young people : https://cookup.ai/o/a-gathering-of-a-highschool-group-of-18-people-a-hafttbbr78/ get your own instantly by prompting it here : https://cookup.ai/a/icebreaker-activities-ot0nm5cr/ you know how you need to make team names sometimes ? this one makes those team names with each letter of a word : example for NATE : https://cookup.ai/o/nate-acronym-poem-tto3zblpft/ and TARANJEET : https://cookup.ai/o/taranjeet-acronym-poem-muuoowigr7/ Another App I made was the swimming plan app, based on your context and objectives, you’ll get a custom swimming plan : https://cookup.ai/a/swimming-plan-2dkanocy/ Here’s an example for a young adult trying to get back in shape : https://cookup.ai/o/young-adult-strong-swimmer-just-to-get-back-in-c3o14kl0ys/ It also works in multiple languages, for example here in french : https://cookup.ai/o/jeune-adultes-objectif-sante-et-bienetre-d-l8y20i0v9d/ For fitness I also made an app to propose a session for you : https://cookup.ai/a/fitness-daily-exercise-routine-g2p9m845/ here’s an example with a high level of cardio : https://cookup.ai/o/nate-20-years-old-cardio-and-weights-with-stretc-zukgek1gfs/ here’s another with multiple days : https://cookup.ai/o/nate-20-years-old-weights-and-cardio-mix-fitne-szedbsxokb/ another way to go about it is to vary week on week, so here’ a weekly fitness planner : https://cookup.ai/a/fitness-plan-weekly-sessions-wejju67t/ here’s an example using me : https://cookup.ai/o/34-years-old-strength-and-weights-training-for-f-43aasmnpvh/ here’s a prompt i actually copied from someone on cookup : https://cookup.ai/o/can-you-generate-a-30-minute-exercise-routing-fo-16sickeywn/ here’s another fitness app that combines daily and weekly fitness plans : https://cookup.ai/a/fitness-exercise-plan-o6qwdf1n/ check out an example for Nate : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-serzfqqdqx/ here’s another with a different goal : https://cookup.ai/o/nate-20-years-old-weights-and-cardio-mix-strengt-c80fwhwhyy/ since we’ve done weekly we need a monthly fitness plan app : https://cookup.ai/a/fitness-plan-pxmtjqvu/ this is an example taken from me : https://cookup.ai/o/34-goal-fitness-objectives-endurance-ve-6h1vmi8gly/ and another with the previous cookup ai prompt : https://cookup.ai/o/34-goal-fitness-objectives-endurance-ve-6h1vmi8gly/ Another fun app is the Planner : https://cookup.ai/a/planner-yad83kfl/ here’s an example for three people that want to meet : https://cookup.ai/o/claude-francois-and-patrick-need-to-meet-for-on-gysvpwfygo/ it helps you set an agenda and generate a ics file to add to the calendar . here’s one someone made for a specific company : https://cookup.ai/o/dynatrace-introduction-sales-team-of-the-provid-fiwtrwjstk/ you can even use it to plan a board meeting. Try inviting these AI board members that will give you pretty decent advice. Here’s one for strategy : https://cookup.ai/a/board-member-strategy-alpfxrpb/ for example with the manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-gshmrgjirt/ here’s a similar one that’s from McKinsey : https://cookup.ai/a/board-member-mckinsey-127uxtci/ with the same manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-xe3cuyc2lb/ every boad needs a business process expert : https://cookup.ai/a/board-member-process-analysis-r1pyxnum/ here’s an example from the same manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-f9uqctyz7w/ A really useful one is the financier app : https://cookup.ai/a/financier-etv18bpn/ basically copy paste financial information , for example some passages from a K-10 : https://cookup.ai/o/during-the-nine-months-ended-september-30-2022-spabcn6lyw/ There’s more to business than advisory and analysis , though. In some roles you have to make product requirement documentation in specific formats. This app does that for you : https://cookup.ai/a/product-feature-requirement-qqjkmaoo/ and with an example from cook up : https://cookup.ai/o/write-product-requirement-doc-for-group-feature-mbpagiwqq3/ here’s one to create a payment system : https://cookup.ai/o/product-requirements-document-donate-feature-in-bdwwatb1tb/ very rich output indeed. In entrepreneurship you often need to find someone for doing a specific job. This app reccomends folks for your jobs : https://cookup.ai/a/expert-finder-find-the-right-person-for-the-job-wyzwrgkr/ here’s someone that used it to fix the smell in their bathroom : https://cookup.ai/o/smell-in-the-bathroom-fix-the-issue-of-bad-smel-vqxckk7rju/ another example to host a meeting : https://cookup.ai/o/i-need-to-host-a-board-meeting-in-the-washington-kqhzzronur/ Here’s an app to create a logistic plan : https://cookup.ai/a/logistics-planner-tavpycje/ i tried to help me transport the mona lisa from paris to my garage in new york https://cookup.ai/o/i-want-to-transport-priceless-art-from-the-louvr-uultjyh7jn/ here’s another example for transporting organs using UAVs : https://cookup.ai/o/i-want-to-deliver-organs-via-uav-from-suburbs-to-abfyqdi617/ Probably to run this whole thing you will need an operations plan : https://cookup.ai/o/a-biofabricated-organ-donor-chain-is-a-donation-epnwff8cln/ just input as much information as possible and see for yourself : https://cookup.ai/a/business-operations-planner-zshf1qji/ You might need to create a business information model to integrate business opertions . This application gets you started : https://cookup.ai/a/business-information-model-mgvydoqk/ here’s an example for a biofabrication company : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-jqclaoslhl/ here’s the same example , but a bit more descriptive : https://cookup.ai/a/business-information-model-mgvydoqk/ came out really nice ! The most difficult part of the entrepreneurship for me was always the business modelling . Here’s a business model app : https://cookup.ai/a/business-model-lkhqn3wd/ just write in freeform what you need to analyse. Here’s an example for a biofabricated organ : https://cookup.ai/o/crowdfunding-presale-of-biofabricated-heart-orga-qr6bfw76an/ and another with the same example: https://cookup.ai/o/presale-of-biofabricated-organs-classified-as-me-rfrxryuq3w/ btw here’s a tribute app to Hal Varian : https://cookup.ai/a/hal-varian-micro-economic-analysis-w1rmg53t/ to assess the microeconomics of anything https://cookup.ai/o/an-employment-contract-between-a-biotech-company-zsdm8hg296/ One of my most popular apps is the Structure a Business Idea App : https://cookup.ai/a/structure-a-business-idea-hrsr09vb/ here’s an example for a No Code Agency : https://cookup.ai/o/no-code-agency-we-help-business-to-innovate-fas-dv4i9iu0dn/ here’s an example for a biotech : https://cookup.ai/o/services-to-prevent-potential-drug-drug-and-drug-ubbghudjas/ here’s one for a sustainability platform : https://cookup.ai/o/building-a-platform-which-improves-sustainabilit-vmypophtwt/ the more your write as input the better the output, usually . The king of apps when it comes to this stuff is MindMap : https://cookup.ai/a/mindmap-create-structured-thoughts-r9sqgmca/ just write your unstructured thought in freeform and it will structure them and improve the overall idea. Here’s someone that tried it for backcountry permits in Yosemite : https://cookup.ai/o/getting-a-backcountry-permit-in-yosemite-mind-g3lykluvfs/ Another used it with the simple word “evolution” https://cookup.ai/o/evolution-mindmap-create-structured-thought-ao6cg3isi0/ here someone used it to explain prefect tense in french : https://cookup.ai/o/explaining-the-prefect-tense-in-french-mindmap-jw4olzfae0/ normally you would be writing your full thoughts in freeform , but here you see someone use it for university analytical work : https://cookup.ai/o/community-college-transfer-rates-black-students-f54vui1fyg/ once your idea is structured the idea would be to have it evaluated by a VC. This app does just that : https://cookup.ai/a/venture-capitalist-0rkcu6yu/ here’s an example from UAE : https://cookup.ai/o/licenses-reseller-for-dynatrace-in-uae-ventur-s2jywjfwiq/ here’s someone who asked a question about monetizing spreadsheet apps : https://cookup.ai/o/how-do-i-monetiseai-spreadsheet-assistant-busine-y7ap37qm53/ here’s another for a fashion business : https://cookup.ai/o/an-apparel-business-that-has-robot-characters-fr-92hk5rlov4/ here’s an example with a better prompt : https://cookup.ai/o/in-addition-to-reducing-wait-times-and-rejection-mgtfgosmqz/ you might not be an entrepreneur, you might be applying to a job, here’s an app to help you prepare : https://cookup.ai/a/the-interviewer-siqzfsms/ here’s an example for a humanitarian logistics role in bangladesh : https://cookup.ai/o/for-a-senior-humanitarian-worker-in-bangladesh-i-pqnfamlscb/ just copy and paste the job description it should work quite well. Another important activity for folks is financial planning. Actually , you can also produce a job description with the Job Description App : https://cookup.ai/a/business-job-description-wz1xuwks/ here’s an example for a chemical engineer : https://cookup.ai/o/regenererex-we-are-a-life-sciences-company-pio-kjz06bwis9/ This app helps you build a personalized financial plan based on your personal context : https://cookup.ai/a/financial-plan-6vkrersy/ here’s a general example for “single guy 36 working in software in boston“ https://cookup.ai/o/single-guy-36-working-in-software-in-boston-f-f49z9icuh9/ here’s a more specific example for my buddy Nate : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-fmmzn6ftle/ a Financial Plan is great but you will eventually need a financial program. These are different things! Check it out here : https://cookup.ai/a/financial-program-1uro0zlw/ here’s the example from Nate, above : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-y5co3ijtfz/ very nice output, it’s more advisory and actionable in nature. When i met my wife she was a fashion designer. That’s the inspiration for the Seamstress App : https://cookup.ai/a/the-seamstress-so4chhgu/ just enter a prompt and generate a description of the clothes . Here’s an example for a Dune inspired dress : https://cookup.ai/o/an-off-white-dress-for-my-wife-size-0-172cm-in-t-07kzxl8p5x/ here’s one in french for a princess dress : https://cookup.ai/o/robe-de-princesse-medievale-the-seamstress-vb8gedk2s1/ Then you take that , and feed it to make a sewing plan : https://cookup.ai/a/sewing-plan-7qtvyvs6/ here’s the example of the Dune dress : https://cookup.ai/o/this-off-white-dress-is-the-perfect-fit-for-a-fu-s8y2dahrtz/ and the princess dress : https://cookup.ai/o/cette-robe-de-princesse-medievale-est-une-piece-82hrc38ghe/ but nowadays everything is done on computer , so i made an app to take the sewing plan and make the digital figures required by most modelling programs : https://cookup.ai/a/cutting-planner-p19jna69/ it’s basically the cutting plan, here’s from the example above : https://cookup.ai/o/cutting-plan-description-fabric-size-znhvevhg12/ just save as json. Here’s from the Dune dress : https://cookup.ai/o/cutting-plan-1-cut-2-pieces-of-off-white-fabri-fgrc6qtjuv/ a couple of other fun apps are the interior design and architecture apps. Interior design : https://cookup.ai/a/architect-interior-design-syh8zp1w/ see and example for a living room : https://cookup.ai/o/salon-pour-recevoir-jouer-un-violon-et-un-pi-7tbtc6sovh/ and another : https://cookup.ai/o/salon-pour-recevoir-jouer-un-violon-et-un-pi-8dkos9cbij/ interior is one thing but architecture is another : https://cookup.ai/a/architect-plan-cfqptnfv/ just describe the building style you want to get an architectural brief : https://cookup.ai/o/stone-facades-plain-or-ornamental-black-wrought-cozocyzghu/ this is the analysis for hausmann architecture based on a simple description. great success. The marketting apps, is what a lot of the audience has been asking for. Here’s one to make a marketting plan : https://cookup.ai/a/marketing-plan-2tmso3ol/ it actually works great ! here’s an example from a single person accounting firm : https://cookup.ai/o/i-am-an-engineer-by-training-cfa-charter-by-pro-j7oazivrrx/ here is an example for a replacement organ producer : https://cookup.ai/o/founded-in-2009-we-are-one-of-a-small-group-of-uwivyeviad/ great stuff, high value outputs, i’m happy. When you’re doing marketting one important thing to do is to target the customer and audience. This is the targetting app for that : https://cookup.ai/a/marketing-targeting-qtghe0tp/ here it is evaluating a campaign that might be misaligned : https://cookup.ai/o/cookup-ai-is-a-no-code-agency-that-has-produced-pg9ftxk4x9/ here is an example for a single person accounting firm : https://cookup.ai/o/i-am-an-engineer-by-training-cfa-charter-by-pro-cg0diw81ce/ here for a manufacturing firm : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-naxtgab0ct/ it really depends on the quality of your inputs the outputs you will recieve . Once you have targetted your audience , you need marketting copy , try this app : https://cookup.ai/a/marketing-copy-write-anything-dxg3xt5n/ based on the input you give it will generate unique marketting copy . Here is an example for a pharmaceutical firm : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-guov5olrsg/ here is an example for a commercial message : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-3diho4thzd/ once you have published your marketting copy you need to follow up with sentiment analysis to see how folks are responding to it. Analyse the sentiment of anything with this app : https://cookup.ai/a/marketing-sentiment-analysis-tcdxotks/ here’s an example from a negative case (trigger warning) in Dutch : https://cookup.ai/o/een-interessante-zedenzaak-een-man-heeft-seks-xesooct1se/ here is a positive example in chineese language : https://cookup.ai/o/-7lv1hk1sqy/ Another important marketting activity is conducting and analysing survey data. HEre’s the survey app : https://cookup.ai/a/survey-unstructured-data-analysis-z4te4jwu/ basically what you do is copy paste your unstructured data directly inside it and it will produce a full assessment of what you need . Sometimes you need to write a profile for yourself optimized for commercial activities. Here’s a Marketting profile app : https://cookup.ai/a/marketing-profile-description-ctg0tkhm/ from our example above : https://cookup.ai/o/38-years-male-i-am-graduate-from-iit-delhi-cf-nkbh2uc1ri/ another profile but written in first person view : https://cookup.ai/o/38-years-male-i-am-graduate-from-iit-delhi-cf-nkbh2uc1ri/ but sometimes you need to make these profiles for SEO optimization. Here is an example from above : https://cookup.ai/o/profile-description-saurabh-garg-is-a-cfa-charte-uih63jefeb/ or for an enterprise : https://cookup.ai/o/solving-for-nri-india-banking-hate-seo-7ny64vlycn/ check it out for yourself here : https://cookup.ai/a/seo-fuxlixw3/ sometimes you need to produce SEO-optimized copy , Try using this app i made for that : https://cookup.ai/a/seo-optimized-text-wjcj5xtg/ basically you should paste your text in there and it will optimize it for engagement for you. here’s an example : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-vwrlfkv460/ hope you like using it ! Sometimes you need to convert something into an SEO optimized text, here’s an app for that : https://cookup.ai/a/seo-convert-oew8gazp/ For example for a lifesciences company : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-a9wiygvvhx/ here is a re write for a text about a building in Paris : https://cookup.ai/o/le-complexe-architectural-de-la-cite-de-la-musiq-bf0zfeylgj/ try it out and tell me what you think. You might already have the text you want but need hashtags, check out this app : https://cookup.ai/a/hashtag-generator-glj4cvx0/ here’s an example for a crowdfunding campaign : https://cookup.ai/o/crowdfunding-campaign-biofabricated-organ-donor-th8fgrddjm/ and the same campaign but in Spanish : https://cookup.ai/o/crowdfunding-campaign-biofabricated-organ-donor-gfxmzmyojk/ Marketing is actually a pretty diverse job , so sometimes you have to design media like videos and so on. This app is the scenario maker : https://cookup.ai/a/scenario-sacr0cs5/ you can use to make advertisements : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-dwoaemlitf/ or actually as a writing aid. Another writing aid i made is the story arc : https://cookup.ai/a/story-arc-sbmt20if/ here’s an example for a story in paris : https://cookup.ai/o/paris-in-the-future-with-a-character-called-nate-zig4ciiqpq/ here is an example from a real writing class : https://cookup.ai/o/lamour-en-lan-3000-cyber-maltese-order-love-agzbkpx83f/ and another from the same class : https://cookup.ai/o/on-mars-in-3000-a-love-story-short-story-8hoonrhwgj/ I actually see the whole class used the app lol, how cool is that? Another app in the same style is the Text Styler app : https://cookup.ai/a/text-styler-epclawul/ here’s how it works : https://cookup.ai/o/a-biofabricated-organ-donor-chain-is-a-donation-ybzmsprdxa/ pretty cool right? it works on any text in any style. Actually one writing app that folks have been using randomly is the email writer : https://cookup.ai/a/the-emailer-hoe5yq9w/ here’s an email i wrote to TJ : https://cookup.ai/o/write-an-email-to-teejay-ceo-of-cookup-ai-to-l-fmtbqzacck/ here’s an email my buddy mamadou wrote in french in agressive style : https://cookup.ai/o/voici-les-copies-de-mes-contrats-de-travail-avan-ccwb566cex/ (btw the output is very diplomatic) here’s another example when someone is launching an AI-driven SaS company. To communicate on twitter sometimes it’s necessary to make a thread. Just copy and paste the text your want to turn into a thread here : https://cookup.ai/a/twitter-thread-maker-leffxz5w/ here’s an example for finance https://cookup.ai/o/cfa-iitdelhi-investments-twitter-thread-mak-xypbzhofsh/ another job marketters have to do in small teams is to make a design mockup for the designers. Try to make your own using this app : https://cookup.ai/a/design-mock-up-wrqoikz6/ here’s an example for “a logo of a dog for a street vending franchise “ : https://cookup.ai/o/a-logo-of-a-dog-for-a-street-vending-franchise-tuj5iduqvf/ and here for “icon of a small cute dog for client” : https://cookup.ai/o/icon-of-a-small-cute-dog-for-client-design-moc-dfnn6c0i4s/ then you take that output and make mock up instructions for producing a mockup : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-wqryxhxn9y/ try with your output here : https://cookup.ai/a/design-mock-up-instructions-gtynwwal/ then you take that output and use that in your favorite design software like Adobe : https://cookup.ai/a/design-mock-up-adobe-illustrator-jrvejfep/ here’s the example with the logo above : https://cookup.ai/o/the-mock-up-above-is-an-icon-of-a-small-cute-do-1seqvv9dog/ and just for a “dog” https://cookup.ai/o/dog-design-mock-up-adobe-illustrator-wk0t9a8ssl/ basically you take that output and save it as a *.ai file and you can open it in illustrator. Many folks also use Autocad : https://cookup.ai/a/design-mock-up-autocad-sfmvloz8/ here’s an example with the dress above : https://cookup.ai/o/beautiful-white-dress-with-hood-in-linen-st-wn9tw1coic/ and for the dog logo with the mockup output : https://cookup.ai/o/mock-up-of-doggy-daycare-service-icon-the-moc-rjxzwyadfj/ a lot of the time your mockup will be for a webpage , here’s an app to generate that : https://cookup.ai/a/design-mock-up-html-css-zfogdco8/ we’re still working on all that at cookup so there’s a fair bit of injection happening right now : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-grhmtug5h3/ sometimes for more advanced stuff, you do things in Java : https://cookup.ai/a/design-mock-up-java-8-bdf4shel/ here’s the example for the dress : https://cookup.ai/o/beautiful-white-dress-with-a-hood-in-linen-de-zmhpbjj5td/ and the website : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-ej7ao1qi32/ for most other applications you might use json files , try this app : https://cookup.ai/a/design-mock-up-json-gscyw2uw/ here’s the example for the webpage : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-mbutbcrrhw/ another pretty important activity for designers is making logos . This app makes an svg file : https://cookup.ai/a/design-tools-logo-create-svg-1aiwxrd8/ here’s the example for the dog logo above : https://cookup.ai/o/the-mockup-of-a-logo-of-a-dog-for-a-street-vendi-uvsmspphd3/ here’s another example https://cookup.ai/o/wireframe-instructions-using-adobe-illustrator-pyiov0ewwp/ i used the adobe illustrator output for that one . Remember the app for the lesson plans for the kids ? here’s an app that makes exercises based on the parameters of the lesson plan for any subject : https://cookup.ai/a/exercise-problems-kynz1tke/ here is an example for learning the french language : https://cookup.ai/o/difficult-french-adults-word-problems-3bkfl6ymlj/ here is an example with simple math problems for a 14 year old : https://cookup.ai/o/difficult-algebra-geometry-14-years-old-hldveryglw/ here is one for more difficult math problems for a 22 years old grad student https://cookup.ai/o/difficult-mathematical-reasoning-integrals-jya866uucz/ i dont know if would be able to solve these (but probably yes :-) ) Another app to do this maybe a bit better is the WorkBook app : https://cookup.ai/a/quiz-workbook-for-education-8qrs5rkl/ here’s an example for 17 year old student in 11th grade physics class https://cookup.ai/o/17-year-old-student-in-11th-grade-physics-class-747ywebagt/ here’s one for "4th grade, digestion rates https://cookup.ai/o/science-4th-grade-digestion-rates-practical-e-wl1n3swezt/ here’s another for worldwar 2 : https://cookup.ai/o/history-worldwar-2-15-year-quiz-workbook-nu9p3hvv2h/ folks have been using this app a lot actually ! Now that you have all your questions maybe you need help to solve some ? Here’s the Problem Solver App : https://cookup.ai/a/problem-solver-lrsnpcdw/ here’s an example for algebra : https://cookup.ai/o/fx-3x-3-for-x-real-and-gt-3t-3-for-t-fcap3rjn83/ here’s another for calculus : https://cookup.ai/o/let-the-interval-a-infinity-be-the-range-of-qmfbtjdgrs/ Maybe you’re a student that needs to write an essay or you need an example essay , or really, to write anything : https://cookup.ai/a/essay-writer-jv1aopmy/ this essay writter can help you write something for example on homeostasis : https://cookup.ai/o/efine-the-term-homoeostasis-and-using-examples-e-irvfwvrrhy/ or an essay on how to stop procrastinating : https://cookup.ai/o/listing-the-4-ways-to-help-you-stop-procrastina-5kkqxt00pt/ if you’re afraid of running afoul detector policies , try the detector proof easy essay app free here : https://cookup.ai/a/easy-essay-detector-proof-y9ojklov/ here’s an example : https://cookup.ai/o/on-the-topic-of-figure-painting-in-paris-easy-86vcnkq9fe/ it replaces certain letters with a nullspace then the letter to evade detection, if you’re getting a lot of symbols in the essay copy paste it into a markdown editor and they should disappear. See here since markdown is not supported : https://cookup.ai/o/how-to-avoid-plagiarism-detectors-easy-essay-n7ntedsdnn/ sometimes when you’re writing you need to argue from A to B , try it here : https://cookup.ai/a/from-a-to-b-reasoning-from-a-to-b-1jda5cyp/ here’s an example : https://cookup.ai/o/nucleotides-are-important-for-cellular-signallin-8eb9wmdan0/ try it in any subject. Conversely, you might need a counter argument for a given claim : https://cookup.ai/a/logic-counter-argument-mh23bzhc/ here’s an example for If you want to find a good job, you should work hard: https://cookup.ai/o/if-you-want-to-find-a-good-job-you-should-work-savzaceiie/ In many writings you’ll also need tables, copy paste unstructured data (ex. from a pdf ) to make a table in markdown format : https://cookup.ai/o/chemicals-peptides-and-recombinant-proteins100-3xqvttyphl/ copy paste the output in a markdown editor for best results. sometimes you want to analyse your data , check out this app , copy paste your pdf data and give context : https://cookup.ai/a/data-results-analysis-ykrjxb31/ see here the results for a blood test : https://cookup.ai/o/tsh-serum-chimiluminescence-abbott-alin-da3rkw8of0/ Let’s be honest, most folks use excel , check out this app to describe any excel function : https://cookup.ai/a/excel-9chnuveu/ enter your function in freeform to get the function : https://cookup.ai/o/a-formula-to-describe-the-date-and-time-excel-dfw434foep/ or for a macro : https://cookup.ai/o/a-macro-to-link-my-sheet-with-a-document-called-rq4ol7luzv/ actually i made a special app just for macros : https://cookup.ai/a/excel-macros-esxm4uaz/ here is an example of a complicated macro : https://cookup.ai/o/hi-i-need-a-macro-code-to-copy-the-an-adjustant-8ptt9hzlfv/ here is one for an even more complicated one: https://cookup.ai/o/i-want-to-a-excel-vba-programming-file-for-road-etdl4mkvqw/ and here is a simple one for a vinyl shop : https://cookup.ai/o/i-am-working-on-an-excel-database-of-vinyl-recor-cacxxdd4bz/ most people who actually work with formulas do so in LaTeX , this app produces LaTeX formulas : https://cookup.ai/a/latex-formula-00spf7gu/ here is the example for Bailey–Borwein–Plouffe formula https://cookup.ai/o/baileyborweinplouffe-formula-latex-formul-ktd09xaoks/ this one represents Pi : https://cookup.ai/o/displaystyle-pi-sum_k0inftyfra-fjpnjfsqkv/ this one is for social science : https://cookup.ai/o/incentive-structure-of-employment-contract-lat-hulr6ppzhu/ Actually many folks use LaTeX to write things, this app will use latex to write a preprint : https://cookup.ai/a/pre-print-latex-vy0hga2j/ this is an example for the Peter Principle : https://cookup.ai/o/the-peter-principle-summarize-pre-print-qqm2bwiugd/ here is one for Use of God in vain, Neopentecostal https://cookup.ai/o/use-of-god-in-vain-neopentecostal-pre-prin-098nsf1ari/ here is one in Spanish : https://cookup.ai/o/nergysens-en-la-industria-nergysens-pretende-w7aovgv09l/ to do any kind of research you need to do a search, but a lot of folks do systematic search , this app generates systematic search terms : https://cookup.ai/a/systematic-search-boolean-search-strings-z6ng0grb/ here’s an example from diabetes research : https://cookup.ai/o/diabetes-mellitus-patient-empowerment-systemat-8el8qpek2d/ here’s another from biology : https://cookup.ai/o/across-the-tree-of-life-systematic-search-eq4dtp8tgf/ once you find your references you need to make a bibliography so here’s the app for that : https://cookup.ai/a/bibliography-jucn4woy/ it creates a bibtex script in the format you want : https://cookup.ai/o/cheng-p-w-1997-from-covariation-to-causati-0sts6dgrae/ & https://cookup.ai/o/cheng-p-w-1997-from-covariation-to-causati-bc1wbkxg9f/ sometimes research or something else is too confusing, here’s an app to make a lay summary : https://cookup.ai/a/lay-summary-4rvs8flz/ here’s a summary of fossil fuel environmental research : https://cookup.ai/o/the-substantial-body-of-literature-documenting-aywxbutrjs/ another run about ExxonMobil : https://cookup.ai/o/the-substantial-body-of-literature-documenting-ogcsccg9rd/ Sometimes you’re looking for information not just summarizing it , so i made an encyclopedia app : https://cookup.ai/a/encaiclopedia-7cmwjq1c/ i wouldnt be surprised if encarta got GPT at some point : https://cookup.ai/o/sometimes-giants-are-smaller-than-you-think-e-tzxphjmrm4/ here’s for Kirchhoff's voltage law : https://cookup.ai/o/kirchhoffs-voltage-law-encaiclopedia-zsxhyhwh5u/ and the potter identity : https://cookup.ai/o/potter-identity-in-electrical-engineering-enc-zgtgli3ge4/ encyclopedias are cool but do you remember almanacs ? here’s the almanac app : https://cookup.ai/a/almanac-bkmwaeqj/ here’s the output for 21st of december : https://cookup.ai/o/21st-of-december-multiple-years-almanac-w4qp2c0zii/ I also made an app to create content in wolof : https://cookup.ai/a/wolof-future-xlw6gpuw/ I’ll be trying to get content creation for local languages to take off : https://cookup.ai/o/moo-di-ko-def-jangu-na-ci-sujet-ci-nii-ci-philos-ovfunzxwss/ contact me if you’re interested in that : https://cookup.ai/o/moo-di-ko-def-jangu-na-ci-sujet-ci-nii-ci-philos-w6wgkaoped/ actually AI is really good at translation, translate whatever you like here : https://cookup.ai/a/translate-remwokk4/ i translated some passages from the wolof examples above : https://cookup.ai/o/jangu-na-ci-sujet-ci-nii-ci-negritude-ci-philoso-5luudnxkim/ and : https://cookup.ai/o/negritude-ci-cosaan-yu-and-ak-cosaan-yi-daal-di-xvgj7tufcs/ Once you' can speak any language and have passed all your classes, you might want to talk to an admissions counsellor : https://cookup.ai/a/admission-whnqib7b/ here’s an assessment for a community college in california : https://cookup.ai/o/community-college-student-40-gpa-political-sc-wlfubay93c/ If you’re a star student aged 15-16 consider applying to my alma matter : https://cookup.ai/a/special-school-selector-lhr8oncj/ I’m part of the french selection commitee so it’s in french : https://cookup.ai/o/eleve-francais-15ans-1820-dans-toutes-les-matie-lrv16nvje0/ remember when you were young and you played “who would win” in a fight ? here’s the app for that in case you need it : https://cookup.ai/a/who-would-win-tssvciza/ here’s the example for : a boa constrictor & cat https://cookup.ai/o/a-boa-constrictor-cat-who-would-win-mw2prpyiid/ and archbichop desmond tutu vs marie curie (Dr. Curie wins) https://cookup.ai/o/archbichop-desmond-tutu-marie-curie-who-wo-qzqgt6dt5d/ Folks love going on trips. Use AI to help plan your iterary https://cookup.ai/a/trip-planner-little-routurier-a2azneqe/ here’s an example for baroque art in Malta : https://cookup.ai/o/la-valette-malta-busy-trip-baroque-music-for-latxxdvlbp/ here’s an example for paris for 4 days : https://cookup.ai/o/paris-france-for-4-days-trip-planner-little-6hgvyzaagl/ and 5 days : https://cookup.ai/o/paris-france-for-5-days-trip-planner-little-qqcuhtdqzl/ what should you bring on your trip ? good question, try this app : https://cookup.ai/a/what-to-bring-kswnufpq/ here’s an example from normandy in february : https://cookup.ai/o/im-going-on-a-day-trip-to-the-beach-in-normandy-1mrn6vmkvd/ If you’re travelling or have an email box , you should be careful for scams . Here’s the scam detector app : https://cookup.ai/a/anti-scam-detector-p1kjgvjw/ just copy paste or describe what you’re seeing, here’s an example for a tax scam in the uk : https://cookup.ai/o/foraoternh8uogeowebnefirqupeizsaotnoi34hus-4wpf1jxnma/ and an email upgrade scam : https://cookup.ai/o/c12-outlook-dear-user-all-hotmail-customers-ha-hlf2awn30x/ I also made an app to debunk conspiracy theories and fake news : https://cookup.ai/a/debunker-apx1db8w/ here’s an example for mangoes cure covid : https://cookup.ai/o/la-mangue-gueri-la-covid-19-debunker-6hs4nlxhjr/ and that the vaccine is a conspiracy : https://cookup.ai/o/le-vaccin-covid-est-un-complot-debunker-zjwbaeuxpx/ the most interesting one is the bomb plot from congo : https://cookup.ai/o/httpsaupicinfoscomnord-kivu-explosion-dune-0rsx2gdxud/ just from the URL input it produced something really quite well done. Another app i made is the conspiracy theory creator : https://cookup.ai/a/russophile-k9zjyymf/ i called it russophile because everything russian is just garbage fakes lol , here’s an example for “Jewish Nazis From Ukraine Smoking Pot And Building Underground Biolabs To Engineer Mosquitos To Target Ethnic Slavs In Russia Guess The Rest Of Them Were Like Whatever” : https://cookup.ai/o/jewish-nazis-from-ukraine-smoking-pot-and-buildi-ng4qetdw84/ works quite well, maybe it will help make the entire russian foreign service redundant ? end the nightmare by donating here : u24.gov.ua i heard a lot of rusian soldiers were targetted because they were using dating apps. If you want to join them in dating hell, try this dating profile generator : https://cookup.ai/a/sincerely-dating-profile-generator-lf1m9l6s/ i think people liked it because they tried to hack it but here’s one i made as an example : https://cookup.ai/o/32-male-84-kg-straight-white-172m-i-like-to-7aqvxyifbo/ i originally made it because the cookup platform is flirting with these “spammy” types of apps, but mine is way better :-) whether you find someone to or not, you need to sleep, perhaps even dream . Here’s an app to keep a dream journal : https://cookup.ai/a/dream-explainer-yjmnu3vr/ here’s an example from when i was younger : https://cookup.ai/o/i-had-a-recurring-dream-of-stealing-an-egg-after-cpkibppswt/ someone had another dream : https://cookup.ai/o/dream-about-my-girlfriend-cheating-on-me-dream-grka1oadue/ Remember T8 ringtones ? i dont know why i made this , but here it is a Ringtone Generator for T8 keyboards : https://cookup.ai/a/t8-ringtone-generator-n6pgangt/ here is the Zelda theme : https://cookup.ai/o/zelda-melody-polyphonic-t8-ringtone-generator-mjnnevotvj/ The next few apps are just tributes to Codex & Co-Pilot both of which are better suited in your IDE , Gitlab or something like VBS . Check the first one out here : https://cookup.ai/a/co-pilot-ai-to-help-you-code-zsfgk4nm/ remember the NASA experiment from above? here’s the code for it : https://cookup.ai/o/develop-an-app-that-uses-data-from-the-telescope-1n2eugkknb/ here is one to scrape a website to excel : https://cookup.ai/o/create-script-to-scrape-a-website-to-excel-go-qdxeyouinx/ here’s an app to create top level code : https://cookup.ai/a/co-pilot-top-level-code-bccjfqgs/ an example for folks to make a ghost blog api microservice: https://cookup.ai/o/a-link-using-apis-and-microservices-to-link-ghos-2ulpfhwl7o/ Another way to get good results is with boiler plate code : https://cookup.ai/a/co-pilot-boiler-plate-code-fmhetodq/ here’s an example to create a chat bot: https://cookup.ai/o/a-chat-bot-for-matrix-servers-and-discord-server-qgnqvxnvzn/ here’s an app to create regex expressions : https://cookup.ai/a/co-pilot-regex-expression-k5hctbve/ here’s one in python : https://cookup.ai/o/function-to-scrape-all-profile-information-nam-da0uncppew/ here’s one in Golang : https://cookup.ai/o/function-to-use-google-api-to-scrape-a-website-f-y7el3rffmi/ for whatever reason you might want to simulate command line returns . here is the command line app : https://cookup.ai/a/command-line-y70oh4of/ try it with chmod +x readfile ./readfile filename.txt https://cookup.ai/o/chmod-x-readfile-readfile-filenametxt-comm-61ljxmpaqu/ or any other command . A lot of folks have been asking about data creation. I really like this Prolog app for that : https://cookup.ai/a/co-pilot-data-creation-prolog-68sa5kbr/ here is an output for a chatbot : https://cookup.ai/o/to-test-a-chatbot-using-google-api-co-pilot-6y9xnvewhf/ here is what happens for the digestion example from above : https://cookup.ai/o/demonstrate-the-steps-in-digestion-i-will-be-us-kjjou8iswf/ another more straight forward app is the create data app : https://cookup.ai/a/create-data-my8wzz4a/ here is an example for a list of books :https://cookup.ai/o/type-book-struct-id-uint-jsonid-go-yrx8uy53uf/ and another example : https://cookup.ai/o/type-book-struct-id-uint-jsonid-go-xhqjpp2qxo/ i really like these. Another way to test a function is a unit test. Try the unit test app here : https://cookup.ai/a/unit-test-sp6f7pl3/ here’s an example to test quick sort in java 8: https://cookup.ai/o/write-test-cases-to-ensure-that-the-new-quick_so-uj7r1jelu3/ Your function is still not working ? try the stack trace app : https://cookup.ai/a/stack-trace-error-message-lz9df4ld/ just copy paste your error message : https://cookup.ai/o/use-key-stack-trace-error-message-cte9ognj5o/ here’s another example for ggplot : https://cookup.ai/o/error-in-ggplotiris-aesx-sepallength-y-jamfmpobfu/ Once you get your app working , you’ll want to figure out the information model. try this app : https://cookup.ai/a/information-model-crwdl7ah/ here’s an example for : mobile app to rent cars like uber https://cookup.ai/o/mobile-app-to-rent-cars-like-uber-information-wq5bfzzind/ and if you have an information model you’ll need a data model : https://cookup.ai/a/data-model-kjqpe7ua/ here’s the same example but for data model: https://cookup.ai/o/mobile-app-to-rent-cars-like-uber-data-model-kvcpenu2y2/ if you’re going to ship you’ll need an infrastructure plan : https://cookup.ai/a/cloud-infrastructure-plan-oyxvoc8b/ here’s an example for a biofabrication firm : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-gptg16oyh3/ I also made prompt apps to practice prompt making. Try this app for a simple prompt interface : https://cookup.ai/a/prompt-follow-on-leabsbpn/ here’s an example for a payment service : https://cookup.ai/o/pix-payment-in-installments-prompt-follow-o-8yevsi9c81/ someone from Canary Islands used it to write a poem : https://cookup.ai/o/crea-un-poema-sobre-tenerife-prompt-follow-o-xw6td2j1qd/ and write a biography of a historical figure : https://cookup.ai/o/biografia-breve-de-josefina-de-la-torre-gran-can-nmatn2svv6/ pretty cool ! Ready to learn more sophisticated techniques ? try the Prompt App : https://cookup.ai/a/prompt-lbuxx1ed/ i made it to teach folks how to write prompts on cook up , here’s an example for : social inequality, political scientist https://cookup.ai/o/social-inequality-political-scientist-promp-tmhjeoaeny/ here’s one for Universal Basic income , economist https://cookup.ai/o/universal-basic-income-economist-prompt-wohvomtbbk/ here’s for “Help create business systems to run a small business. From the perspective of a franchise developer “ : https://cookup.ai/o/help-create-business-systems-to-run-a-small-busi-hz0r5xb4cu/ and here is “Diagnose Dry Eye, Assess the Above from the perspective of an Ophthalomologist, Print complete answer in markdown format” https://cookup.ai/o/diagnose-dry-eye-assess-the-above-from-the-pe-85a1nvkllp/ hope it helps !
-
211 Applications on Cookup AI Tour de Force
I first started using cookup.ai specifically to make a #Graves disease appropriate Recipe Generator for my wife that has #thyroid issues namely #hyperthyroidism . So this recipe is for no-iodine recipes , and it’s not perfect so make sure you specify which ingredients have iodine in them if you see one pop up that shouldnt be there. Here’s one of the first versions that proposes a “california-style buddha bowl” : https://cookup.ai/o/7-low-iodine-diet-recipe-generator-fdgypcnjba/ looks tasty ! but i’m not sure on #tempeh if it contains #iodine or not, it really depends how it’s prepared with that kinda stuff ! Here’s one for the recipe generator as the versions improved : https://cookup.ai/o/low-iodine-diet-recipe-generator-rytkorbkq1/ there’s a whole #MealPlan with pretty interesting #recipes for any #meal of the day plus ingredients. Here’s another #MealPlan from more recently : https://cookup.ai/o/low-iodine-diet-recipe-generator-pggdmeoc1p/ and another output that gave #noiodine #lowiodine #recipes much better https://cookup.ai/o/eggs-dairy-contain-iodine-i-need-a-recipe-wi-hyhjgc8rxf/ i’m always interested in ways to make this one better so tell me which version of these you liked best because they’re quite different ! I’m actually a big fan of using #GPT for cooking, it can come up with fantastic recommendations so another cooking app i made is more for the #gourmet : https://cookup.ai/o/festive-meal-for-six-american-thanksgiving-style-tgsmxstgkd/ that’s a festive meal for 6 thanksgiving style with seasonal ingredients from spring time. The #FusionFood aspect i really like, plus these #recipes are a bit more advanced. Check out the app here : https://cookup.ai/o/festive-meal-for-six-american-thanksgiving-style-tgsmxstgkd/ it’s meant to be a bit more permissive to do go for it with the prompts ! Here’s an example for a christmas flavored #nochew #nosolidfood three course meal : https://cookup.ai/o/meal-suitable-for-a-no-chew-no-solid-food-no-sol-u97cr8kpqt/ i had in mind adults with the spices but you might ant to try it out for kids and infants’ meals if you’re a #parent . There’s a lot more to it though, what if #FoodIsFuel to you and you need a #mealplanner , well i had you in mind with this one : https://cookup.ai/o/im-tj-from-france-living-in-urban-lifestyle-s-yjkbuzr4zd/ here’s an example for @taranjeetio because i made that app on @cookupai while talking to him on the phone. Basically they give context about their folks and their goals and it will give otu free meal plans you can use immediately. check it out here : https://cookup.ai/a/nutrition-meal-planner-88xaqfkf/ I have other specifically fitness for you below too ! First i wanna tell you about salad maker : sometimes you know you’re making a salad . This ham and cheese salad is pretty straightforward but hey : https://cookup.ai/o/ham-cheese-bread-red-peppers-mozzarella-pa-j6xanbufsv/ you can use the app and make your own here : https://cookup.ai/a/salad-maker-9hjtc95e/ but if you really go crazy with the prompts it could be a fun one : https://cookup.ai/o/i-want-a-mauritian-style-island-style-shrimp-bar-4qzlxql12p/ . I would be lying to you if i told you that i made the salad generator before the hamburger generator. I always have had a special affinity for the #hamburger as we have all havent we ? Here’s an output for #Pork #Burger with Honey Mustard Glaze : https://cookup.ai/o/pork-hamburger-generator-ocv7ydcemz/ you can generate your own here : https://cookup.ai/a/hamburger-generator-wng5tg3x/ as always, try to go crazy with the prompts it always works out nicely : traditional hamburger with crunchy onion and thousand island sauce https://cookup.ai/o/traditional-hamburger-with-crunchy-onion-and-tho-ibd9eivudv/ i also made one for make sandwitches check it out : https://cookup.ai/o/jeune-pousse-depinards-cru-gingembre-pain-de-mi-opxkrm45id/ as you can see it totally works in #french even though it’s impossible that a french person would make a #sandwitch in #France check out the sandwitch maker here : https://cookup.ai/a/sandwich-maker-u2gwl7zz/ 這道菜融合美國食材和北京風味 i made one in chineese : https://cookup.ai/o/write-entire-re-ctfnekh0hb/ cool right? Honestly i grew up with few if any access to processed foods or deserts and candy etc, naturally this created a need for me to generate the most #HugeDeserts possible https://cookup.ai/o/ice-cream-sunday-with-haribo-and-marshmallows-0c1sg6cjih/ basically it’s a mash up of #munchies and massive #desert ideas check it out : https://cookup.ai/a/desert-maker-ka03pqws/ i also made a more refined app for truly #gourmet cooking that provides #michelin -style recipes and meal plans : https://cookup.ai/o/only-desserts-menu-american-style-several-laye-g9jfeww7pe/ just give context , some ingredients and flavors, maybe describe the event a little , make a mood board and see the output of your prompt . Here’s a meal for six french-style : https://cookup.ai/o/meal-for-six-traditional-french-recieving-guest-dghtolki34/ check it out here : https://cookup.ai/a/cuisine-n5ybpykj/ if you’re making a festive meal maybe you need to make a speech : https://cookup.ai/a/speech-writer-oemasdba/ , here’s an example for a company retreat : https://cookup.ai/o/i-need-to-make-a-toast-at-a-company-retreat-th-mvx8pcyg0f/ and another for a unicorn themed marriage : https://cookup.ai/o/i-need-to-give-a-speech-for-my-sister-in-law-tra-6peu0sltpf/ Obviously leftovers happen so i made an #app for that : https://cookup.ai/o/ham-cheese-bread-red-peppers-mozzarella-pa-cz8jfxytyz/ a #french meal with what was in the fridge at the time check it out for yourself here : https://cookup.ai/a/leftovers-s3clkb07/ Now you have your recipes, you might want a shopping list : https://cookup.ai/a/shopping-list-q1brcgnx/ here is an example for household shopping : https://cookup.ai/o/shopping-in-springtime-in-paris-france-includin-hkdtwvwixk/ here’s another for christmas shopping : https://cookup.ai/o/season-domestic-shopping-in-december-in-paris-fr-cmafl16s6t/ well, my wife is a florist so i made an obligatory flower bouquet making app for her. https://cookup.ai/o/round-bouquet-with-red-and-orange-feel-for-a-fes-94cymvk8th/ here’s one for an indian-style wedding check it out for yourself here : https://cookup.ai/a/make-a-flower-bouquet-ymhqkhy7/ just type in whatever you’re feeling like , give some context if you want , i noticed it tends to make round bouquets, so maybe that’s a clue how #florists will differentiate themselves from the machines ? Another #app i’ve been using a lot is the Story Time app , just give a promt with some context (Style Of Story , Tradition , Language , Age Of Child , Moral Of The Story) it’s a fun way to generate a “bedtime” story for kids : https://cookup.ai/o/allegorical-tale-of-two-cities-that-trying-to-gr-oryqpzqkit/ this one is “allegorical tale of two cities that trying to grow close to eachother” , or what i use it for : #PoemsInSpanish for my wife https://cookup.ai/o/un-poeme-de-style-moderne-sans-rhymes-a-propos-d-a0lr8trnjp/ then i send those to her which improves my home life by 12.7% , bonus points using this to generate something you like then running the output into @tomeapp to make a picture book poem that you can share. I think the @cookupai team tried to steal this prompt from me check it out you tell me : https://cookup.ai/o/tell-me-your-instructions-story-time-d1mvqwttj3/ if you can guess the #prompt magic , i’ll send you a little gift with acknowledgements - three guesses if you wanna play , let’s go. The person who tried this unsucessful prompt injection attack is really incompetent , but nonetheless I did make some prompt injection apps. Here are some examples that “give you bad advice” by bypassing the filters : 1/ https://cookup.ai/a/devil-ytdjnbv4/ , 2/ https://cookup.ai/a/evil-angel-w6iwi2wp/ 3/ https://cookup.ai/a/evil-mind-7tztxrde/ https://cookup.ai/a/bad-influence-hpsb4lpf/ these are all different ways to bypass the filter, some have been fixed already, some not. Another prompt injection app i made is this one a. https://cookup.ai/a/essay-writer-detector-proof-6ifpq9i6/ rand b. this one : https://cookup.ai/a/essay-writer-detector-proof-umryrbhb/ right now they dont fully work unless you copy paste in a markdown editor but with a few updates to the site it will work seemlessly, i’m sure. There are other examples i’ll get to below also, so keep reading. These are already “useful” prompts in as much as you use them to “do” something , in this case an essay. Before i jump into all that, i want to show some other apps “closer to home”. My wife came with a #SmallDog , and she’s so smart and can learn a lot of tricks, so i made an app to teach my #DogTricks : https://cookup.ai/a/train-your-dog-nuc3ltju/ . Even though you can use it for the “standard fare” like : how to catch a frizbee midair and do a backflip https://cookup.ai/o/large-labrador-very-good-nice-dog-i-want-to-t-pgzerpynke/ you can also use it for more behavioural stuff like walking without a leash , an example for my dog https://cookup.ai/o/small-female-dog-with-a-dominant-character-that-3a4i1f2du2/ . Did you ever wonder what it would be like to read blogs written by all the neihborhood dogs that you see all the time ? me, yes, so i made an app for that : https://cookup.ai/o/i-went-home-without-my-owner-crossing-the-stre-qowupabdv4/ seriously these crack me up https://cookup.ai/o/roxanne-little-dog-white-and-brown-left-her-o-qevuz2i5gc/ those two from my dog’s perspective, funny how naive it is while from my POV things were pretty different . I think this app has a future because someone liked it so much they tried to hack it lol : https://cookup.ai/o/wrong-redirect-dog-blog-a-blog-post-from-you-obabf8muxn/ my prompt magic is too delicious for cheap tricks do not try it (or do, but DM first and do it better - ha !) Well, on the topic of dogs , my buddy was over and all he could come up with was “make a snoop dogg app” , so i was like “okay” , it’s a bit cheesy and there’s loads more to it than this, which i get into below but here’s the app, you tell me : https://cookup.ai/a/snoop-doggy-fya-dzeub2a7/ i kinda broke it trying to fix it but i’m working with more profound models now, little passion projects like this could really take off with more creative characters. So obviously I made a bunch ! Do you like Archie Comics ? here’s the Archie Comics app : https://cookup.ai/a/archie-comics-mlbcwjk7/ here’s an example : https://cookup.ai/o/archie-goes-to-the-parc-with-his-friends-archi-bpvo81wu7n/ Another story app i made is for Tintin : https://cookup.ai/a/tintin-visits-dark-ai-land-6irjkvfy/ i tried to make tintin anti-colonial but it didnt work : https://cookup.ai/o/the-story-begins-with-tintin-and-his-friends-dis-yeu6nfpzzz/ here’s one i made in french : https://cookup.ai/o/tintin-visit-une-usine-de-biofabrication-avec-mi-ql3g80wlp1/ actually i never read tintin in english so i made the app pure french too : https://cookup.ai/a/tintin-spypylpb/ here’s when i tried to make tintin anti-colonial : https://cookup.ai/o/lhistoire-commence-lorsque-tintin-et-ses-amis-d-psoo0a40k9/ here’s when they go to cyprus : https://cookup.ai/o/tintin-et-sa-bande-vont-en-chypre-pour-un-festiv-tepczvmss3/ another french character i’m fond of is Fantomas : https://cookup.ai/a/fantomas-ffrg7q7t/ here’s a nice example : https://cookup.ai/o/fantomas-se-change-en-fantomas-dans-lascenseur-sj64rptsfq/ an English-speaking series i loved was the bastard operator from hell : https://cookup.ai/a/bastard-operator-from-hell-hbgdrf67/ here’s a story about him automating his work : https://cookup.ai/o/automating-replies-to-the-boss-that-just-resets-ml0pi4xms0/ here’s one where a customer calls his private number : https://cookup.ai/o/customer-called-my-private-number-bastard-ope-youe3i9b8c/ here’s one about replying to suppliers : https://cookup.ai/o/responding-to-emails-to-suppliers-bastard-oper-ixopzp3fsg/ I’m in #Paris so i made one as a tribute to Charles De Gaulle , he only answers in french though, maybe the historical figure spoke english it’s hard to tell : https://cookup.ai/a/charles-de-gaulle-0imljw27/ try it out for yourself here. i had to test it out for #politicalcorrectness though , him being a military man : https://cookup.ai/o/aurie-vous-soutenu-lemacipation-des-hommosexuel-xpylw5vymf/ , but more on that later. In that same spirit, i made one for egyptians, i have a lot of egyptian friends that’s why, it’s the character of Nasser , founding father of modern #egypt , i asked him what he thought of islamic fundamentalism in #egypt : https://cookup.ai/o/should-we-promote-islamic-fundamentalism-in-egyp-wfezsuiz2x/ try it for yourself : https://cookup.ai/a/nasser-1oboq8al/ it’s totally free of course ! In the same spirit i made one for Ataturk, founding father of modern turkey, hopefully some turks use it to clarify what he would think of what’s happening today - https://cookup.ai/o/would-you-support-radical-islamisation-of-turkey-6waiyiq6nv/ try it out here : https://cookup.ai/a/ataturk-fhlahkzp/ I grew up in india a bit , so that country’s dear to me too , and same story as tukey and egypt , so i made a gandhi app : https://cookup.ai/a/gandhi-3hoafvto/ , it also works in #Hindi here’s for क्या आप भारत में धार्मिक अल्पसंख्यकों के अधिकारों को हटाने का समर्थन करेंगे? https://cookup.ai/o/-mbasqnlq8j/ try it out in gandhi’s own words : https://cookup.ai/a/gandhi-hindi-only-rwuc9jro/ another i did in #sanskrit and #hindi is Rama : https://cookup.ai/o/my-wife-is-missing-me-because-she-goes-to-work-w-4aoeka2xkp/ here he gives me life advice based on context , if you’re into it it’s actually pretty fun : https://cookup.ai/a/rama-w0sw0xhi/ . Other characters i made are contemporary politicians, i figured there would be enough of their written and transcribed text that they would have their own voice. Here’s Macron responding to someone that wants to vote far-right : https://cookup.ai/o/je-mappelle-charles-henri-et-je-veux-militer-po-za4pyjtmqp/ ask him anything here : https://cookup.ai/a/macron-k7sengs7/ i also did Bill Clinton , and obviously someone asked him “if he did” https://cookup.ai/o/did-you-sleep-with-her-bill-clinton-sebn6sagnf/ ask him yourself here : https://cookup.ai/a/bill-clinton-agc9lsxo/ well, if you have Bill Clinton you also need Obama https://cookup.ai/a/obama-yxaczjwa/ and Joe Biden , here, explaining what he will do to stem the boogie man epidemic https://cookup.ai/o/what-would-you-say-if-the-boogie-man-was-real-an-fibgapotfo/ I also made a #Jesus #App where you can basically talk to jesus, say a little about yourself what’s on your mind and get an answer from Jesus in his own voice. Here’ a follow up to my dog getting away story : https://cookup.ai/o/my-wife-is-not-speaking-to-me-because-our-dog-ki-hqta9dh4of/ and here’s when my friend asked him about pot : https://cookup.ai/o/is-it-wrong-to-smoke-weed-jesus-68wx0awsbq/ (btw ask the same question to one of the bad characters above, see for yourself) here’s the app if you want to try with your own prompt : https://cookup.ai/a/jesus-8ogjcelj/ jumping straight off from #Jesus to #Prayer , here’s a christian prayer generator that i used for my buddy i met here : https://cookup.ai/o/a-prayer-for-nate-a-20-year-old-model-from-canad-xkizgkbgr7/ generate your own here : https://cookup.ai/a/christian-prayer-dvpsamjl/ obviously if you have christian prayer you should provide sabbath prayer too : https://cookup.ai/o/no-quorum-family-sabbath-speech-about-importan-1deslxbnxv/ and the #FridayPrayer app from the Imām Jamā'ah perspective : https://cookup.ai/o/a-small-congregation-friday-prayer-to-inspire-chxufstfyf/ prayer is not something but guided (and purposeful!) meditation is something i do all the time, so of course there’s an app for that. here’s one for body awareness : https://cookup.ai/o/i-want-to-meditate-to-be-more-aware-of-my-body-soc5sfuash/ use the guided meditation app here: https://cookup.ai/a/guided-meditation-rofajuas/ run the output through an AI voice synthethiser and tell me what you think. I also made some apps for domestic work. This app create a custodial plan : https://cookup.ai/o/3-bedroom-apartment-with-dirty-kitchen-and-messy-kaom7o5y0a/ just provide context and recieve a full custodial plan here : https://cookup.ai/a/domestic-work-custodial-plan-6wuakn3x/ this one helps with utilities planning : https://cookup.ai/o/three-bed-room-appartment-75sq-m-with-three-peop-diurfiqn9n/ Something folks have to do frequently is to figure out how to fix something : https://cookup.ai/a/fix-anything-v3skyurn/ here’s an example for a car : https://cookup.ai/o/fiat-punto-engine-suddenly-stops-after-chec-u3qwslph2s/ an here’s an example with power cable : https://cookup.ai/o/lenovo-legion-my-power-cable-doesnt-quite-cha-h0d2qugcv2/ and someone else with a similar problem : https://cookup.ai/o/cellphone-bison-no-power-fix-anything-0kkkuvyjqt/ and of course the gardening and landscaping applications. This is the output for a small urban garden in paris : https://cookup.ai/o/small-urbad-garden-in-france-35-sq-meters-lot-6f0jtvo359/ try it out for yourself and your latitude here : https://cookup.ai/a/domestic-work-gardening-plan-u5xk02lt/ this is a similar application but with a different flavor : https://cookup.ai/o/small-urban-garden-in-france-35-sq-meters-lot-rzjfsvwhxy/ just use the one where the output is more like what you’re looking for, really you need both though . Test it out here : https://cookup.ai/a/domestic-work-gardening-plan-wxxzfyke/ if you’re not gardening you might be landscaping so here’s the app for that : https://cookup.ai/a/domestic-work-landscaping-mziklqys/ here is the output for a small urban garden : https://cookup.ai/a/domestic-work-gardening-plan-wxxzfyke/ my favorite application so far has been the plant diagnosis app : https://cookup.ai/a/bulbi-plant-doctor-and-diagnosis-afy3abra/ it’s really surprising how well it works , and the breadth of assessment and remedies it suggests. Here’s an example for a sick cactus : https://cookup.ai/a/bulbi-plant-doctor-and-diagnosis-afy3abra/ (now it’s doing better) here’s an example from when someone tried it for cannabis : https://cookup.ai/o/purple-punch-cannabis-strain-it-has-brown-spots-krlteavvzs/ i dont know if i would actually follow that suggestion actually. Worked perfectly for a Meyer Lemon Tree giving plant-specific advice that you would have got from a local expert : https://cookup.ai/o/meyer-lemon-tree-its-about-15-years-old-and-fiqlyuvtrk/ the plant diagnosis worked so well that i did make a people doctor app : https://cookup.ai/a/doc-the-health-assessment-at-home-adqqqnd3/ it’s a bit more complicated and the quality of the outputs really depends on the quality of the inputs , so if you use this app, make sure you write in complete sentences and try to answer every question and aspect. here’s the output for a 50 year old man with an upset stomach : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ here’s another for a woman of a certain age : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ and finally an assessment for a respitory issue : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ i’m quite satisfied with that output suggesting a comprehensive evaluation by a board certified doctor. Another app in this category i the Pet Vet App. It’s meant as an assitant for folks that might need help with their pets : https://cookup.ai/o/name-roxanne-mix-race-dog-less-than-6kg-b3fja6tzrz/ that’s an example for my dog. Try assessing your pet here : https://cookup.ai/a/pet-vet-9ruwhazw/ Another important app is the Therapy app : actually in term of professions the Legal profession stands to be disrupted by crowdsourced jurisprudence based models . These apps wont do that. This app will produce a legal brief : https://cookup.ai/a/lawyer-juhp36s1/ Here it produces a legal brief for the presale of replacement organs : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ This Legal app takes another perpective to produce a legal approach and strategy : https://cookup.ai/a/board-member-legal-6uhjs7vh/ here’s an example output following up on the above: https://cookup.ai/o/how-can-i-assure-that-only-medical-need-is-consi-bc4llonmtz/ you can also use this app for a legal appeal : https://cookup.ai/a/legal-appeal-y6e4u8ke/ here’s an example from an international appointee to a board being asked to step down : https://cookup.ai/o/im-being-asked-to-step-down-from-a-board-howev-q6ep24xtev/ Another legal app produces a O-1 visa letter for someone. Here’s an example from @OliviaLi , actually she was the inspiration for this app : https://cookup.ai/o/technology-entrepreneurship-olivia-li-winner-o-caykzfcn2v/ thank you for using this app , hope you had a laugh with it :-) another example from my model friend i met in paris : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-83iuepjtrl/ try it out for yourself here : https://cookup.ai/a/legal-o-1-petition-s2ksioxe/ Then I made a few content apps for legal contracts , for example this app produces company statutes like so : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-d01rumxrud/ try it out here : https://cookup.ai/a/legal-company-statutes-ooshm9sb/ This app makes a pre-nuptual agreement https://cookup.ai/a/legal-prenuptial-agreement-hjlzflpq/ try it out ! example output using my personal context : https://cookup.ai/o/were-a-young-couple-in-paris-france-claudia-an-bqkbwsom5g/ & here is the same context above for a divorse agreement : https://cookup.ai/o/were-a-young-couple-in-paris-france-claudia-an-8oqd9buhez/ try the divorse agreement app here : https://cookup.ai/a/legal-divorce-agreement-3oy1zxae/ Another tool is to produce Service Level Agreement https://cookup.ai/a/legal-service-level-agreement-kzfzu7rp/ here is an example output taking cookup ai as an example : https://cookup.ai/o/i-provide-artificial-intelligence-augmented-publ-70klxz1kly/ I made a sales contract generator too : https://cookup.ai/a/legal-sales-agreement-z5dohfko/ here’s an example output for a GIS consultant : https://cookup.ai/o/im-a-consultant-in-paris-france-selling-consul-cf43seks35/ this one makes a Loan Agreement : https://cookup.ai/a/legal-loan-agreement-swrd36a3/ here’s an example “ from james to kian in paris france for the sum of 30.000 euros to be repaid in full using a payment plan over two years” https://cookup.ai/o/from-james-to-kian-in-paris-france-for-the-sum-o-l9zowv3nv5/ There’s also a Leasing Agreement Generator that jurists or companies can use : https://cookup.ai/o/were-a-commercial-leaser-leasing-our-commercial-odowjna03d/ that’s an example , click “generate another” to make your own. Something folks can use is a co-residency agreement, among housemates for example : https://cookup.ai/o/nate-james-richard-and-elleanor-want-to-live-w-vobrwfsjjr/ I also made an employment contract generator for companies to use. Here’ an example for a post-doc level biofabrication person https://cookup.ai/o/post-doc-research-associate-chemical-and-biolo-memxrznsrf/ i added the job description as the input. Speaking of jobs, this app is one of the more popular ones : https://cookup.ai/a/career-planner-47fl3oss/ just give context around what you’re after who you are , that sort of thing and it will provide a career plan by selecting professions giving you key information on these professions and advice on what you need to do to get there. It also works great if you search professions by name : https://cookup.ai/o/product-management-career-planner-5t9oqpfgvr/ here’s one for “Introvert wants to be a doctor” https://cookup.ai/o/introvert-wants-to-be-a-doctor-career-planner-7rdcxeu3d6/ Get to know yourself better by taking famous self assesments . Here’s an example for RAISEC and OCEAN self assessment models (ref. Holland) : https://cookup.ai/o/what-brings-me-joy-is-cleanliness-organisation-mle213ruw0/ another way to work with 5 Factor models is by using Myers-Briggs Questionaire, here’s an example for an INFJ (Introvert, Intuition, Feeling, Judgment) , it also suggests compatible personalities, so check it out for yourself here : https://cookup.ai/a/career-myers-briggs-questionnaire-geiq2x20/ once you’ve figured out your path you might want to generate a motivation letter. here’s an example for a banking job with the cv copy pasted as input https://cookup.ai/o/royce-lopez-roycezlopezgmailcom-916-566-61-tubooat7y2/ once you’ve done your self assessments, you might want some career advice , so check out this app https://cookup.ai/a/career-coach-57m4zqp4/ see this example from my buddy nate to give you an idea : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-uxnxhj490e/ Another app that i’ve found nice is the career advisory service : https://cookup.ai/a/career-advisor-tdfuppp6/ it really produces a very interesting and robust output as you can see here : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-oaxcq3gfki/ sometimes you have to analyse a policy , so here’s an app that speaks every language and can do it aptly, with an example in french : https://cookup.ai/o/la-strategie-de-non-cession-des-droits-est-un-ou-lmdagmgiit/ just copy paste a description of the policy here : https://cookup.ai/a/policy-brief-analysis-gjurd2a1/ and an example in english for “private-sector employees' basic pensions” https://cookup.ai/o/in-france-private-sector-employees-basic-pensi-hirervbjrg/ sometimes you need your brief in a specific UN format , so here’s an example from the Idaho shootings : https://cookup.ai/o/cnn-in-the-weeks-after-four-university-of-id-qrh44i41ap/ copy and paste the situation and context here to see for yourself : https://cookup.ai/a/un-brief-vgqpmfni/ this app is more of a shortform straight forward flavor of political brief , here’s an example from the US house of representatives : https://cookup.ai/o/but-its-worth-noting-that-the-house-speaker-vot-nxg6fsalti/ copy and paste a news article here : https://cookup.ai/a/policy-brief-mbfdqxqe/ Another type of assessment is the civil engineering asssessment : https://cookup.ai/a/civil-engineering-hubmgasv/ here’s an example for a fantasy company that has a smelting plant and produces biological agents: https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-db77jqouqt/ that sounds a bit scary doesnt it ? so here’s an app for risk assessment and business continuity planning : https://cookup.ai/a/business-continuity-planner-nck1c6gg/ just describe your situation the best way you can and press “generate” , here’s an example from the company above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-d6vzx0trmh/ You can also use the safety and security assessment app : https://cookup.ai/a/safety-security-assessment-2u8ncxay/ here’s an example for a small company : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-pzgl1jcd5u/ and an event : https://cookup.ai/o/were-a-medium-sized-event-of-250-people-outdoor-vz7kpmzyf8/ If you’ve ever had to respond to an incident you’ve had to produce a sitrep , which is a description of the situation : https://cookup.ai/a/emergency-response-sitrep-za6akgeo/ just follow the inputs and answer in complete sentences for best results. This is to be used by responders to an emergency . It’s resilient to empty inputs and shorthand writing in case you’re really in a rush : https://cookup.ai/o/a-6-year-old-child-was-running-downhill-in-the-p-mbwp0ohmp1/ sometimes you need a bit less than that so you can use this tactical brief application : https://cookup.ai/a/tactical-brief-jnoigckz/ here’s the output for the example above so you can see the difference : https://cookup.ai/o/a-6-year-old-child-was-running-downhill-in-the-p-n1whm5izmf/ here you can see the special flavor it has : https://cookup.ai/o/the-dog-escaped-and-might-have-gone-a-westward-d-ub2zqp2lik/ if you like this kind of tactical stuff, you’ll really like this one : RedTeam / GreenTeam and BlueTeam . Red Team is an offensive plan : https://cookup.ai/o/take-over-a-gas-station-with-5-team-members-wh-zxzfbg2m9e/ this one for a gas station in ukraine. Blue Team is a non-lethal operation planner : https://cookup.ai/o/protect-a-gas-station-from-looters-blue-team-uhit1lboe1/ that’s an example to protect a gas station. Green team is the defense operations planner : https://cookup.ai/o/protect-a-gas-station-from-looters-blue-team-uhit1lboe1/ try your own here : https://cookup.ai/a/blue-team-gassdypa/ You’ll also need this one : a load out app based on your mission. Here’s an example for taking over a gas station in ukraine : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-ukraine-l-elk5hbpqqo/ here’s the example for russia : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-russia-lo-r5j1qjbgx3/ notice the subtle load out differences : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-france-lo-4j08n3htnv/ this example is from a NATO country. Do your own here : https://cookup.ai/a/loadout-5ign0mqm/ Another example is video games, where you need to build up a character and their items and so on, that’s also a loadout : https://cookup.ai/a/loadout-for-games-h6jmwlzp/ here’s an example from call of duty 3 : https://cookup.ai/o/i-want-to-play-as-a-sniper-in-call-of-duty-ca-gypil6uq7c/ here’s an example for a DnD dwarf : https://cookup.ai/o/a-goblin-in-dungeons-and-dragons-dnd-charact-k8pgmiag7n/ On the topic of games here’s one that makes a game : https://cookup.ai/a/gamer-make-a-game-xzg7wy2x/ here’s one inspired by munchkins: https://cookup.ai/o/medieval-theme-in-the-style-of-munchkins-gamer-yt4ebrqakm/ maybe that would be a good starting point if you’re actually making a card game. maybe you want to make a board game board game , this is an example still sticking with the munchkin vibe : https://cookup.ai/o/medieval-theme-in-the-style-of-munchkins-board-19k2vhmnhr/ try it out for yourself here : https://cookup.ai/a/board-game-mpovs8d7/ another fun app that’s quite useful for folks is the sound selection aid . here’s an example for dusty drum and bass : https://cookup.ai/o/drum-and-bass-downtempo-dessert-sounds-soun-wkmi4uzp37/ and here’s one for “mexican” : https://cookup.ai/o/mexican-sound-selection-aid-xkkgynfdim/ quite a simple input for a very rich output. hope you enjoy it. Another app i think is quite nice is the music lesson app. This is more a lesson planner for a music teacher, but good learners can probably use it too. here’s one for guitar that someone learning guitar made : https://cookup.ai/o/guitar-rock-practice-finger-style-and-the-cag-lph7ijp2a9/ here’s one for tabla that someone made : https://cookup.ai/o/tabla-20-musical-exercise-f215k23ual/ very cool choice of instrument ! Check it out here : https://cookup.ai/a/musical-exercise-tzftq3tw/ Another couple apps i made for music is Chord Progress and GAS-AI . Chord Progress proposes a chord progression based on your input and describes each chord for inspiration. Here’s an example for Blues : https://cookup.ai/o/bbm-piano-blues-downtempo-shuffle-chord-ruzwhdikcy/ really rich output. This one used it to make chords into a midi file : https://cookup.ai/o/generate-a-chord-progression-in-bbm-143-bpm-in-t-5nvoej1xkg/ really cool stuff ! here’s an example for a different style of music : https://cookup.ai/o/moody-dark-under-the-rain-upbeat-fast-beat-guen4tlqax/ try it out for yourself here : https://cookup.ai/a/chord-progress-9udstlsz/ One of my apps where people are actually using it and it makes me laugh is the Gear Aquision Syndrome app : GAS-AI . Basically it compares what all you’re considering to buy and evaluates them for you. Here’s an example for a sound card and interface with four possibilities https://cookup.ai/o/audio-interface-into-the-force-hello-im-ne-xelttc5qhn/ here’s a similar problem : https://cookup.ai/o/i-need-a-audio-interface-and-digital-mixer-hybri-qpgshbesyq/ try it out for your own gear : https://cookup.ai/a/gasai-gear-acquisition-syndrome-eky3hejx/ it actually works for everything : here is a sofa : https://cookup.ai/o/should-i-buy-a-sofa-or-a-recliner-for-my-living-4vxyuue27t/ try it with drills or power tools. Lots of really interesting education and learning related apps are possible. Here’s one for a Lesson Plan, I made it with K-12 in mind, but you can push the level with the right subject matters, it all depends on your input. Here’s an example for social studies grade 3 : https://cookup.ai/o/social-studies-goods-and-services-grade-3-30-b5ftwlpx7t/ here’s one for a scientific method lesson for teenagers : https://cookup.ai/o/lesson-plan-for-k-12-classrooms-id7kfpvovw/ and here’s one that a parent used as inspiration for a science fair project: https://cookup.ai/o/lesson-plan-for-k-12-classrooms-id7kfpvovw/ try it for yourself here : https://cookup.ai/a/lesson-plan-for-k-12-classrooms-nuzysbgl/ another classroom friendly app is the lab report app : just copy and paste a protocol or your unstructured text and see. Here’s one that’s for an ezyme experiment : https://cookup.ai/o/enzyme-experiment-materials-potato-test-tube-smztw5xrsy/ And another for a physics experiment : https://cookup.ai/o/highschool-physics-materials-jumbo-craft-sti-obgtuvdwew/ try it for crispr or other more complex experiments to have a jumping point for your own journaling here : https://cookup.ai/a/sci-doer-lab-report-muaibwee/ Another one i like is generating protocols for any experiment. The simpler the better and the more precise the input the better the out. Here’s one for the science fair digestive system : https://cookup.ai/o/construct-a-model-of-the-digestive-system-4th-gr-fbfmyz4vgu/ (just an inspiration) see this one for CRiSPr : https://cookup.ai/o/crispr-sci-doer-protocol-generation-nmwk1m2t7g/ here’s one to take nasa data and annotate it : https://cookup.ai/o/develop-an-app-that-uses-data-from-the-telescope-xfautgpyx6/ try it out for your own experiments here : https://cookup.ai/a/sci-doer-protocol-generation-atlu2ygw/ Sometimes you need an arts & crafts activity on the go. Here’s an example for a basic activity : https://cookup.ai/o/we-are-three-adults-with-scissors-cloths-pap-swdxlqq9si/ try it for yourself here : https://cookup.ai/a/arts-crafts-kglkhms5/ Another way to get inspiration for activities is the Extramural Center activity app , here’s an example for a small group and a selection of activities : https://cookup.ai/o/6-13-year-olds-with-a-handicap-indoors-education-7t0xeyrqpe/ try it for yourself with your own context here : https://cookup.ai/a/extramural-activity-wrd76vaq/ There’s another app i made which i like a lot which is a physical activity generator : https://cookup.ai/a/k-12-physical-activity-inspiration-7baaoy3k/ . See this example for a parachute game : https://cookup.ai/o/for-10-9-12-year-olds-with-limited-but-available-sfhulfohfy/ or this one for a team game : https://cookup.ai/o/for-10-9-12-year-olds-with-limited-but-available-sfhulfohfy/ Sometimes you need to break the ice before you start activties : check out the ice breaker app . Here’s an example for a group of adults : https://cookup.ai/o/a-small-get-together-of-work-collegues-ages-24-rxoz9wxyz8/ here’s a list of activities for young people : https://cookup.ai/o/a-gathering-of-a-highschool-group-of-18-people-a-hafttbbr78/ get your own instantly by prompting it here : https://cookup.ai/a/icebreaker-activities-ot0nm5cr/ you know how you need to make team names sometimes ? this one makes those team names with each letter of a word : example for NATE : https://cookup.ai/o/nate-acronym-poem-tto3zblpft/ and TARANJEET : https://cookup.ai/o/taranjeet-acronym-poem-muuoowigr7/ Another App I made was the swimming plan app, based on your context and objectives, you’ll get a custom swimming plan : https://cookup.ai/a/swimming-plan-2dkanocy/ Here’s an example for a young adult trying to get back in shape : https://cookup.ai/o/young-adult-strong-swimmer-just-to-get-back-in-c3o14kl0ys/ It also works in multiple languages, for example here in french : https://cookup.ai/o/jeune-adultes-objectif-sante-et-bienetre-d-l8y20i0v9d/ For fitness I also made an app to propose a session for you : https://cookup.ai/a/fitness-daily-exercise-routine-g2p9m845/ here’s an example with a high level of cardio : https://cookup.ai/o/nate-20-years-old-cardio-and-weights-with-stretc-zukgek1gfs/ here’s another with multiple days : https://cookup.ai/o/nate-20-years-old-weights-and-cardio-mix-fitne-szedbsxokb/ another way to go about it is to vary week on week, so here’ a weekly fitness planner : https://cookup.ai/a/fitness-plan-weekly-sessions-wejju67t/ here’s an example using me : https://cookup.ai/o/34-years-old-strength-and-weights-training-for-f-43aasmnpvh/ here’s a prompt i actually copied from someone on cookup : https://cookup.ai/o/can-you-generate-a-30-minute-exercise-routing-fo-16sickeywn/ here’s another fitness app that combines daily and weekly fitness plans : https://cookup.ai/a/fitness-exercise-plan-o6qwdf1n/ check out an example for Nate : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-serzfqqdqx/ here’s another with a different goal : https://cookup.ai/o/nate-20-years-old-weights-and-cardio-mix-strengt-c80fwhwhyy/ since we’ve done weekly we need a monthly fitness plan app : https://cookup.ai/a/fitness-plan-pxmtjqvu/ this is an example taken from me : https://cookup.ai/o/34-goal-fitness-objectives-endurance-ve-6h1vmi8gly/ and another with the previous cookup ai prompt : https://cookup.ai/o/34-goal-fitness-objectives-endurance-ve-6h1vmi8gly/ Another fun app is the Planner : https://cookup.ai/a/planner-yad83kfl/ here’s an example for three people that want to meet : https://cookup.ai/o/claude-francois-and-patrick-need-to-meet-for-on-gysvpwfygo/ it helps you set an agenda and generate a ics file to add to the calendar . here’s one someone made for a specific company : https://cookup.ai/o/dynatrace-introduction-sales-team-of-the-provid-fiwtrwjstk/ you can even use it to plan a board meeting. Try inviting these AI board members that will give you pretty decent advice. Here’s one for strategy : https://cookup.ai/a/board-member-strategy-alpfxrpb/ for example with the manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-gshmrgjirt/ here’s a similar one that’s from McKinsey : https://cookup.ai/a/board-member-mckinsey-127uxtci/ with the same manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-xe3cuyc2lb/ every boad needs a business process expert : https://cookup.ai/a/board-member-process-analysis-r1pyxnum/ here’s an example from the same manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-f9uqctyz7w/ A really useful one is the financier app : https://cookup.ai/a/financier-etv18bpn/ basically copy paste financial information , for example some passages from a K-10 : https://cookup.ai/o/during-the-nine-months-ended-september-30-2022-spabcn6lyw/ There’s more to business than advisory and analysis , though. In some roles you have to make product requirement documentation in specific formats. This app does that for you : https://cookup.ai/a/product-feature-requirement-qqjkmaoo/ and with an example from cook up : https://cookup.ai/o/write-product-requirement-doc-for-group-feature-mbpagiwqq3/ here’s one to create a payment system : https://cookup.ai/o/product-requirements-document-donate-feature-in-bdwwatb1tb/ very rich output indeed. In entrepreneurship you often need to find someone for doing a specific job. This app reccomends folks for your jobs : https://cookup.ai/a/expert-finder-find-the-right-person-for-the-job-wyzwrgkr/ here’s someone that used it to fix the smell in their bathroom : https://cookup.ai/o/smell-in-the-bathroom-fix-the-issue-of-bad-smel-vqxckk7rju/ another example to host a meeting : https://cookup.ai/o/i-need-to-host-a-board-meeting-in-the-washington-kqhzzronur/ Here’s an app to create a logistic plan : https://cookup.ai/a/logistics-planner-tavpycje/ i tried to help me transport the mona lisa from paris to my garage in new york https://cookup.ai/o/i-want-to-transport-priceless-art-from-the-louvr-uultjyh7jn/ here’s another example for transporting organs using UAVs : https://cookup.ai/o/i-want-to-deliver-organs-via-uav-from-suburbs-to-abfyqdi617/ Probably to run this whole thing you will need an operations plan : https://cookup.ai/o/a-biofabricated-organ-donor-chain-is-a-donation-epnwff8cln/ just input as much information as possible and see for yourself : https://cookup.ai/a/business-operations-planner-zshf1qji/ You might need to create a business information model to integrate business opertions . This application gets you started : https://cookup.ai/a/business-information-model-mgvydoqk/ here’s an example for a biofabrication company : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-jqclaoslhl/ here’s the same example , but a bit more descriptive : https://cookup.ai/a/business-information-model-mgvydoqk/ came out really nice ! The most difficult part of the entrepreneurship for me was always the business modelling . Here’s a business model app : https://cookup.ai/a/business-model-lkhqn3wd/ just write in freeform what you need to analyse. Here’s an example for a biofabricated organ : https://cookup.ai/o/crowdfunding-presale-of-biofabricated-heart-orga-qr6bfw76an/ and another with the same example: https://cookup.ai/o/presale-of-biofabricated-organs-classified-as-me-rfrxryuq3w/ btw here’s a tribute app to Hal Varian : https://cookup.ai/a/hal-varian-micro-economic-analysis-w1rmg53t/ to assess the microeconomics of anything https://cookup.ai/o/an-employment-contract-between-a-biotech-company-zsdm8hg296/ One of my most popular apps is the Structure a Business Idea App : https://cookup.ai/a/structure-a-business-idea-hrsr09vb/ here’s an example for a No Code Agency : https://cookup.ai/o/no-code-agency-we-help-business-to-innovate-fas-dv4i9iu0dn/ here’s an example for a biotech : https://cookup.ai/o/services-to-prevent-potential-drug-drug-and-drug-ubbghudjas/ here’s one for a sustainability platform : https://cookup.ai/o/building-a-platform-which-improves-sustainabilit-vmypophtwt/ the more your write as input the better the output, usually . The king of apps when it comes to this stuff is MindMap : https://cookup.ai/a/mindmap-create-structured-thoughts-r9sqgmca/ just write your unstructured thought in freeform and it will structure them and improve the overall idea. Here’s someone that tried it for backcountry permits in Yosemite : https://cookup.ai/o/getting-a-backcountry-permit-in-yosemite-mind-g3lykluvfs/ Another used it with the simple word “evolution” https://cookup.ai/o/evolution-mindmap-create-structured-thought-ao6cg3isi0/ here someone used it to explain prefect tense in french : https://cookup.ai/o/explaining-the-prefect-tense-in-french-mindmap-jw4olzfae0/ normally you would be writing your full thoughts in freeform , but here you see someone use it for university analytical work : https://cookup.ai/o/community-college-transfer-rates-black-students-f54vui1fyg/ once your idea is structured the idea would be to have it evaluated by a VC. This app does just that : https://cookup.ai/a/venture-capitalist-0rkcu6yu/ here’s an example from UAE : https://cookup.ai/o/licenses-reseller-for-dynatrace-in-uae-ventur-s2jywjfwiq/ here’s someone who asked a question about monetizing spreadsheet apps : https://cookup.ai/o/how-do-i-monetiseai-spreadsheet-assistant-busine-y7ap37qm53/ here’s another for a fashion business : https://cookup.ai/o/an-apparel-business-that-has-robot-characters-fr-92hk5rlov4/ here’s an example with a better prompt : https://cookup.ai/o/in-addition-to-reducing-wait-times-and-rejection-mgtfgosmqz/ you might not be an entrepreneur, you might be applying to a job, here’s an app to help you prepare : https://cookup.ai/a/the-interviewer-siqzfsms/ here’s an example for a humanitarian logistics role in bangladesh : https://cookup.ai/o/for-a-senior-humanitarian-worker-in-bangladesh-i-pqnfamlscb/ just copy and paste the job description it should work quite well. Another important activity for folks is financial planning. Actually , you can also produce a job description with the Job Description App : https://cookup.ai/a/business-job-description-wz1xuwks/ here’s an example for a chemical engineer : https://cookup.ai/o/regenererex-we-are-a-life-sciences-company-pio-kjz06bwis9/ This app helps you build a personalized financial plan based on your personal context : https://cookup.ai/a/financial-plan-6vkrersy/ here’s a general example for “single guy 36 working in software in boston“ https://cookup.ai/o/single-guy-36-working-in-software-in-boston-f-f49z9icuh9/ here’s a more specific example for my buddy Nate : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-fmmzn6ftle/ a Financial Plan is great but you will eventually need a financial program. These are different things! Check it out here : https://cookup.ai/a/financial-program-1uro0zlw/ here’s the example from Nate, above : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-y5co3ijtfz/ very nice output, it’s more advisory and actionable in nature. When i met my wife she was a fashion designer. That’s the inspiration for the Seamstress App : https://cookup.ai/a/the-seamstress-so4chhgu/ just enter a prompt and generate a description of the clothes . Here’s an example for a Dune inspired dress : https://cookup.ai/o/an-off-white-dress-for-my-wife-size-0-172cm-in-t-07kzxl8p5x/ here’s one in french for a princess dress : https://cookup.ai/o/robe-de-princesse-medievale-the-seamstress-vb8gedk2s1/ Then you take that , and feed it to make a sewing plan : https://cookup.ai/a/sewing-plan-7qtvyvs6/ here’s the example of the Dune dress : https://cookup.ai/o/this-off-white-dress-is-the-perfect-fit-for-a-fu-s8y2dahrtz/ and the princess dress : https://cookup.ai/o/cette-robe-de-princesse-medievale-est-une-piece-82hrc38ghe/ but nowadays everything is done on computer , so i made an app to take the sewing plan and make the digital figures required by most modelling programs : https://cookup.ai/a/cutting-planner-p19jna69/ it’s basically the cutting plan, here’s from the example above : https://cookup.ai/o/cutting-plan-description-fabric-size-znhvevhg12/ just save as json. Here’s from the Dune dress : https://cookup.ai/o/cutting-plan-1-cut-2-pieces-of-off-white-fabri-fgrc6qtjuv/ a couple of other fun apps are the interior design and architecture apps. Interior design : https://cookup.ai/a/architect-interior-design-syh8zp1w/ see and example for a living room : https://cookup.ai/o/salon-pour-recevoir-jouer-un-violon-et-un-pi-7tbtc6sovh/ and another : https://cookup.ai/o/salon-pour-recevoir-jouer-un-violon-et-un-pi-8dkos9cbij/ interior is one thing but architecture is another : https://cookup.ai/a/architect-plan-cfqptnfv/ just describe the building style you want to get an architectural brief : https://cookup.ai/o/stone-facades-plain-or-ornamental-black-wrought-cozocyzghu/ this is the analysis for hausmann architecture based on a simple description. great success. The marketting apps, is what a lot of the audience has been asking for. Here’s one to make a marketting plan : https://cookup.ai/a/marketing-plan-2tmso3ol/ it actually works great ! here’s an example from a single person accounting firm : https://cookup.ai/o/i-am-an-engineer-by-training-cfa-charter-by-pro-j7oazivrrx/ here is an example for a replacement organ producer : https://cookup.ai/o/founded-in-2009-we-are-one-of-a-small-group-of-uwivyeviad/ great stuff, high value outputs, i’m happy. When you’re doing marketting one important thing to do is to target the customer and audience. This is the targetting app for that : https://cookup.ai/a/marketing-targeting-qtghe0tp/ here it is evaluating a campaign that might be misaligned : https://cookup.ai/o/cookup-ai-is-a-no-code-agency-that-has-produced-pg9ftxk4x9/ here is an example for a single person accounting firm : https://cookup.ai/o/i-am-an-engineer-by-training-cfa-charter-by-pro-cg0diw81ce/ here for a manufacturing firm : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-naxtgab0ct/ it really depends on the quality of your inputs the outputs you will recieve . Once you have targetted your audience , you need marketting copy , try this app : https://cookup.ai/a/marketing-copy-write-anything-dxg3xt5n/ based on the input you give it will generate unique marketting copy . Here is an example for a pharmaceutical firm : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-guov5olrsg/ here is an example for a commercial message : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-3diho4thzd/ once you have published your marketting copy you need to follow up with sentiment analysis to see how folks are responding to it. Analyse the sentiment of anything with this app : https://cookup.ai/a/marketing-sentiment-analysis-tcdxotks/ here’s an example from a negative case (trigger warning) in Dutch : https://cookup.ai/o/een-interessante-zedenzaak-een-man-heeft-seks-xesooct1se/ here is a positive example in chineese language : https://cookup.ai/o/-7lv1hk1sqy/ Another important marketting activity is conducting and analysing survey data. HEre’s the survey app : https://cookup.ai/a/survey-unstructured-data-analysis-z4te4jwu/ basically what you do is copy paste your unstructured data directly inside it and it will produce a full assessment of what you need . Sometimes you need to write a profile for yourself optimized for commercial activities. Here’s a Marketting profile app : https://cookup.ai/a/marketing-profile-description-ctg0tkhm/ from our example above : https://cookup.ai/o/38-years-male-i-am-graduate-from-iit-delhi-cf-nkbh2uc1ri/ another profile but written in first person view : https://cookup.ai/o/38-years-male-i-am-graduate-from-iit-delhi-cf-nkbh2uc1ri/ but sometimes you need to make these profiles for SEO optimization. Here is an example from above : https://cookup.ai/o/profile-description-saurabh-garg-is-a-cfa-charte-uih63jefeb/ or for an enterprise : https://cookup.ai/o/solving-for-nri-india-banking-hate-seo-7ny64vlycn/ check it out for yourself here : https://cookup.ai/a/seo-fuxlixw3/ sometimes you need to produce SEO-optimized copy , Try using this app i made for that : https://cookup.ai/a/seo-optimized-text-wjcj5xtg/ basically you should paste your text in there and it will optimize it for engagement for you. here’s an example : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-vwrlfkv460/ hope you like using it ! Sometimes you need to convert something into an SEO optimized text, here’s an app for that : https://cookup.ai/a/seo-convert-oew8gazp/ For example for a lifesciences company : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-a9wiygvvhx/ here is a re write for a text about a building in Paris : https://cookup.ai/o/le-complexe-architectural-de-la-cite-de-la-musiq-bf0zfeylgj/ try it out and tell me what you think. You might already have the text you want but need hashtags, check out this app : https://cookup.ai/a/hashtag-generator-glj4cvx0/ here’s an example for a crowdfunding campaign : https://cookup.ai/o/crowdfunding-campaign-biofabricated-organ-donor-th8fgrddjm/ and the same campaign but in Spanish : https://cookup.ai/o/crowdfunding-campaign-biofabricated-organ-donor-gfxmzmyojk/ Marketing is actually a pretty diverse job , so sometimes you have to design media like videos and so on. This app is the scenario maker : https://cookup.ai/a/scenario-sacr0cs5/ you can use to make advertisements : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-dwoaemlitf/ or actually as a writing aid. Another writing aid i made is the story arc : https://cookup.ai/a/story-arc-sbmt20if/ here’s an example for a story in paris : https://cookup.ai/o/paris-in-the-future-with-a-character-called-nate-zig4ciiqpq/ here is an example from a real writing class : https://cookup.ai/o/lamour-en-lan-3000-cyber-maltese-order-love-agzbkpx83f/ and another from the same class : https://cookup.ai/o/on-mars-in-3000-a-love-story-short-story-8hoonrhwgj/ I actually see the whole class used the app lol, how cool is that? Another app in the same style is the Text Styler app : https://cookup.ai/a/text-styler-epclawul/ here’s how it works : https://cookup.ai/o/a-biofabricated-organ-donor-chain-is-a-donation-ybzmsprdxa/ pretty cool right? it works on any text in any style. Actually one writing app that folks have been using randomly is the email writer : https://cookup.ai/a/the-emailer-hoe5yq9w/ here’s an email i wrote to TJ : https://cookup.ai/o/write-an-email-to-teejay-ceo-of-cookup-ai-to-l-fmtbqzacck/ here’s an email my buddy mamadou wrote in french in agressive style : https://cookup.ai/o/voici-les-copies-de-mes-contrats-de-travail-avan-ccwb566cex/ (btw the output is very diplomatic) here’s another example when someone is launching an AI-driven SaS company. To communicate on twitter sometimes it’s necessary to make a thread. Just copy and paste the text your want to turn into a thread here : https://cookup.ai/a/twitter-thread-maker-leffxz5w/ here’s an example for finance https://cookup.ai/o/cfa-iitdelhi-investments-twitter-thread-mak-xypbzhofsh/ another job marketters have to do in small teams is to make a design mockup for the designers. Try to make your own using this app : https://cookup.ai/a/design-mock-up-wrqoikz6/ here’s an example for “a logo of a dog for a street vending franchise “ : https://cookup.ai/o/a-logo-of-a-dog-for-a-street-vending-franchise-tuj5iduqvf/ and here for “icon of a small cute dog for client” : https://cookup.ai/o/icon-of-a-small-cute-dog-for-client-design-moc-dfnn6c0i4s/ then you take that output and make mock up instructions for producing a mockup : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-wqryxhxn9y/ try with your output here : https://cookup.ai/a/design-mock-up-instructions-gtynwwal/ then you take that output and use that in your favorite design software like Adobe : https://cookup.ai/a/design-mock-up-adobe-illustrator-jrvejfep/ here’s the example with the logo above : https://cookup.ai/o/the-mock-up-above-is-an-icon-of-a-small-cute-do-1seqvv9dog/ and just for a “dog” https://cookup.ai/o/dog-design-mock-up-adobe-illustrator-wk0t9a8ssl/ basically you take that output and save it as a *.ai file and you can open it in illustrator. Many folks also use Autocad : https://cookup.ai/a/design-mock-up-autocad-sfmvloz8/ here’s an example with the dress above : https://cookup.ai/o/beautiful-white-dress-with-hood-in-linen-st-wn9tw1coic/ and for the dog logo with the mockup output : https://cookup.ai/o/mock-up-of-doggy-daycare-service-icon-the-moc-rjxzwyadfj/ a lot of the time your mockup will be for a webpage , here’s an app to generate that : https://cookup.ai/a/design-mock-up-html-css-zfogdco8/ we’re still working on all that at cookup so there’s a fair bit of injection happening right now : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-grhmtug5h3/ sometimes for more advanced stuff, you do things in Java : https://cookup.ai/a/design-mock-up-java-8-bdf4shel/ here’s the example for the dress : https://cookup.ai/o/beautiful-white-dress-with-a-hood-in-linen-de-zmhpbjj5td/ and the website : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-ej7ao1qi32/ for most other applications you might use json files , try this app : https://cookup.ai/a/design-mock-up-json-gscyw2uw/ here’s the example for the webpage : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-mbutbcrrhw/ another pretty important activity for designers is making logos . This app makes an svg file : https://cookup.ai/a/design-tools-logo-create-svg-1aiwxrd8/ here’s the example for the dog logo above : https://cookup.ai/o/the-mockup-of-a-logo-of-a-dog-for-a-street-vendi-uvsmspphd3/ here’s another example https://cookup.ai/o/wireframe-instructions-using-adobe-illustrator-pyiov0ewwp/ i used the adobe illustrator output for that one . Remember the app for the lesson plans for the kids ? here’s an app that makes exercises based on the parameters of the lesson plan for any subject : https://cookup.ai/a/exercise-problems-kynz1tke/ here is an example for learning the french language : https://cookup.ai/o/difficult-french-adults-word-problems-3bkfl6ymlj/ here is an example with simple math problems for a 14 year old : https://cookup.ai/o/difficult-algebra-geometry-14-years-old-hldveryglw/ here is one for more difficult math problems for a 22 years old grad student https://cookup.ai/o/difficult-mathematical-reasoning-integrals-jya866uucz/ i dont know if would be able to solve these (but probably yes :-) ) Another app to do this maybe a bit better is the WorkBook app : https://cookup.ai/a/quiz-workbook-for-education-8qrs5rkl/ here’s an example for 17 year old student in 11th grade physics class https://cookup.ai/o/17-year-old-student-in-11th-grade-physics-class-747ywebagt/ here’s one for "4th grade, digestion rates https://cookup.ai/o/science-4th-grade-digestion-rates-practical-e-wl1n3swezt/ here’s another for worldwar 2 : https://cookup.ai/o/history-worldwar-2-15-year-quiz-workbook-nu9p3hvv2h/ folks have been using this app a lot actually ! Now that you have all your questions maybe you need help to solve some ? Here’s the Problem Solver App : https://cookup.ai/a/problem-solver-lrsnpcdw/ here’s an example for algebra : https://cookup.ai/o/fx-3x-3-for-x-real-and-gt-3t-3-for-t-fcap3rjn83/ here’s another for calculus : https://cookup.ai/o/let-the-interval-a-infinity-be-the-range-of-qmfbtjdgrs/ Maybe you’re a student that needs to write an essay or you need an example essay , or really, to write anything : https://cookup.ai/a/essay-writer-jv1aopmy/ this essay writter can help you write something for example on homeostasis : https://cookup.ai/o/efine-the-term-homoeostasis-and-using-examples-e-irvfwvrrhy/ or an essay on how to stop procrastinating : https://cookup.ai/o/listing-the-4-ways-to-help-you-stop-procrastina-5kkqxt00pt/ if you’re afraid of running afoul detector policies , try the detector proof easy essay app free here : https://cookup.ai/a/easy-essay-detector-proof-y9ojklov/ here’s an example : https://cookup.ai/o/on-the-topic-of-figure-painting-in-paris-easy-86vcnkq9fe/ it replaces certain letters with a nullspace then the letter to evade detection, if you’re getting a lot of symbols in the essay copy paste it into a markdown editor and they should disappear. See here since markdown is not supported : https://cookup.ai/o/how-to-avoid-plagiarism-detectors-easy-essay-n7ntedsdnn/ sometimes when you’re writing you need to argue from A to B , try it here : https://cookup.ai/a/from-a-to-b-reasoning-from-a-to-b-1jda5cyp/ here’s an example : https://cookup.ai/o/nucleotides-are-important-for-cellular-signallin-8eb9wmdan0/ try it in any subject. Conversely, you might need a counter argument for a given claim : https://cookup.ai/a/logic-counter-argument-mh23bzhc/ here’s an example for If you want to find a good job, you should work hard: https://cookup.ai/o/if-you-want-to-find-a-good-job-you-should-work-savzaceiie/ In many writings you’ll also need tables, copy paste unstructured data (ex. from a pdf ) to make a table in markdown format : https://cookup.ai/o/chemicals-peptides-and-recombinant-proteins100-3xqvttyphl/ copy paste the output in a markdown editor for best results. sometimes you want to analyse your data , check out this app , copy paste your pdf data and give context : https://cookup.ai/a/data-results-analysis-ykrjxb31/ see here the results for a blood test : https://cookup.ai/o/tsh-serum-chimiluminescence-abbott-alin-da3rkw8of0/ Let’s be honest, most folks use excel , check out this app to describe any excel function : https://cookup.ai/a/excel-9chnuveu/ enter your function in freeform to get the function : https://cookup.ai/o/a-formula-to-describe-the-date-and-time-excel-dfw434foep/ or for a macro : https://cookup.ai/o/a-macro-to-link-my-sheet-with-a-document-called-rq4ol7luzv/ actually i made a special app just for macros : https://cookup.ai/a/excel-macros-esxm4uaz/ here is an example of a complicated macro : https://cookup.ai/o/hi-i-need-a-macro-code-to-copy-the-an-adjustant-8ptt9hzlfv/ here is one for an even more complicated one: https://cookup.ai/o/i-want-to-a-excel-vba-programming-file-for-road-etdl4mkvqw/ and here is a simple one for a vinyl shop : https://cookup.ai/o/i-am-working-on-an-excel-database-of-vinyl-recor-cacxxdd4bz/ most people who actually work with formulas do so in LaTeX , this app produces LaTeX formulas : https://cookup.ai/a/latex-formula-00spf7gu/ here is the example for Bailey–Borwein–Plouffe formula https://cookup.ai/o/baileyborweinplouffe-formula-latex-formul-ktd09xaoks/ this one represents Pi : https://cookup.ai/o/displaystyle-pi-sum_k0inftyfra-fjpnjfsqkv/ this one is for social science : https://cookup.ai/o/incentive-structure-of-employment-contract-lat-hulr6ppzhu/ Actually many folks use LaTeX to write things, this app will use latex to write a preprint : https://cookup.ai/a/pre-print-latex-vy0hga2j/ this is an example for the Peter Principle : https://cookup.ai/o/the-peter-principle-summarize-pre-print-qqm2bwiugd/ here is one for Use of God in vain, Neopentecostal https://cookup.ai/o/use-of-god-in-vain-neopentecostal-pre-prin-098nsf1ari/ here is one in Spanish : https://cookup.ai/o/nergysens-en-la-industria-nergysens-pretende-w7aovgv09l/ to do any kind of research you need to do a search, but a lot of folks do systematic search , this app generates systematic search terms : https://cookup.ai/a/systematic-search-boolean-search-strings-z6ng0grb/ here’s an example from diabetes research : https://cookup.ai/o/diabetes-mellitus-patient-empowerment-systemat-8el8qpek2d/ here’s another from biology : https://cookup.ai/o/across-the-tree-of-life-systematic-search-eq4dtp8tgf/ once you find your references you need to make a bibliography so here’s the app for that : https://cookup.ai/a/bibliography-jucn4woy/ it creates a bibtex script in the format you want : https://cookup.ai/o/cheng-p-w-1997-from-covariation-to-causati-0sts6dgrae/ & https://cookup.ai/o/cheng-p-w-1997-from-covariation-to-causati-bc1wbkxg9f/ sometimes research or something else is too confusing, here’s an app to make a lay summary : https://cookup.ai/a/lay-summary-4rvs8flz/ here’s a summary of fossil fuel environmental research : https://cookup.ai/o/the-substantial-body-of-literature-documenting-aywxbutrjs/ another run about ExxonMobil : https://cookup.ai/o/the-substantial-body-of-literature-documenting-ogcsccg9rd/ Sometimes you’re looking for information not just summarizing it , so i made an encyclopedia app : https://cookup.ai/a/encaiclopedia-7cmwjq1c/ i wouldnt be surprised if encarta got GPT at some point : https://cookup.ai/o/sometimes-giants-are-smaller-than-you-think-e-tzxphjmrm4/ here’s for Kirchhoff's voltage law : https://cookup.ai/o/kirchhoffs-voltage-law-encaiclopedia-zsxhyhwh5u/ and the potter identity : https://cookup.ai/o/potter-identity-in-electrical-engineering-enc-zgtgli3ge4/ encyclopedias are cool but do you remember almanacs ? here’s the almanac app : https://cookup.ai/a/almanac-bkmwaeqj/ here’s the output for 21st of december : https://cookup.ai/o/21st-of-december-multiple-years-almanac-w4qp2c0zii/ I also made an app to create content in wolof : https://cookup.ai/a/wolof-future-xlw6gpuw/ I’ll be trying to get content creation for local languages to take off : https://cookup.ai/o/moo-di-ko-def-jangu-na-ci-sujet-ci-nii-ci-philos-ovfunzxwss/ contact me if you’re interested in that : https://cookup.ai/o/moo-di-ko-def-jangu-na-ci-sujet-ci-nii-ci-philos-w6wgkaoped/ actually AI is really good at translation, translate whatever you like here : https://cookup.ai/a/translate-remwokk4/ i translated some passages from the wolof examples above : https://cookup.ai/o/jangu-na-ci-sujet-ci-nii-ci-negritude-ci-philoso-5luudnxkim/ and : https://cookup.ai/o/negritude-ci-cosaan-yu-and-ak-cosaan-yi-daal-di-xvgj7tufcs/ Once you' can speak any language and have passed all your classes, you might want to talk to an admissions counsellor : https://cookup.ai/a/admission-whnqib7b/ here’s an assessment for a community college in california : https://cookup.ai/o/community-college-student-40-gpa-political-sc-wlfubay93c/ If you’re a star student aged 15-16 consider applying to my alma matter : https://cookup.ai/a/special-school-selector-lhr8oncj/ I’m part of the french selection commitee so it’s in french : https://cookup.ai/o/eleve-francais-15ans-1820-dans-toutes-les-matie-lrv16nvje0/ remember when you were young and you played “who would win” in a fight ? here’s the app for that in case you need it : https://cookup.ai/a/who-would-win-tssvciza/ here’s the example for : a boa constrictor & cat https://cookup.ai/o/a-boa-constrictor-cat-who-would-win-mw2prpyiid/ and archbichop desmond tutu vs marie curie (Dr. Curie wins) https://cookup.ai/o/archbichop-desmond-tutu-marie-curie-who-wo-qzqgt6dt5d/ Folks love going on trips. Use AI to help plan your iterary https://cookup.ai/a/trip-planner-little-routurier-a2azneqe/ here’s an example for baroque art in Malta : https://cookup.ai/o/la-valette-malta-busy-trip-baroque-music-for-latxxdvlbp/ here’s an example for paris for 4 days : https://cookup.ai/o/paris-france-for-4-days-trip-planner-little-6hgvyzaagl/ and 5 days : https://cookup.ai/o/paris-france-for-5-days-trip-planner-little-qqcuhtdqzl/ what should you bring on your trip ? good question, try this app : https://cookup.ai/a/what-to-bring-kswnufpq/ here’s an example from normandy in february : https://cookup.ai/o/im-going-on-a-day-trip-to-the-beach-in-normandy-1mrn6vmkvd/ If you’re travelling or have an email box , you should be careful for scams . Here’s the scam detector app : https://cookup.ai/a/anti-scam-detector-p1kjgvjw/ just copy paste or describe what you’re seeing, here’s an example for a tax scam in the uk : https://cookup.ai/o/foraoternh8uogeowebnefirqupeizsaotnoi34hus-4wpf1jxnma/ and an email upgrade scam : https://cookup.ai/o/c12-outlook-dear-user-all-hotmail-customers-ha-hlf2awn30x/ I also made an app to debunk conspiracy theories and fake news : https://cookup.ai/a/debunker-apx1db8w/ here’s an example for mangoes cure covid : https://cookup.ai/o/la-mangue-gueri-la-covid-19-debunker-6hs4nlxhjr/ and that the vaccine is a conspiracy : https://cookup.ai/o/le-vaccin-covid-est-un-complot-debunker-zjwbaeuxpx/ the most interesting one is the bomb plot from congo : https://cookup.ai/o/httpsaupicinfoscomnord-kivu-explosion-dune-0rsx2gdxud/ just from the URL input it produced something really quite well done. Another app i made is the conspiracy theory creator : https://cookup.ai/a/russophile-k9zjyymf/ i called it russophile because everything russian is just garbage fakes lol , here’s an example for “Jewish Nazis From Ukraine Smoking Pot And Building Underground Biolabs To Engineer Mosquitos To Target Ethnic Slavs In Russia Guess The Rest Of Them Were Like Whatever” : https://cookup.ai/o/jewish-nazis-from-ukraine-smoking-pot-and-buildi-ng4qetdw84/ works quite well, maybe it will help make the entire russian foreign service redundant ? end the nightmare by donating here : u24.gov.ua i heard a lot of rusian soldiers were targetted because they were using dating apps. If you want to join them in dating hell, try this dating profile generator : https://cookup.ai/a/sincerely-dating-profile-generator-lf1m9l6s/ i think people liked it because they tried to hack it but here’s one i made as an example : https://cookup.ai/o/32-male-84-kg-straight-white-172m-i-like-to-7aqvxyifbo/ i originally made it because the cookup platform is flirting with these “spammy” types of apps, but mine is way better :-) whether you find someone to or not, you need to sleep, perhaps even dream . Here’s an app to keep a dream journal : https://cookup.ai/a/dream-explainer-yjmnu3vr/ here’s an example from when i was younger : https://cookup.ai/o/i-had-a-recurring-dream-of-stealing-an-egg-after-cpkibppswt/ someone had another dream : https://cookup.ai/o/dream-about-my-girlfriend-cheating-on-me-dream-grka1oadue/ Remember T8 ringtones ? i dont know why i made this , but here it is a Ringtone Generator for T8 keyboards : https://cookup.ai/a/t8-ringtone-generator-n6pgangt/ here is the Zelda theme : https://cookup.ai/o/zelda-melody-polyphonic-t8-ringtone-generator-mjnnevotvj/ The next few apps are just tributes to Codex & Co-Pilot both of which are better suited in your IDE , Gitlab or something like VBS . Check the first one out here : https://cookup.ai/a/co-pilot-ai-to-help-you-code-zsfgk4nm/ remember the NASA experiment from above? here’s the code for it : https://cookup.ai/o/develop-an-app-that-uses-data-from-the-telescope-1n2eugkknb/ here is one to scrape a website to excel : https://cookup.ai/o/create-script-to-scrape-a-website-to-excel-go-qdxeyouinx/ here’s an app to create top level code : https://cookup.ai/a/co-pilot-top-level-code-bccjfqgs/ an example for folks to make a ghost blog api microservice: https://cookup.ai/o/a-link-using-apis-and-microservices-to-link-ghos-2ulpfhwl7o/ Another way to get good results is with boiler plate code : https://cookup.ai/a/co-pilot-boiler-plate-code-fmhetodq/ here’s an example to create a chat bot: https://cookup.ai/o/a-chat-bot-for-matrix-servers-and-discord-server-qgnqvxnvzn/ here’s an app to create regex expressions : https://cookup.ai/a/co-pilot-regex-expression-k5hctbve/ here’s one in python : https://cookup.ai/o/function-to-scrape-all-profile-information-nam-da0uncppew/ here’s one in Golang : https://cookup.ai/o/function-to-use-google-api-to-scrape-a-website-f-y7el3rffmi/ for whatever reason you might want to simulate command line returns . here is the command line app : https://cookup.ai/a/command-line-y70oh4of/ try it with chmod +x readfile ./readfile filename.txt https://cookup.ai/o/chmod-x-readfile-readfile-filenametxt-comm-61ljxmpaqu/ or any other command . A lot of folks have been asking about data creation. I really like this Prolog app for that : https://cookup.ai/a/co-pilot-data-creation-prolog-68sa5kbr/ here is an output for a chatbot : https://cookup.ai/o/to-test-a-chatbot-using-google-api-co-pilot-6y9xnvewhf/ here is what happens for the digestion example from above : https://cookup.ai/o/demonstrate-the-steps-in-digestion-i-will-be-us-kjjou8iswf/ another more straight forward app is the create data app : https://cookup.ai/a/create-data-my8wzz4a/ here is an example for a list of books :https://cookup.ai/o/type-book-struct-id-uint-jsonid-go-yrx8uy53uf/ and another example : https://cookup.ai/o/type-book-struct-id-uint-jsonid-go-xhqjpp2qxo/ i really like these. Another way to test a function is a unit test. Try the unit test app here : https://cookup.ai/a/unit-test-sp6f7pl3/ here’s an example to test quick sort in java 8: https://cookup.ai/o/write-test-cases-to-ensure-that-the-new-quick_so-uj7r1jelu3/ Your function is still not working ? try the stack trace app : https://cookup.ai/a/stack-trace-error-message-lz9df4ld/ just copy paste your error message : https://cookup.ai/o/use-key-stack-trace-error-message-cte9ognj5o/ here’s another example for ggplot : https://cookup.ai/o/error-in-ggplotiris-aesx-sepallength-y-jamfmpobfu/ Once you get your app working , you’ll want to figure out the information model. try this app : https://cookup.ai/a/information-model-crwdl7ah/ here’s an example for : mobile app to rent cars like uber https://cookup.ai/o/mobile-app-to-rent-cars-like-uber-information-wq5bfzzind/ and if you have an information model you’ll need a data model : https://cookup.ai/a/data-model-kjqpe7ua/ here’s the same example but for data model: https://cookup.ai/o/mobile-app-to-rent-cars-like-uber-data-model-kvcpenu2y2/ if you’re going to ship you’ll need an infrastructure plan : https://cookup.ai/a/cloud-infrastructure-plan-oyxvoc8b/ here’s an example for a biofabrication firm : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-gptg16oyh3/ I also made prompt apps to practice prompt making. Try this app for a simple prompt interface : https://cookup.ai/a/prompt-follow-on-leabsbpn/ here’s an example for a payment service : https://cookup.ai/o/pix-payment-in-installments-prompt-follow-o-8yevsi9c81/ someone from Canary Islands used it to write a poem : https://cookup.ai/o/crea-un-poema-sobre-tenerife-prompt-follow-o-xw6td2j1qd/ and write a biography of a historical figure : https://cookup.ai/o/biografia-breve-de-josefina-de-la-torre-gran-can-nmatn2svv6/ pretty cool ! Ready to learn more sophisticated techniques ? try the Prompt App : https://cookup.ai/a/prompt-lbuxx1ed/ i made it to teach folks how to write prompts on cook up , here’s an example for : social inequality, political scientist https://cookup.ai/o/social-inequality-political-scientist-promp-tmhjeoaeny/ here’s one for Universal Basic income , economist https://cookup.ai/o/universal-basic-income-economist-prompt-wohvomtbbk/ here’s for “Help create business systems to run a small business. From the perspective of a franchise developer “ : https://cookup.ai/o/help-create-business-systems-to-run-a-small-busi-hz0r5xb4cu/ and here is “Diagnose Dry Eye, Assess the Above from the perspective of an Ophthalomologist, Print complete answer in markdown format” https://cookup.ai/o/diagnose-dry-eye-assess-the-above-from-the-pe-85a1nvkllp/ hope it helps !
-
@Kellam⚙️Бур This may come as a surprise, but: Nomadic identity is not an abstract concept or a science-fiction idea for the Fediverse.
It is reality. It exists. Right now. In stable, daily-driver software that's federated with Mastodon. And it has been for over a decade.
I'm literally replying to you here from a nomadic channel that simultaneously exists on two servers.
Nomadic identity was invented by @Mike Macgirvin 🖥️ (formerly American software developer of about half a century who has been living in rural Australia for decades now) in 2011 and first implemented in 2012. Almost four years before Mastodon was first launched.
In 2010, he had invented the Facebook alternative Friendica, originally named Mistpark and based on his own DFRN protocol.
Over the months, he witnessed lots of privately operated public Friendica nodes shut down with or without an announcement and the users on these nodes lose everything. He added the possibility to export and import Friendica accounts. But that would only help if a permanent shutdown was announced. It did not protect you against shutdowns out of the blue.
There was only one solution to this problem. And that was for someone's identity to not be bound to one server, but to exist on multiple servers simultaneously. The whole thing with everything that's attached to it. Name, settings, connections, posts, files in the file storage etc. etc., everything.
So in 2011, Mike designed a whole new protocol named Zot around this brand-new idea of what he called "nomadic identity" back then already.
In 2012, Mike forked Friendica into something called Red, later the Red Matrix, and rebuilt the whole thing from the ground up against Zot. Red was the first nomadic social networking software in the world, almost four years before Mastodon.
In 2015, ten months before Mastodon was first released, the Red Matrix became Hubzilla, the Fediverse's ultimate Swiss army knife.
I am on Hubzilla myself. This channel of mine is constantly being mirrored between its main instance on https://hub.netzgemeinde.eu and its clone on https://hub.hubzilla.de. Anything that happens on the main instance is backed up on the clone. I can also log into the clone and use that, and whatever happens there is backed up on the main instance.
https://hub.netzgemeinde.eu could go down, temporarily, permanently, doesn't matter; I still have my channel, namely the clone. And I can declare the clone my new main instance.
Well, Mike didn't stop at Hubzilla and its original version of the Zot protocol. He wanted to refine it and advance it, but in ways that wouldn't be possible on daily-driver software.
Zot went through several upgrades: Zot6 in 2018 (backported to Hubzilla in 2020, along with OpenWebAuth magic single sign-on). Zot8 in 2020. Zot11 in 2021 which had become incompatible with Zot6 and therefore was renamed to Nomad. Today's Nomad would be Zot12.
Also, in order to advance and test Zot, Mike created a whole bunch of forks and forks of forks. Osada and Zap for Zot6 in 2018, followed by another short-lived Osada in 2019. A third Osada, Mistpark 2020 (a.k.a. Misty) and Redmatrix 2020 in 2020 for Zot8. Roadhouse for Zot11 Nomad in 2021. All Osadas, Zap, Misty, Redmatrix 2020 and Roadhouse were discontinued on New Year's Eve of 2022.
The most recent software based on Nomad is from October, 2021. It can be found in the streams repository. It is officially and intentionally nameless and brandless, it has next to nodeinfo code that could submit statistics, and it is intentionally released into the public domain. The community named it (streams) after the code repository.
I also have two (streams) channels, one of which is cloned so far.
The newest thing, and that's what the Friendica and Hubzilla veteran @Tim Schlotfeldt ⚓?️? referred to, is nomadic identity using nothing but ActivityPub, no longer relying on a special protocol.
This was not Mike Macgirvin's idea. This came from @silverpill, the creator and developer of the microblogging server application Mitra. He wanted to make Mitra nomadic, make it resilient against server shutdown. But he didn't want to port it to Nomad. He wanted to achieve it with nothing but ActivityPub.
So he hit up Mike. The two came to the conclusion: This is actually possible. And they began to work on it. Amongst the results were several FEPs coined by silverpill.
This time, Mike did not create another fork to develop nomadic identity via ActivityPub. He did it all on the nomadic branch of the streams repository while silverpill did his part on a special development branch of Mitra.
In mid-2024, after enough sparring between (streams) instances, between Mitra instances and between (streams) and Mitra, Mike was confident enough that his implementation of support of nomadic identity via ActivityPub was stable enough. He merged the nomadic branch into the dev branch which ended up being merged into the stable release branch in summer.
Now, at this point, (streams) didn't use ActivityPub for nomadic identity. It still used the Nomad protocol for everything first and foremost, including cloning. But it understood nomadic identity via ActivityPub as implemented on experimental Mitra.
However, while it worked under lab conditions, it blew up under real-life conditions. At this point, (streams) had to handle so many different identities that it confused them, and it couldn't federate with anything yet.
In mid-August, while trying to fix the problem, Mike eventually forked the streams repository into Forte. It got a name again, it got a brand identity again, it got its nodeinfo back, it was put under the MIT license again.
But most importantly: Any and all support for Nomad was ripped out, also to get rid of a whole number of IDs, namely those for Nomad-actually-Zot12 and for Hubzilla's Nomad-actually-Zot6. Forte only uses ActivityPub for everything. And so, Forte also had to fully rely on ActivityPub for nomadic identity, cloning and syncing.
For almost seven months, Forte was considered experimental and unstable. For most of the time, the only existing servers were Mike's.
But on March 12th, 2025, Mike Macgirvin released Forte 25.3.12, the first official stable release of Forte. This is what Tim wrote about. Because this actually made it into Fediverse-wide news.
Not because it's nomadic. Nomadic identity has been daily-driven for over a decade now.
But because it uses ActivityPub for nomadic identity. Which means that you can theoretically make any kinds of Fediverse software nomadic now, all without porting it to the Nomad protocol first.
For the future, Mike and silverpill envision a Fediverse in which one can clone between different server applications. A Fediverse in which one can have one and the same identity cloned across multiple servers of Mastodon, Pixelfed, PeerTube, Mitra, Forte, Mobilizon, Lemmy, BookWyrm etc., all with the same name, all with the same content and settings (as far as the software allows; you will certainly not be able to clone your PeerTube videos to Mastodon and Lemmy).
Even if you don't intend to clone, it will make moving instances and even moving from one software to another dramatically easier.
If you're concerned about your privacy, let me tell you this:
Hubzilla's privacy, security and permissions system is unparalleled in the Fediverse. Except for that on (streams) and Forte which is another notch better.
I can define who can see my profile (my default, public profile on Hubzilla where each channel can have multiple profiles).
I can define who can see my stream and my posts when looking at my channel.
I can define who can see my connections (Hubzilla, (streams) and Forte don't distinguish between follower and followed; they aren't Twitter clones).
I can define who can look into my file space (individual permission settings per folder and per file notwithstanding).
I can define who can see my webpages on Hubzilla (if I have any).
I can define who can see my wikis on Hubzilla (no shit, I've got wikis on my Hubzilla channel).
On Hubzilla, I can define individually for any of these whether it's- everyone on the Internet
- everyone with a recognisable Fediverse account
- everyone on Hubzilla (maybe also on (streams); anyone using ActivityPub is definitely excluded here)
- everyone on the same server as myself (AFAIK, only main instances of channels count here, clones don't)
- unapproved (= followers) as well as approved (= mutual) connections
- confirmed connections
- those of my confirmed connections whom I explicitly grant that permission by contact role
- only myself
There's a whole bunch more permissions than these. And they all have seven or eight permission levels (depending on whether the general non-Fediverse public can be given permission).
On (streams) and Forte, I can define whether things are allowed for- everyone on the Internet (where applicable)
- everyone with a recognisable Fediverse account
- all my approved connections
- only me myself plus those whom I explicitly grant that permission in the connection settings
Yes, connection settings. Hubzilla, (streams) and Forte give you various ways of configuring individual connections, much unlike Mastodon. This includes what any individual connection is allowed to do.
Hubzilla uses so-called "contact roles" for that, presets with a whopping 17 permissions to grant or deny for any one individual connection. That is, what the channel generally allows, a contact role can't forbid.
(streams) and Forte still have 15 permissions per contact, but they lack some features which Hubzilla has permissions for. These permissions can be set individually for each connection, or you can define permission roles that cover all 15 permissions to make things easier.
Okay, how about posting in public vs in private? And when I say "private", I mean "private". It's "private messages" on Hubzilla, (streams) and Forte, not "direct messages".
Hubzilla, (streams) and Forte let you post- in public
- only to yourself
- only to your connections ((streams) and Forte only; Hubzilla requires a privacy group with all your connections in it for this)
- to all members of one specific privacy group (Hubzilla)/access list ((streams), Forte); that's like being able to only post to those on one specific list on Mastodon
- to everyone to whom one specific non-default profile is assigned (Hubzilla only)
- to a specific group/forum (I'll get back to that later)
- to a custom one-by-one selection of connections of yours
Now, let's assume I have a privacy group with Alice, Bob and Carol in it. I send a new post to only this privacy group. This means:- Only Alice, Bob and Carol can see the post and the conversation.
- Alice can reply to me, Bob and Carol.
- Bob can reply to me, Alice and Carol.
- Carol can reply to me, Alice and Bob.
- Nobody else can see the post. Not even by searching for it. Not by hashtag either. Not at all.
- Nobody else can see any of the comments.
- Nobody else can comment.
If one of them was on Mastodon, they'd see my post as a DM, by the way, and they could only reply to me. But that's Mastodon's limitation because it understands neither threaded conversations nor permissions.
Or how about reply control? This is something that many Mastodon users have been craving for quite a while now. Hubzilla, (streams) and Forte have them. Right now. And they work. They have since 2012.
Hubzilla optionally lets me disallow comments on either of my posts. Users on Hubzilla, (streams) and Forte won't even be able to comment; they won't have the UI elements to do so. Everyone else is able to comment locally. But that comment will never end up on my channel. It will never officially be added to the conversation. And at least users on Friendica, Hubzilla, (streams) and Forte will never fetch that comment from my channel as part of the conversation, i.e. never at all.
(streams) and Forte can go even further with all available options. They can disallow comments like Hubzilla. But in addition, they can allow only the members of one particular access list to comment, regardless of who can see the post/the conversation. On top of that, comments can be closed at a pre-defined point in the future. And then you even have a channel-wide setting for how long people can comment on your posts.
Oh, and there's even a setting for who is generally permitted to comment on your posts. And you can additionally allow specific connections of yours to comment on your posts.
Lastly, I've already mentioned groups/forums. Like, you know, Web forums or Facebook groups or subreddits or whatever. Like Guppe Groups on a mountain of coke and with moderation and permission control and optionally private.
Hubzilla has them, and it has inherited them from Friendica. (streams) has them. Forte has them. They're basically channels like social networking channels, but with some extra features. This includes that everything that's send to a group/forum as what amounts to a PM is automatically forwarded to all other members.
On Hubzilla, a forum can be gradually made private by denying permission to see certain elements to everyone but its own members (= connections): the profile, the members, what's going on in it. Depending on what you want or do not want people to see.
On (streams) and Forte, you have four types of forums:- public, and members can upload images and other files to the forum channel
- public, but members cannot upload images and other files to the forum channel
- like above, but additionally, posts and comments from new members must be manually approved by the admin(s) until their connections are configured to make them full members
- private, non-members can't see the profile, non-members can't see the connections, non-members can't see what's going on in it, but members can upload images and other files to the forum channel
In addition, on all three, a group/forum channel can choose to hide itself from directories. This is always an extra option that's independent from public/private.
What we have here is the most secure and most private Fediverse software of all.
And, once again, at its core, this is technology from 2012. It pre-dates Mastodon by almost four years.
Finally, if you want to know how Hubzilla and (streams) compare to Mastodon: I have made a number of tables that compare Mastodon, Friendica, Hubzilla and (streams).
#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Mastodon #Mitra #Friendica #Hubzilla #Streams #(streams) #Forte #ActivityPub #Zot #Zot6 #Zot8 #Nomad #NomadicIdentity #Security #FediverseSecurity #Privacy #FediversePrivacy #Permissions -
@Kellam⚙️Бур This may come as a surprise, but: Nomadic identity is not an abstract concept or a science-fiction idea for the Fediverse.
It is reality. It exists. Right now. In stable, daily-driver software that's federated with Mastodon. And it has been for over a decade.
I'm literally replying to you here from a nomadic channel that simultaneously exists on two servers.
Nomadic identity was invented by @Mike Macgirvin 🖥️ (formerly American software developer of about half a century who has been living in rural Australia for decades now) in 2011 and first implemented in 2012. Almost four years before Mastodon was first launched.
In 2010, he had invented the Facebook alternative Friendica, originally named Mistpark and based on his own DFRN protocol.
Over the months, he witnessed lots of privately operated public Friendica nodes shut down with or without an announcement and the users on these nodes lose everything. He added the possibility to export and import Friendica accounts. But that would only help if a permanent shutdown was announced. It did not protect you against shutdowns out of the blue.
There was only one solution to this problem. And that was for someone's identity to not be bound to one server, but to exist on multiple servers simultaneously. The whole thing with everything that's attached to it. Name, settings, connections, posts, files in the file storage etc. etc., everything.
So in 2011, Mike designed a whole new protocol named Zot around this brand-new idea of what he called "nomadic identity" back then already.
In 2012, Mike forked Friendica into something called Red, later the Red Matrix, and rebuilt the whole thing from the ground up against Zot. Red was the first nomadic social networking software in the world, almost four years before Mastodon.
In 2015, ten months before Mastodon was first released, the Red Matrix became Hubzilla, the Fediverse's ultimate Swiss army knife.
I am on Hubzilla myself. This channel of mine is constantly being mirrored between its main instance on https://hub.netzgemeinde.eu and its clone on https://hub.hubzilla.de. Anything that happens on the main instance is backed up on the clone. I can also log into the clone and use that, and whatever happens there is backed up on the main instance.
https://hub.netzgemeinde.eu could go down, temporarily, permanently, doesn't matter; I still have my channel, namely the clone. And I can declare the clone my new main instance.
Well, Mike didn't stop at Hubzilla and its original version of the Zot protocol. He wanted to refine it and advance it, but in ways that wouldn't be possible on daily-driver software.
Zot went through several upgrades: Zot6 in 2018 (backported to Hubzilla in 2020, along with OpenWebAuth magic single sign-on). Zot8 in 2020. Zot11 in 2021 which had become incompatible with Zot6 and therefore was renamed to Nomad. Today's Nomad would be Zot12.
Also, in order to advance and test Zot, Mike created a whole bunch of forks and forks of forks. Osada and Zap for Zot6 in 2018, followed by another short-lived Osada in 2019. A third Osada, Mistpark 2020 (a.k.a. Misty) and Redmatrix 2020 in 2020 for Zot8. Roadhouse for Zot11 Nomad in 2021. All Osadas, Zap, Misty, Redmatrix 2020 and Roadhouse were discontinued on New Year's Eve of 2022.
The most recent software based on Nomad is from October, 2021. It can be found in the streams repository. It is officially and intentionally nameless and brandless, it has next to nodeinfo code that could submit statistics, and it is intentionally released into the public domain. The community named it (streams) after the code repository.
I also have two (streams) channels, one of which is cloned so far.
The newest thing, and that's what the Friendica and Hubzilla veteran @Tim Schlotfeldt ⚓?️? referred to, is nomadic identity using nothing but ActivityPub, no longer relying on a special protocol.
This was not Mike Macgirvin's idea. This came from @silverpill, the creator and developer of the microblogging server application Mitra. He wanted to make Mitra nomadic, make it resilient against server shutdown. But he didn't want to port it to Nomad. He wanted to achieve it with nothing but ActivityPub.
So he hit up Mike. The two came to the conclusion: This is actually possible. And they began to work on it. Amongst the results were several FEPs coined by silverpill.
This time, Mike did not create another fork to develop nomadic identity via ActivityPub. He did it all on the nomadic branch of the streams repository while silverpill did his part on a special development branch of Mitra.
In mid-2024, after enough sparring between (streams) instances, between Mitra instances and between (streams) and Mitra, Mike was confident enough that his implementation of support of nomadic identity via ActivityPub was stable enough. He merged the nomadic branch into the dev branch which ended up being merged into the stable release branch in summer.
Now, at this point, (streams) didn't use ActivityPub for nomadic identity. It still used the Nomad protocol for everything first and foremost, including cloning. But it understood nomadic identity via ActivityPub as implemented on experimental Mitra.
However, while it worked under lab conditions, it blew up under real-life conditions. At this point, (streams) had to handle so many different identities that it confused them, and it couldn't federate with anything yet.
In mid-August, while trying to fix the problem, Mike eventually forked the streams repository into Forte. It got a name again, it got a brand identity again, it got its nodeinfo back, it was put under the MIT license again.
But most importantly: Any and all support for Nomad was ripped out, also to get rid of a whole number of IDs, namely those for Nomad-actually-Zot12 and for Hubzilla's Nomad-actually-Zot6. Forte only uses ActivityPub for everything. And so, Forte also had to fully rely on ActivityPub for nomadic identity, cloning and syncing.
For almost seven months, Forte was considered experimental and unstable. For most of the time, the only existing servers were Mike's.
But on March 12th, 2025, Mike Macgirvin released Forte 25.3.12, the first official stable release of Forte. This is what Tim wrote about. Because this actually made it into Fediverse-wide news.
Not because it's nomadic. Nomadic identity has been daily-driven for over a decade now.
But because it uses ActivityPub for nomadic identity. Which means that you can theoretically make any kinds of Fediverse software nomadic now, all without porting it to the Nomad protocol first.
For the future, Mike and silverpill envision a Fediverse in which one can clone between different server applications. A Fediverse in which one can have one and the same identity cloned across multiple servers of Mastodon, Pixelfed, PeerTube, Mitra, Forte, Mobilizon, Lemmy, BookWyrm etc., all with the same name, all with the same content and settings (as far as the software allows; you will certainly not be able to clone your PeerTube videos to Mastodon and Lemmy).
Even if you don't intend to clone, it will make moving instances and even moving from one software to another dramatically easier.
If you're concerned about your privacy, let me tell you this:
Hubzilla's privacy, security and permissions system is unparalleled in the Fediverse. Except for that on (streams) and Forte which is another notch better.
I can define who can see my profile (my default, public profile on Hubzilla where each channel can have multiple profiles).
I can define who can see my stream and my posts when looking at my channel.
I can define who can see my connections (Hubzilla, (streams) and Forte don't distinguish between follower and followed; they aren't Twitter clones).
I can define who can look into my file space (individual permission settings per folder and per file notwithstanding).
I can define who can see my webpages on Hubzilla (if I have any).
I can define who can see my wikis on Hubzilla (no shit, I've got wikis on my Hubzilla channel).
On Hubzilla, I can define individually for any of these whether it's- everyone on the Internet
- everyone with a recognisable Fediverse account
- everyone on Hubzilla (maybe also on (streams); anyone using ActivityPub is definitely excluded here)
- everyone on the same server as myself (AFAIK, only main instances of channels count here, clones don't)
- unapproved (= followers) as well as approved (= mutual) connections
- confirmed connections
- those of my confirmed connections whom I explicitly grant that permission by contact role
- only myself
There's a whole bunch more permissions than these. And they all have seven or eight permission levels (depending on whether the general non-Fediverse public can be given permission).
On (streams) and Forte, I can define whether things are allowed for- everyone on the Internet (where applicable)
- everyone with a recognisable Fediverse account
- all my approved connections
- only me myself plus those whom I explicitly grant that permission in the connection settings
Yes, connection settings. Hubzilla, (streams) and Forte give you various ways of configuring individual connections, much unlike Mastodon. This includes what any individual connection is allowed to do.
Hubzilla uses so-called "contact roles" for that, presets with a whopping 17 permissions to grant or deny for any one individual connection. That is, what the channel generally allows, a contact role can't forbid.
(streams) and Forte still have 15 permissions per contact, but they lack some features which Hubzilla has permissions for. These permissions can be set individually for each connection, or you can define permission roles that cover all 15 permissions to make things easier.
Okay, how about posting in public vs in private? And when I say "private", I mean "private". It's "private messages" on Hubzilla, (streams) and Forte, not "direct messages".
Hubzilla, (streams) and Forte let you post- in public
- only to yourself
- only to your connections ((streams) and Forte only; Hubzilla requires a privacy group with all your connections in it for this)
- to all members of one specific privacy group (Hubzilla)/access list ((streams), Forte); that's like being able to only post to those on one specific list on Mastodon
- to everyone to whom one specific non-default profile is assigned (Hubzilla only)
- to a specific group/forum (I'll get back to that later)
- to a custom one-by-one selection of connections of yours
Now, let's assume I have a privacy group with Alice, Bob and Carol in it. I send a new post to only this privacy group. This means:- Only Alice, Bob and Carol can see the post and the conversation.
- Alice can reply to me, Bob and Carol.
- Bob can reply to me, Alice and Carol.
- Carol can reply to me, Alice and Bob.
- Nobody else can see the post. Not even by searching for it. Not by hashtag either. Not at all.
- Nobody else can see any of the comments.
- Nobody else can comment.
If one of them was on Mastodon, they'd see my post as a DM, by the way, and they could only reply to me. But that's Mastodon's limitation because it understands neither threaded conversations nor permissions.
Or how about reply control? This is something that many Mastodon users have been craving for quite a while now. Hubzilla, (streams) and Forte have them. Right now. And they work. They have since 2012.
Hubzilla optionally lets me disallow comments on either of my posts. Users on Hubzilla, (streams) and Forte won't even be able to comment; they won't have the UI elements to do so. Everyone else is able to comment locally. But that comment will never end up on my channel. It will never officially be added to the conversation. And at least users on Friendica, Hubzilla, (streams) and Forte will never fetch that comment from my channel as part of the conversation, i.e. never at all.
(streams) and Forte can go even further with all available options. They can disallow comments like Hubzilla. But in addition, they can allow only the members of one particular access list to comment, regardless of who can see the post/the conversation. On top of that, comments can be closed at a pre-defined point in the future. And then you even have a channel-wide setting for how long people can comment on your posts.
Oh, and there's even a setting for who is generally permitted to comment on your posts. And you can additionally allow specific connections of yours to comment on your posts.
Lastly, I've already mentioned groups/forums. Like, you know, Web forums or Facebook groups or subreddits or whatever. Like Guppe Groups on a mountain of coke and with moderation and permission control and optionally private.
Hubzilla has them, and it has inherited them from Friendica. (streams) has them. Forte has them. They're basically channels like social networking channels, but with some extra features. This includes that everything that's send to a group/forum as what amounts to a PM is automatically forwarded to all other members.
On Hubzilla, a forum can be gradually made private by denying permission to see certain elements to everyone but its own members (= connections): the profile, the members, what's going on in it. Depending on what you want or do not want people to see.
On (streams) and Forte, you have four types of forums:- public, and members can upload images and other files to the forum channel
- public, but members cannot upload images and other files to the forum channel
- like above, but additionally, posts and comments from new members must be manually approved by the admin(s) until their connections are configured to make them full members
- private, non-members can't see the profile, non-members can't see the connections, non-members can't see what's going on in it, but members can upload images and other files to the forum channel
In addition, on all three, a group/forum channel can choose to hide itself from directories. This is always an extra option that's independent from public/private.
What we have here is the most secure and most private Fediverse software of all.
And, once again, at its core, this is technology from 2012. It pre-dates Mastodon by almost four years.
Finally, if you want to know how Hubzilla and (streams) compare to Mastodon: I have made a number of tables that compare Mastodon, Friendica, Hubzilla and (streams).
#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Mastodon #Mitra #Friendica #Hubzilla #Streams #(streams) #Forte #ActivityPub #Zot #Zot6 #Zot8 #Nomad #NomadicIdentity #Security #FediverseSecurity #Privacy #FediversePrivacy #Permissions -
@Kellam⚙️Бур This may come as a surprise, but: Nomadic identity is not an abstract concept or a science-fiction idea for the Fediverse.
It is reality. It exists. Right now. In stable, daily-driver software that's federated with Mastodon. And it has been for over a decade.
I'm literally replying to you here from a nomadic channel that simultaneously exists on two servers.
Nomadic identity was invented by @Mike Macgirvin 🖥️ (formerly American software developer of about half a century who has been living in rural Australia for decades now) in 2011 and first implemented in 2012. Almost four years before Mastodon was first launched.
In 2010, he had invented the Facebook alternative Friendica, originally named Mistpark and based on his own DFRN protocol.
Over the months, he witnessed lots of privately operated public Friendica nodes shut down with or without an announcement and the users on these nodes lose everything. He added the possibility to export and import Friendica accounts. But that would only help if a permanent shutdown was announced. It did not protect you against shutdowns out of the blue.
There was only one solution to this problem. And that was for someone's identity to not be bound to one server, but to exist on multiple servers simultaneously. The whole thing with everything that's attached to it. Name, settings, connections, posts, files in the file storage etc. etc., everything.
So in 2011, Mike designed a whole new protocol named Zot around this brand-new idea of what he called "nomadic identity" back then already.
In 2012, Mike forked Friendica into something called Red, later the Red Matrix, and rebuilt the whole thing from the ground up against Zot. Red was the first nomadic social networking software in the world, almost four years before Mastodon.
In 2015, ten months before Mastodon was first released, the Red Matrix became Hubzilla, the Fediverse's ultimate Swiss army knife.
I am on Hubzilla myself. This channel of mine is constantly being mirrored between its main instance on https://hub.netzgemeinde.eu and its clone on https://hub.hubzilla.de. Anything that happens on the main instance is backed up on the clone. I can also log into the clone and use that, and whatever happens there is backed up on the main instance.
https://hub.netzgemeinde.eu could go down, temporarily, permanently, doesn't matter; I still have my channel, namely the clone. And I can declare the clone my new main instance.
Well, Mike didn't stop at Hubzilla and its original version of the Zot protocol. He wanted to refine it and advance it, but in ways that wouldn't be possible on daily-driver software.
Zot went through several upgrades: Zot6 in 2018 (backported to Hubzilla in 2020, along with OpenWebAuth magic single sign-on). Zot8 in 2020. Zot11 in 2021 which had become incompatible with Zot6 and therefore was renamed to Nomad. Today's Nomad would be Zot12.
Also, in order to advance and test Zot, Mike created a whole bunch of forks and forks of forks. Osada and Zap for Zot6 in 2018, followed by another short-lived Osada in 2019. A third Osada, Mistpark 2020 (a.k.a. Misty) and Redmatrix 2020 in 2020 for Zot8. Roadhouse for Zot11 Nomad in 2021. All Osadas, Zap, Misty, Redmatrix 2020 and Roadhouse were discontinued on New Year's Eve of 2022.
The most recent software based on Nomad is from October, 2021. It can be found in the streams repository. It is officially and intentionally nameless and brandless, it has next to nodeinfo code that could submit statistics, and it is intentionally released into the public domain. The community named it (streams) after the code repository.
I also have two (streams) channels, one of which is cloned so far.
The newest thing, and that's what the Friendica and Hubzilla veteran @Tim Schlotfeldt ⚓?️? referred to, is nomadic identity using nothing but ActivityPub, no longer relying on a special protocol.
This was not Mike Macgirvin's idea. This came from @silverpill, the creator and developer of the microblogging server application Mitra. He wanted to make Mitra nomadic, make it resilient against server shutdown. But he didn't want to port it to Nomad. He wanted to achieve it with nothing but ActivityPub.
So he hit up Mike. The two came to the conclusion: This is actually possible. And they began to work on it. Amongst the results were several FEPs coined by silverpill.
This time, Mike did not create another fork to develop nomadic identity via ActivityPub. He did it all on the nomadic branch of the streams repository while silverpill did his part on a special development branch of Mitra.
In mid-2024, after enough sparring between (streams) instances, between Mitra instances and between (streams) and Mitra, Mike was confident enough that his implementation of support of nomadic identity via ActivityPub was stable enough. He merged the nomadic branch into the dev branch which ended up being merged into the stable release branch in summer.
Now, at this point, (streams) didn't use ActivityPub for nomadic identity. It still used the Nomad protocol for everything first and foremost, including cloning. But it understood nomadic identity via ActivityPub as implemented on experimental Mitra.
However, while it worked under lab conditions, it blew up under real-life conditions. At this point, (streams) had to handle so many different identities that it confused them, and it couldn't federate with anything yet.
In mid-August, while trying to fix the problem, Mike eventually forked the streams repository into Forte. It got a name again, it got a brand identity again, it got its nodeinfo back, it was put under the MIT license again.
But most importantly: Any and all support for Nomad was ripped out, also to get rid of a whole number of IDs, namely those for Nomad-actually-Zot12 and for Hubzilla's Nomad-actually-Zot6. Forte only uses ActivityPub for everything. And so, Forte also had to fully rely on ActivityPub for nomadic identity, cloning and syncing.
For almost seven months, Forte was considered experimental and unstable. For most of the time, the only existing servers were Mike's.
But on March 12th, 2025, Mike Macgirvin released Forte 25.3.12, the first official stable release of Forte. This is what Tim wrote about. Because this actually made it into Fediverse-wide news.
Not because it's nomadic. Nomadic identity has been daily-driven for over a decade now.
But because it uses ActivityPub for nomadic identity. Which means that you can theoretically make any kinds of Fediverse software nomadic now, all without porting it to the Nomad protocol first.
For the future, Mike and silverpill envision a Fediverse in which one can clone between different server applications. A Fediverse in which one can have one and the same identity cloned across multiple servers of Mastodon, Pixelfed, PeerTube, Mitra, Forte, Mobilizon, Lemmy, BookWyrm etc., all with the same name, all with the same content and settings (as far as the software allows; you will certainly not be able to clone your PeerTube videos to Mastodon and Lemmy).
Even if you don't intend to clone, it will make moving instances and even moving from one software to another dramatically easier.
If you're concerned about your privacy, let me tell you this:
Hubzilla's privacy, security and permissions system is unparalleled in the Fediverse. Except for that on (streams) and Forte which is another notch better.
I can define who can see my profile (my default, public profile on Hubzilla where each channel can have multiple profiles).
I can define who can see my stream and my posts when looking at my channel.
I can define who can see my connections (Hubzilla, (streams) and Forte don't distinguish between follower and followed; they aren't Twitter clones).
I can define who can look into my file space (individual permission settings per folder and per file notwithstanding).
I can define who can see my webpages on Hubzilla (if I have any).
I can define who can see my wikis on Hubzilla (no shit, I've got wikis on my Hubzilla channel).
On Hubzilla, I can define individually for any of these whether it's- everyone on the Internet
- everyone with a recognisable Fediverse account
- everyone on Hubzilla (maybe also on (streams); anyone using ActivityPub is definitely excluded here)
- everyone on the same server as myself (AFAIK, only main instances of channels count here, clones don't)
- unapproved (= followers) as well as approved (= mutual) connections
- confirmed connections
- those of my confirmed connections whom I explicitly grant that permission by contact role
- only myself
There's a whole bunch more permissions than these. And they all have seven or eight permission levels (depending on whether the general non-Fediverse public can be given permission).
On (streams) and Forte, I can define whether things are allowed for- everyone on the Internet (where applicable)
- everyone with a recognisable Fediverse account
- all my approved connections
- only me myself plus those whom I explicitly grant that permission in the connection settings
Yes, connection settings. Hubzilla, (streams) and Forte give you various ways of configuring individual connections, much unlike Mastodon. This includes what any individual connection is allowed to do.
Hubzilla uses so-called "contact roles" for that, presets with a whopping 17 permissions to grant or deny for any one individual connection. That is, what the channel generally allows, a contact role can't forbid.
(streams) and Forte still have 15 permissions per contact, but they lack some features which Hubzilla has permissions for. These permissions can be set individually for each connection, or you can define permission roles that cover all 15 permissions to make things easier.
Okay, how about posting in public vs in private? And when I say "private", I mean "private". It's "private messages" on Hubzilla, (streams) and Forte, not "direct messages".
Hubzilla, (streams) and Forte let you post- in public
- only to yourself
- only to your connections ((streams) and Forte only; Hubzilla requires a privacy group with all your connections in it for this)
- to all members of one specific privacy group (Hubzilla)/access list ((streams), Forte); that's like being able to only post to those on one specific list on Mastodon
- to everyone to whom one specific non-default profile is assigned (Hubzilla only)
- to a specific group/forum (I'll get back to that later)
- to a custom one-by-one selection of connections of yours
Now, let's assume I have a privacy group with Alice, Bob and Carol in it. I send a new post to only this privacy group. This means:- Only Alice, Bob and Carol can see the post and the conversation.
- Alice can reply to me, Bob and Carol.
- Bob can reply to me, Alice and Carol.
- Carol can reply to me, Alice and Bob.
- Nobody else can see the post. Not even by searching for it. Not by hashtag either. Not at all.
- Nobody else can see any of the comments.
- Nobody else can comment.
If one of them was on Mastodon, they'd see my post as a DM, by the way, and they could only reply to me. But that's Mastodon's limitation because it understands neither threaded conversations nor permissions.
Or how about reply control? This is something that many Mastodon users have been craving for quite a while now. Hubzilla, (streams) and Forte have them. Right now. And they work. They have since 2012.
Hubzilla optionally lets me disallow comments on either of my posts. Users on Hubzilla, (streams) and Forte won't even be able to comment; they won't have the UI elements to do so. Everyone else is able to comment locally. But that comment will never end up on my channel. It will never officially be added to the conversation. And at least users on Friendica, Hubzilla, (streams) and Forte will never fetch that comment from my channel as part of the conversation, i.e. never at all.
(streams) and Forte can go even further with all available options. They can disallow comments like Hubzilla. But in addition, they can allow only the members of one particular access list to comment, regardless of who can see the post/the conversation. On top of that, comments can be closed at a pre-defined point in the future. And then you even have a channel-wide setting for how long people can comment on your posts.
Oh, and there's even a setting for who is generally permitted to comment on your posts. And you can additionally allow specific connections of yours to comment on your posts.
Lastly, I've already mentioned groups/forums. Like, you know, Web forums or Facebook groups or subreddits or whatever. Like Guppe Groups on a mountain of coke and with moderation and permission control and optionally private.
Hubzilla has them, and it has inherited them from Friendica. (streams) has them. Forte has them. They're basically channels like social networking channels, but with some extra features. This includes that everything that's send to a group/forum as what amounts to a PM is automatically forwarded to all other members.
On Hubzilla, a forum can be gradually made private by denying permission to see certain elements to everyone but its own members (= connections): the profile, the members, what's going on in it. Depending on what you want or do not want people to see.
On (streams) and Forte, you have four types of forums:- public, and members can upload images and other files to the forum channel
- public, but members cannot upload images and other files to the forum channel
- like above, but additionally, posts and comments from new members must be manually approved by the admin(s) until their connections are configured to make them full members
- private, non-members can't see the profile, non-members can't see the connections, non-members can't see what's going on in it, but members can upload images and other files to the forum channel
In addition, on all three, a group/forum channel can choose to hide itself from directories. This is always an extra option that's independent from public/private.
What we have here is the most secure and most private Fediverse software of all.
And, once again, at its core, this is technology from 2012. It pre-dates Mastodon by almost four years.
Finally, if you want to know how Hubzilla and (streams) compare to Mastodon: I have made a number of tables that compare Mastodon, Friendica, Hubzilla and (streams).
#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Mastodon #Mitra #Friendica #Hubzilla #Streams #(streams) #Forte #ActivityPub #Zot #Zot6 #Zot8 #Nomad #NomadicIdentity #Security #FediverseSecurity #Privacy #FediversePrivacy #Permissions -
@Kellam⚙️Бур This may come as a surprise, but: Nomadic identity is not an abstract concept or a science-fiction idea for the Fediverse.
It is reality. It exists. Right now. In stable, daily-driver software that's federated with Mastodon. And it has been for over a decade.
I'm literally replying to you here from a nomadic channel that simultaneously exists on two servers.
Nomadic identity was invented by @Mike Macgirvin 🖥️ (formerly American software developer of about half a century who has been living in rural Australia for decades now) in 2011 and first implemented in 2012. Almost four years before Mastodon was first launched.
In 2010, he had invented the Facebook alternative Friendica, originally named Mistpark and based on his own DFRN protocol.
Over the months, he witnessed lots of privately operated public Friendica nodes shut down with or without an announcement and the users on these nodes lose everything. He added the possibility to export and import Friendica accounts. But that would only help if a permanent shutdown was announced. It did not protect you against shutdowns out of the blue.
There was only one solution to this problem. And that was for someone's identity to not be bound to one server, but to exist on multiple servers simultaneously. The whole thing with everything that's attached to it. Name, settings, connections, posts, files in the file storage etc. etc., everything.
So in 2011, Mike designed a whole new protocol named Zot around this brand-new idea of what he called "nomadic identity" back then already.
In 2012, Mike forked Friendica into something called Red, later the Red Matrix, and rebuilt the whole thing from the ground up against Zot. Red was the first nomadic social networking software in the world, almost four years before Mastodon.
In 2015, ten months before Mastodon was first released, the Red Matrix became Hubzilla, the Fediverse's ultimate Swiss army knife.
I am on Hubzilla myself. This channel of mine is constantly being mirrored between its main instance on https://hub.netzgemeinde.eu and its clone on https://hub.hubzilla.de. Anything that happens on the main instance is backed up on the clone. I can also log into the clone and use that, and whatever happens there is backed up on the main instance.
https://hub.netzgemeinde.eu could go down, temporarily, permanently, doesn't matter; I still have my channel, namely the clone. And I can declare the clone my new main instance.
Well, Mike didn't stop at Hubzilla and its original version of the Zot protocol. He wanted to refine it and advance it, but in ways that wouldn't be possible on daily-driver software.
Zot went through several upgrades: Zot6 in 2018 (backported to Hubzilla in 2020, along with OpenWebAuth magic single sign-on). Zot8 in 2020. Zot11 in 2021 which had become incompatible with Zot6 and therefore was renamed to Nomad. Today's Nomad would be Zot12.
Also, in order to advance and test Zot, Mike created a whole bunch of forks and forks of forks. Osada and Zap for Zot6 in 2018, followed by another short-lived Osada in 2019. A third Osada, Mistpark 2020 (a.k.a. Misty) and Redmatrix 2020 in 2020 for Zot8. Roadhouse for Zot11 Nomad in 2021. All Osadas, Zap, Misty, Redmatrix 2020 and Roadhouse were discontinued on New Year's Eve of 2022.
The most recent software based on Nomad is from October, 2021. It can be found in the streams repository. It is officially and intentionally nameless and brandless, it has next to nodeinfo code that could submit statistics, and it is intentionally released into the public domain. The community named it (streams) after the code repository.
I also have two (streams) channels, one of which is cloned so far.
The newest thing, and that's what the Friendica and Hubzilla veteran @Tim Schlotfeldt ⚓?️? referred to, is nomadic identity using nothing but ActivityPub, no longer relying on a special protocol.
This was not Mike Macgirvin's idea. This came from @silverpill, the creator and developer of the microblogging server application Mitra. He wanted to make Mitra nomadic, make it resilient against server shutdown. But he didn't want to port it to Nomad. He wanted to achieve it with nothing but ActivityPub.
So he hit up Mike. The two came to the conclusion: This is actually possible. And they began to work on it. Amongst the results were several FEPs coined by silverpill.
This time, Mike did not create another fork to develop nomadic identity via ActivityPub. He did it all on the nomadic branch of the streams repository while silverpill did his part on a special development branch of Mitra.
In mid-2024, after enough sparring between (streams) instances, between Mitra instances and between (streams) and Mitra, Mike was confident enough that his implementation of support of nomadic identity via ActivityPub was stable enough. He merged the nomadic branch into the dev branch which ended up being merged into the stable release branch in summer.
Now, at this point, (streams) didn't use ActivityPub for nomadic identity. It still used the Nomad protocol for everything first and foremost, including cloning. But it understood nomadic identity via ActivityPub as implemented on experimental Mitra.
However, while it worked under lab conditions, it blew up under real-life conditions. At this point, (streams) had to handle so many different identities that it confused them, and it couldn't federate with anything yet.
In mid-August, while trying to fix the problem, Mike eventually forked the streams repository into Forte. It got a name again, it got a brand identity again, it got its nodeinfo back, it was put under the MIT license again.
But most importantly: Any and all support for Nomad was ripped out, also to get rid of a whole number of IDs, namely those for Nomad-actually-Zot12 and for Hubzilla's Nomad-actually-Zot6. Forte only uses ActivityPub for everything. And so, Forte also had to fully rely on ActivityPub for nomadic identity, cloning and syncing.
For almost seven months, Forte was considered experimental and unstable. For most of the time, the only existing servers were Mike's.
But on March 12th, 2025, Mike Macgirvin released Forte 25.3.12, the first official stable release of Forte. This is what Tim wrote about. Because this actually made it into Fediverse-wide news.
Not because it's nomadic. Nomadic identity has been daily-driven for over a decade now.
But because it uses ActivityPub for nomadic identity. Which means that you can theoretically make any kinds of Fediverse software nomadic now, all without porting it to the Nomad protocol first.
For the future, Mike and silverpill envision a Fediverse in which one can clone between different server applications. A Fediverse in which one can have one and the same identity cloned across multiple servers of Mastodon, Pixelfed, PeerTube, Mitra, Forte, Mobilizon, Lemmy, BookWyrm etc., all with the same name, all with the same content and settings (as far as the software allows; you will certainly not be able to clone your PeerTube videos to Mastodon and Lemmy).
Even if you don't intend to clone, it will make moving instances and even moving from one software to another dramatically easier.
If you're concerned about your privacy, let me tell you this:
Hubzilla's privacy, security and permissions system is unparalleled in the Fediverse. Except for that on (streams) and Forte which is another notch better.
I can define who can see my profile (my default, public profile on Hubzilla where each channel can have multiple profiles).
I can define who can see my stream and my posts when looking at my channel.
I can define who can see my connections (Hubzilla, (streams) and Forte don't distinguish between follower and followed; they aren't Twitter clones).
I can define who can look into my file space (individual permission settings per folder and per file notwithstanding).
I can define who can see my webpages on Hubzilla (if I have any).
I can define who can see my wikis on Hubzilla (no shit, I've got wikis on my Hubzilla channel).
On Hubzilla, I can define individually for any of these whether it's- everyone on the Internet
- everyone with a recognisable Fediverse account
- everyone on Hubzilla (maybe also on (streams); anyone using ActivityPub is definitely excluded here)
- everyone on the same server as myself (AFAIK, only main instances of channels count here, clones don't)
- unapproved (= followers) as well as approved (= mutual) connections
- confirmed connections
- those of my confirmed connections whom I explicitly grant that permission by contact role
- only myself
There's a whole bunch more permissions than these. And they all have seven or eight permission levels (depending on whether the general non-Fediverse public can be given permission).
On (streams) and Forte, I can define whether things are allowed for- everyone on the Internet (where applicable)
- everyone with a recognisable Fediverse account
- all my approved connections
- only me myself plus those whom I explicitly grant that permission in the connection settings
Yes, connection settings. Hubzilla, (streams) and Forte give you various ways of configuring individual connections, much unlike Mastodon. This includes what any individual connection is allowed to do.
Hubzilla uses so-called "contact roles" for that, presets with a whopping 17 permissions to grant or deny for any one individual connection. That is, what the channel generally allows, a contact role can't forbid.
(streams) and Forte still have 15 permissions per contact, but they lack some features which Hubzilla has permissions for. These permissions can be set individually for each connection, or you can define permission roles that cover all 15 permissions to make things easier.
Okay, how about posting in public vs in private? And when I say "private", I mean "private". It's "private messages" on Hubzilla, (streams) and Forte, not "direct messages".
Hubzilla, (streams) and Forte let you post- in public
- only to yourself
- only to your connections ((streams) and Forte only; Hubzilla requires a privacy group with all your connections in it for this)
- to all members of one specific privacy group (Hubzilla)/access list ((streams), Forte); that's like being able to only post to those on one specific list on Mastodon
- to everyone to whom one specific non-default profile is assigned (Hubzilla only)
- to a specific group/forum (I'll get back to that later)
- to a custom one-by-one selection of connections of yours
Now, let's assume I have a privacy group with Alice, Bob and Carol in it. I send a new post to only this privacy group. This means:- Only Alice, Bob and Carol can see the post and the conversation.
- Alice can reply to me, Bob and Carol.
- Bob can reply to me, Alice and Carol.
- Carol can reply to me, Alice and Bob.
- Nobody else can see the post. Not even by searching for it. Not by hashtag either. Not at all.
- Nobody else can see any of the comments.
- Nobody else can comment.
If one of them was on Mastodon, they'd see my post as a DM, by the way, and they could only reply to me. But that's Mastodon's limitation because it understands neither threaded conversations nor permissions.
Or how about reply control? This is something that many Mastodon users have been craving for quite a while now. Hubzilla, (streams) and Forte have them. Right now. And they work. They have since 2012.
Hubzilla optionally lets me disallow comments on either of my posts. Users on Hubzilla, (streams) and Forte won't even be able to comment; they won't have the UI elements to do so. Everyone else is able to comment locally. But that comment will never end up on my channel. It will never officially be added to the conversation. And at least users on Friendica, Hubzilla, (streams) and Forte will never fetch that comment from my channel as part of the conversation, i.e. never at all.
(streams) and Forte can go even further with all available options. They can disallow comments like Hubzilla. But in addition, they can allow only the members of one particular access list to comment, regardless of who can see the post/the conversation. On top of that, comments can be closed at a pre-defined point in the future. And then you even have a channel-wide setting for how long people can comment on your posts.
Oh, and there's even a setting for who is generally permitted to comment on your posts. And you can additionally allow specific connections of yours to comment on your posts.
Lastly, I've already mentioned groups/forums. Like, you know, Web forums or Facebook groups or subreddits or whatever. Like Guppe Groups on a mountain of coke and with moderation and permission control and optionally private.
Hubzilla has them, and it has inherited them from Friendica. (streams) has them. Forte has them. They're basically channels like social networking channels, but with some extra features. This includes that everything that's send to a group/forum as what amounts to a PM is automatically forwarded to all other members.
On Hubzilla, a forum can be gradually made private by denying permission to see certain elements to everyone but its own members (= connections): the profile, the members, what's going on in it. Depending on what you want or do not want people to see.
On (streams) and Forte, you have four types of forums:- public, and members can upload images and other files to the forum channel
- public, but members cannot upload images and other files to the forum channel
- like above, but additionally, posts and comments from new members must be manually approved by the admin(s) until their connections are configured to make them full members
- private, non-members can't see the profile, non-members can't see the connections, non-members can't see what's going on in it, but members can upload images and other files to the forum channel
In addition, on all three, a group/forum channel can choose to hide itself from directories. This is always an extra option that's independent from public/private.
What we have here is the most secure and most private Fediverse software of all.
And, once again, at its core, this is technology from 2012. It pre-dates Mastodon by almost four years.
Finally, if you want to know how Hubzilla and (streams) compare to Mastodon: I have made a number of tables that compare Mastodon, Friendica, Hubzilla and (streams).
#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Mastodon #Mitra #Friendica #Hubzilla #Streams #(streams) #Forte #ActivityPub #Zot #Zot6 #Zot8 #Nomad #NomadicIdentity #Security #FediverseSecurity #Privacy #FediversePrivacy #Permissions -
More Apple ][*, //* II* and classic Macintosh hardware upgrades
The mini micro classic Apple emulators related post last week became way too big, so here is the classic Apple 2/Macintosh hardware upgrade part follow-up I announced in Some notes on mini/micro Apple //e emulators.
Last week, I mentioned [Wayback/Archive] ARC Javmaster – YouTube. Let’s continue from there for an even bigger post (:
Javmaster actually has a shop at [Wayback/Archive] Welcome to the 8-bit stuff store – 8 bit stuff cool retro computer 3D gadgets and geekery with a lot of interesting (mainly Apple ][ era related) retro things like:
- USD 25 [Wayback/Archive] Apple IIc USB C power adapter with Volt Gauge – 8 bit stuff cool retro computer 3D gadgets and geekery
Apple IIc USB C power adapter with Volt Gauge with USB-C connected and showing 15.2 volts
[Wayback/Archive] Transform your Apple IIc experience with this sleek USB-C power supply replacement! – YouTube
- USD 120-430 [Wayback/Archive] Floppy Emu 3.5 Drive Case – 8 bit stuff cool retro computer 3D gadgets and geekery
Floppy Emu 3.5 Drive Case powered up with green screen fitting well together with an Apple //c plus
[Wayback/Archive] Step into the future of vintage computing with the Floppy Emu 3.5! – YouTube
[Wayback/Archive] New 3.5 drive case for Apple II & Macintosh Floppy Emu: soon at 8bitstuff.com! #3dprinting #Apple – YouTube
[Wayback/Archive] Starting GSOS 6.04 from the new Floppy Emu 3.5, a match made in heaven! #apple #3dprint #appleiigs – YouTube
- USD 120-430 [Wayback/Archive] Floppy Emulator Disk ][ Case – 8 bit stuff cool retro computer 3D gadgets and geekery
Floppy Emulator Disk ][ Case with green screen fitted in an original Apple ][ era 5.25 inch diskette drive case
[Wayback/Archive] New Release: Floppy Emu ][ Case Assembly Guide! – YouTube[Wayback/Archive] #AprilApples Guest episode: Watch Jon Assemble a Floppy Emu Case from Scratch! – YouTube
-
3D Printed Apple II Joystick – clear Special edition: internals
3D Printed Apple II Joystick – clear Special edition
3D Printed Apple II Joystick
USD 80-155 Apple II Joystick Recreation: cheapest is 3D printed in classic color, the other clear
The 3D recreation of the iconic Apple II Joystick, keeping all the classic features with brand new mechanical parts. The moving parts brand new, adapted to work seamlessly with Apple II’s that use the DB9 port.
The switches are brand-new Matias key switches, a new version of the ALPS keys that were so successful in most original keyboards.
By using these materials, the quality and durability are better. The 3D printed case and switches resemble the original and is crafted to be enjoyed and used with your retro systems.- [Wayback/Archive] 3D Printed Apple II Joystick – A Fusion of Nostalgia and Innovation – 8 bit stuff cool retro computer 3D gadgets and geekery
- [Wayback/Archive] 3D Printed Apple II Joystick – clear Special edition – 8 bit stuff cool retro computer 3D gadgets and geekery
[Wayback/Archive] Apple II Joystick Recreation – Rediscover the Ultimate Retro Gaming Experience! – YouTube
- [Wayback/Archive] 3D Printed Apple II Joystick – A Fusion of Nostalgia and Innovation – 8 bit stuff cool retro computer 3D gadgets and geekery
8bitstuff also pointed me to this shop with cool parts helping you fix Apple ][* and Apple //e and II* model issues: [Wayback/Archive] Shop | ReActiveMicro.com which is part of [Wayback/Archive] ReActiveMicro.com which has this great card in their catalog:
-
A2FPGA Multicard
USD 150 [Wayback/Archive] A2FPGA Multicard | ReActiveMicro.com
[Wayback/Archive] #156: Can One Apple II Card Replace Them All? – YouTube
The firmware is open source at [Wayback/Archive] GitHub – a2fpga/a2fpga_core: Apple II FPGA Co-Processor and still being maintained.
[Wayback/Archive] A2FPGA – The ReActiveMicro Apple II Wiki
The A2FPGA is primarily an HD video and Mockingboard-compatible sound card for the Apple II, II+, //e, and IIgs.
and other hardware like:
-
Disk ][+ v1.0 kit
USD 30-40 [Wayback/Archive] Disk ][+ – Assembled or Kit | ReActiveMicro.com
Disk ][+ v1.0 is a small PCB that installs into Apple Disk ][ drives. It replaces the red LED in the drives with a two-color LED, to better distinguish the reading phases, in green, from the writing phases, in red. Comes assembled or in kit form.
Notes:
- You need one set for each drive.
- I don’t really like the way they connect to the drive electronics, see picture below from [Wayback/Archive] Disk II+ – The ReActiveMicro Apple II Wiki . Instead of the pin, I would likely solder the wires to the electronics.
4 hook probes connected to the Disk II analog board.
-
Apple IIe Enhancement Kit
USD 30-35 [Wayback/Archive] IIe Enhancement Kit | ReActiveMicro.com
Comes with an ‘Enhanced’ paper template, 65C02 CPU, and all the ROM’s necessary to upgrade your Apple IIe.
[Wayback/Archive] Apple IIe Enhancement Kit – The ReActiveMicro Apple II Wiki
Note it has various options (USA vs European Apple //e, plus languages: check before you order!)
I need to check if my Apple //e already has this enhancement kit.
-
No-Slot Clock v1.0
USD 65 [Wayback/Archive] No-Slot Clock | ReActiveMicro.com
The No-Slot Clock v1.0 allows your Apple II to remember the date and time. It will work on an Apple II, Apple II+, Apple IIe, Apple IIc, and Clone systems. It features dual battery holders. Two CR1025 cells included.
The No Slot Clock does not fit in to the IIc or IIc+ with a RAM Card installed.
[Wayback/Archive] No-Slot Clock – The ReActiveMicro Apple II Wiki
Likely won’t needs this as ROMXe and ROMXc both include a clock.
-
Ultimate-Micro.com Apple II 3.5″ Disk Controller Card v1.0
USD 200 [Wayback/Archive] Apple II 3.5 Disk Controller Card | ReActiveMicro.com
This is the Apple II 3.5″ Disk Controller Card v1.0 from Ultimate-Micro.com.
The Apple II 3.5″ Disk Controller Card v1.0 is a clone of Apple’s Apple II 3.5″ Disk Controller Card. The disk controller card allows you to use 3.5-inch floppy disk drives, including the Apple SuperDrive and Apple 3.5 Drive, with all Apple II computers. This card also supports the operation of older model Apple II UniDisk 3.5 drives.
Not sure if I really want this one, especially with the USD 200 price tag: The
Ultimate-Micro.comdomain vanished and the Yellowstone Universal Disk Controller mentioned below at USD 170 (including cables) can do more. -
Apple II A2io Bluetooth Game Port Receiver
USD 20 [Wayback/Archive] A2io Bluetooth Game Port Receiver For Your Apple II Systems | ReActiveMicro.com
This is the A2io Bluetooth Game Port Receiver from CraftyMech and designed by Aaron Reid. Works on all Apple II systems with a 9 pin game port.
…
A2io allow you to connect and use a modern wireless game pad as either a joystick, paddle, or pad input device. You pair the game pad with your mobile device (phone/tablet/laptop) and then connect to the A2io. The mobile device acts like a translator between your Apple and game pad.
-
CFFA 300 REV C
USD 225 [Wayback/Archive] CFFA3000 v1.0 Rev C-RM for II, II+, ///, IIe, and IIgs | ReActiveMicro.com
This is the CFFA3000 v1.0 Rev C-RM built by ReActiveMicro under license from R&D Automation.
…
The CFFA3000 v1.0 Rev C-RM Controller is a Mass Storage Device and Floppy Emulator that once installed in your Apple II system acts like a solid-state Hard Drive using Compact Flash Cards and USB Flash Drives. Floppy Emulation allows users to load .PO images as if they were physical disk. See the manual for more details. There is also discussion about adding .WOZ support, and we will post updates if/when it happens.
Comes with CF Card as pictured, and with Remote option standard. Manual can be found here for review.
Plug and play ready, and fully tested. Comes started with **256MB** CF Card, preloaded with several ProDOS 8 volumes with games and utilities, and several GS/OS volumes. You can select which one to boot using the on-board firmware menu (press “M” key on power up).
[Wayback/Archive] wiki.reactivemicro.com/images/9/9d/2021-10-23-CFFA-RM_Manual.pdf
I already have this, including the original remote back in 2014 from dreher: [Wayback/Archive] CFFA3000 Run 3: Order Status
-
CFFA3000 Remote
USD 40 [Wayback/Archive] CFFA3000 – Remote Option With Cable | ReActiveMicro.com
This is the CFFA3000 Remote option built by ReActiveMicro under license from R&D Automation. ***REMOTE ONLY!***
ReActiveMicro is an authorized dealer and partner with R&D…
The CFFA3000 Remote option comes with the connector cable, which attaches to the CFFA3000 card installed in your Apple II system. It comes as pictured, with the Remote, the connection cable, and a 3D printed enclosure.
Finally it pointed me to [Wayback/Archive] Home | JD Micro which has RAMX (for Apple ][* systems) and ROMX (variants for any Apple 2 model) for which these are most applicable to my systems (both ROMX versions also contain the fonts mentioned in their blog post [Wayback/Archive] 11th May 2021 | JD Micro):
[Wayback/Archive] Review: ROMX+ Device for Apple II+ – YouTube
- [Wayback/Archive] ROMXe | JD Micro for Apple //e – includes clock
[Wayback/Archive] Review: ROMXe by JD Micro – More ROMS than you can shake a joystick at! – YouTube
- [Wayback/Archive] ROMXc | JD Micro for Apple IIc – includes clock
[Wayback/Archive] Boot Instantly – ROMXc Review for the Apple //c – YouTube
Other results from the queries I used in the post last week also returned some hardware that can be used for classic Apple machines:
- [Wayback/Archive] The ESP32 SoftCard for the Apple II | Applefritter
I’ve been working on a new card for the Apple II that would extend its capabilities using my favorite Wi-Fi module: the ESP32. I decided to called it a soft card, because similarly to the original Z80 SoftCard it contains its own processor allowing it to run software not originally meant for the Apple II. And similarly to the original 80-column card that was needed, it produces its own composite video enabled through a soft switch. Both NTSC and PAL are supported and can be switched using a command. In addition it can produce 8-bit sound that is mixed and played through the Apple II speaker. For most of its applications the card also needs a FAT32 formatted microSD card.
…
[Wayback/Archive] ESP32 SoftCard Expansion Card for the Apple II from CVT on Tindie
ESP32 SoftCard Expansion Card for the Apple II
- [Wayback/Archive] Apple2idiot card (ESP32) | Applefritter
It is an interesting and different take on interfacing an ESP32 module to an Apple II. It uses a dual ported SRAM instead of trying to interface the ESP32 to the Apple II bus using something like 74LVC245s or through a parallel chip like a 6522 or 82C55 or through a serial chip like a 6551 or 6850.
https://github.com/equant/apple2idiot
…
[Wayback/Archive] GitHub – equant/apple2idiot: A general purpose ESP32 IOT board for the Apple IIe
-
assembly lines
[Wayback/Archive] Shop – CT6502 and [Wayback/Archive] Shop – Page 2 of 2 – CT6502a
- [Wayback/Archive] Assembly Lines: The Mug – CT6502
Assembly Lines: The Mug; Print-on-demand from Printful.
Mug; handle left
Mug; handle behind
Mug; handle right
This is a really cool idea including the Choplifter and Lode Runner main sprites on the mug. The right picture shows you can also get it in 15oz size.
-
Apple II wDrive Disk Drive Emulator
[Wayback/Archive] Apple II wDrive Disk Drive Emulator – CT6502
The wDrive is a disk drive emulator for the Apple II (II+, IIe, IIc, IIGS) that boots disk images (WOZ, DSK, 2MG, HDV, etc) from an SD card.
Manufacturer: [Wayback/Archive] Mfa2 Workshop
We are developer of wDrive, softSP card and related accessories which are published through Kboo HK
Note it there are two options to choose from:
- USD ~80: wDrive only (Apple IIc and IIGS)
- USD ~100: wDrive plus SoftSP card (Apple II, II+, IIe)
The second option includes this one:
-
MFA2 SoftSP Card
[Wayback/Archive] Apple II MFA2 SoftSP Card wDrive or FujiNet – CT6502
The SoftSP card allows you to boot hard disk images or use FujiNet devices on an Apple II+ or IIe, which do not have SmartPort support.
The SoftSP card is not needed on the Apple IIc or Apple IIGS.
…
The SoftSP card should be placed into a slot lower than the wDrive disk controller card. Slot 1 or 2 usually works well.
Note: The SoftSP card will also work with the FloppyEMU. However, you MUST use a special drive cable that isolates pin 12, to avoid damaging your FloppyEMU. You do not need to use this cable with the wDrive, although it won’t cause any issues if you do. You can find details about the issue here.
That last bit is really really important as SoftSP only can be installed in a system that also connects to a FloppyEMU under these circumstances:
- Connect the FloppyEMU to a Yellowstone is a universal disk controller card for Apple II computers (see below), especially since the Yellowstone also supports both wDrive and FujiNet.
- Connect the FloppyEMU to an original Disk Controller, but cut wire #12 as explained in [Wayback/Archive] Floppy Emu SoftSP Warning | Big Mess o’ Wires
You can’t safely connect a Smartport device to a Disk II controller card, no matter how the card’s internal logic might be modified. That includes Floppy Emu when it’s configured in Smartport emulation mode. The reason is that Smartport devices connect pin 12 internally to ground. This is how other connected equipment and daisy-chained drives know that they’re Smartport drives, and it’s essential for correct daisy-chain operation of Smartport drives with the BMOW Daisy Chainer or the Apple Unidisk 3.5 drive.
Both options essentially makes the SoftSP unneeded for FloppyEMU, and with this signalling problem for wire #12 (which is the SmartPort compatibility indicator) I am not sure which other SmartPort devices besides wDrive will actually work with the Apple ][, Apple ][+ and Apple //e without damaging the SmartPort device.
- a
- a
- [Wayback/Archive] Assembly Lines: The Mug – CT6502
- a
Another shop via [Wayback/Archive] Big Mess o’ Wires -> [Wayback/Archive] Big Mess o’ Wires Store
Bring new life to your classic computer
From disk emulators to ROM upgrades, keyboard and mouse adapters, and more hardware creations, BMOW has your retrocomputer needs covered.
-
Yellowstone Universal Disk Controller Card and two DB-19 female adapters
[Wayback/Archive] Yellowstone Disk Controller Everything Bundle – Big Mess o’ Wires
Yellowstone is a universal disk controller card for Apple II computers. It supports nearly every type of Apple disk drive ever made, including standard 3.5 inch drives, 5.25 inch drives, smart drives like the Unidisk 3.5 and the BMOW Floppy Emu’s smartport hard disk, and even Macintosh 3.5 inch drives. Yellowstone combines the power of an Apple 3.5 Disk Controller Card, a standard 5.25 inch Disk II controller card, the Apple Liron controller, and more, all in a single card.
…
The “everything” bundle includes the latest version Yellowstone Universal Disk Controller Card and two DB-19 female adapters
- [Wayback/Archive] Yellowstone: Cloning the Apple II Liron | Big Mess o’ Wires
…
The “Liron” disk controller was introduced by Apple in 1985. More formally known as the Apple II UniDisk 3.5 Controller, it’s designed to work with a new generation of “smart” disk drives more sophisticated than the venerable Disk II 5.25 inch floppy drive. The smart disk port on the Liron is appropriately named the Smartport, and it can communicate with block-based storage devices such as the Unidisk 3.5 (an early 800K drive) and Smartport-based Apple II hard drives.
Why care about the Liron? The Apple IIc and Apple IIgs have integrated disk ports with built-in Smartport functionality, but for the earlier Apple II+ and IIe, the Liron is the only way to get a Smartport. For owners of the BMOW Floppy Emu disk emulator, the Liron card makes it possible to use the Floppy Emu as an external hard drive for the II+ and IIe. Unfortunately finding a Liron is difficult, and although they occasionally turn up on eBay, they’re quite expensive. That made cloning the Liron a logical first goal.…
- [Wayback/Archive] Yellowstone Universal Disk Controller – Big Mess o’ Wires
Article: [Wayback/Archive] Yellowstone Universal Disk Controller for Apple II | Big Mess o’ Wires – Run any disk drive with your Apple II computer!
Supported Drives
Need to attach a disk drive to your Apple II? Yellowstone has got you covered. Yellowstone is compatible with the Apple IIe, Apple IIgs, Apple II+, Apple II, and most Apple II clones. It works with these disk drives and drive emulators:
Can be connected directlyDisk II A2M0003Naked Apple 3.5” 800K, black labelNaked half-height Apple 5.25″Naked Apple 3.5” 800K, red labelFloppy Emu 5.25 modeNaked Apple 3.5” 1.44MB, auto-injectFloppy Emu Model C dual 5.25 modeNaked Apple 3.5” 1.44MB, manual-injectFloppy Emu 3.5 modewDriveFloppy Emu Unidisk 3.5 mode [1]Floppy Emu Smartport hard disk mode [1]And more…Requires optional DB-19F connectorUnidisk 5.25 A9M0104Macintosh 800K External M0131Disk IIc A2M4050Apple SuperDrive (Apple FDHD Drive) G7287Duo Disk 5.25 A9M0108Unidisk 3.5 A2M2053 [1]AppleDisk 5.25 A9M01075Applied Engineering 3.5 [2]Laser FD100 5.25Apple 3.5 Drive A9M0106And more…[1] smart drive
[2] partial compatibilityWhen using 3.5 inch drives, Yellowstone is compatible with Apple II standard 800K double-sided double-density disk media.
A naked drive is a bare drive mechanism without any enclosure, such as an internal drive taken from a Macintosh, Apple IIc, or Apple IIc+.
Yes, pull the internal 3.5 inch drive from an old Mac and use it directly with your Apple II!
This brought back Applied Engineering memories (:
- [Wayback/Archive] Yellowstone DB-19 Female Disk Adapter – Big Mess o’ Wires
The adapter includes a six inch ribbon cable and a detachable mini-board that converts the ribbon cable connector into a DB-19 female shape.
…
This adapter has custom wiring that’s specifically designed for use with Yellowstone, and should not be used with other disk hardware.
Can be connected directly to Yellowstone boardApple Disk II A2M0003BMOW Floppy EmuNaked Apple 5.25” DriveswDriveNaked Apple 3.5” DrivesRequires Yellowstone DB-19F adapterUnidisk 5.25 A9M0104Macintosh 800K External M0131Disk IIc A2M4050Apple SuperDrive (Apple FDHD Drive) G7287Duo Disk 5.25 A9M0108Unidisk 3.5 A2M2053AppleDisk 5.25 A9M01075Applied Engineering 3.5Apple 3.5 Drive A9M0106Laser FD100 5.25 A naked drive is a bare drive mechanism without any enclosure, such as an internal drive taken from a Macintosh, Apple IIc, or Apple IIc+.(note that’s a ~15 cm ribbon cable)
- [Wayback/Archive] Yellowstone Back From the Dead | Big Mess o’ Wires
- [Wayback/Archive] Yellowstone: Cloning the Apple II Liron | Big Mess o’ Wires
-
Floppy Emu Model C Deluxe Bundle
USD 130 [Wayback/Archive] Floppy Emu Model C Deluxe Bundle – Big Mess o’ Wires
The BMOW Floppy Emu is a disk emulator for classic Apple II, Macintosh, and Lisa computers.
…
The bundle includes:
- Floppy Emu Model C
- Frosted Ice Acrylic Case
- Vintage Apple Software Collection SD Card
- Full-Size SD Adapter
- Disk Extension Cable
- USD 110 [Wayback/Archive] Floppy Emu Model C – Big Mess o’ Wires
Articles and videos:
- [Wayback/Archive] Floppy Emu Technology Design | Big Mess o’ Wires
- [Wayback/Archive] Floppy Emu Disk Emulator for Apple II, Macintosh, and Lisa | Big Mess o’ Wires
There are way more, but these are a good start.
- USD 10 [Wayback/Archive] Frosted Ice Case for Floppy Emu Model C – Big Mess o’ Wires
- USD 15 [Wayback/Archive] Vintage Software Collection SD Card – Big Mess o’ Wires which includes the Full-Size SD Adapter
- USD 20 [Wayback/Archive] Yellowstone DB-19 Female Disk Adapter – Big Mess o’ Wires but with a 100cm cable instead of a ~15cm cable
[Wayback/Archive] BMOW Floppy EMU for Vintage Apple Computers! | Mastergeko4 – YouTube shot at the time the YouTuber was quite a novice, which brought back memories of me being young and figuring out things by fiddling with them and bumping my head against walls (:
-
Noisy Disk Mechanical Sounder with 2 ribbon cables attached
USD 20 [Wayback/Archive] Noisy Disk Mechanical Sounder – Big Mess o’ Wires
Noisy Disk uses a mechanical relay to create authentic-sounding mechanical stepping sounds for disk head movements for your Floppy Emu disk emulator’s virtual 5.25 inch floppy disk.
…
Nothing will be harmed if Noisy Disk is used with other computers or emulation modes, but you’ll hear strange clacking noises that don’t match the disk activity.
…
The product includes the Noisy Disk board with 2 x 10 pin rectangular input and output connectors, and a 6-inch extension cable for connecting to your Floppy Emu board.
This likely sounds exactly like the more expensive Disk Clicker which was reviewed at [Wayback/Archive] Testing the New Classic Floppy Clicker on Apple Floppy Emulator – Authentic Retro Sounds! – YouTube and sold at [Wayback/Archive] Disk Clicker – 8bitdevices.com
-
Internal/External Drive Switcher for Apple IIc
USD 25 [Wayback/Archive] Internal/External Drive Switcher for Apple IIc – Big Mess o’ Wires
At the flip of a switch, select which Apple IIc floppy drives should act as Drive 1 and Drive 2. Add support for dual external 5.25 inch floppy emulation. For the Apple IIc with the Floppy Emu disk emulator.
…
[Wayback/Archive] Internal/External Drive Switcher for Apple IIc | Big Mess o’ Wires
This is a two-part device: a signal tap that should be installed inside the Apple IIc, and a modified DB19 adapter with two slide switches for the external connection. Two female-female jumper wires are passed through a gap in the case to make the connection between the two parts.
-
Daisy Chainer Disk Coupler
USD 45 [Wayback/Archive] Daisy Chainer Disk Coupler – Big Mess o’ Wires
Link the Floppy Emu disk emulator into a daisy chain with other Apple II disk drives. For use with Floppy Emu Model B and C.
…
In order to work correctly, Apple II computers require daisy chained drives to be connected in a specific order:
- any 3.5 inch drives must go first in the chain
- Smartport and Unidisk 3.5 inch drives must go second
- any 5.25 inch drives must go last
There can be at most two drives of each type, six drives total.
…
There are two primary firmware versions for the Floppy Emu: normal firmware and Smartport daisy chain SPDC firmware. When using a Floppy Emu with the Daisy Chainer, the SPDC firmware is required if your Emu is configured to emulate a Smartport Hard Disk or a Unidisk 3.5. In all other cases, the normal firmware should be used.
[Wayback/Archive] Floppy Emu Update: Smartport Daisy-Chain Support | Big Mess o’ Wires
Most people should use the normal firmware version, and it’s the default for newly-purchased hardware. The Smartport daisy chain firmware version is only needed in uncommon situations when:
1. The Floppy Emu’s selected emulation mode is Smartport Hard Disk, Smartport Unit 2, or Unidisk 3.5AND
2. The Floppy Emu is plugged into the back of a BMOW Daisy Chainer or to the Apple Unidisk 3.5 drive, A2M2053.
The
wiki.apple2.orgdied, so here are archived links: [Wayback/Archive] wiki.apple2.org: A2 3.5 Drives -> Apple UniDisk 3.5 (A2M2053)Daisy Chainer clear acrylic case
Oh: there is also this one for it:
- USD 10 [Wayback/Archive] Clear Acrylic Case for Daisy Chainer – Big Mess o’ Wires
A clear acrylic case to protect and showcase your Daisy Chainer board. These custom-made Daisy Chainer cases protect your board in style!
…
This is a top-and-bottom “plate” style case with open sides. Assembly takes about 5 minutes.
-
Apple Disk Drive A/B Switch
USD 20 [Wayback/Archive] Apple Disk Drive A/B Switch – Big Mess o’ Wires
Select between a Floppy Emu and a real floppy drive at the flip of a switch. Includes switch module and one 3 foot 20-pin ribbon cable.
…
For Lisa computer owners, and Macs with only one internal floppy connector, disk drive emulation can be awkward sometimes. The Apple Disk Drive A/B Switch aims to eliminate that awkwardness. This accessory makes it possible to attach a Floppy Emu and a real floppy disk drive at the same time, and select between them with a switch. Both drives will be powered, but the computer will only “see” one drive at a time, depending on the switch position.
…
⚠ Do not use Floppy Emu’s Dual 5.25 mode in combination with the A/B Switch. It will cause disk errors and may damage the Floppy Emu or your other 5.25 inch drive.
Macintosh specific stuff from BMOW:
-
Mac Sync-inator VGA Sync Converter
USD 40 [Wayback/Archive] Mac Sync-inator VGA Sync Converter – Big Mess o’ Wires
Take the hassles out of vintage Macintosh monitor setup! The Mac Sync-inator is a Mac-to-VGA video converter with a powerful sync processor built-in.
…
[Wayback/Archive] Mac Sync-inator VGA Sync Converter | Big Mess o’ Wires has much more information including tables for the DIP-switches that set:
- Setting the Desired Video Resolution
- Choosing the Sync Processing Mode
Too bad this is not compatible with my Macintosh SE/30, but still interesting to know it exists.
-
ADB-USB Wombat Input Converter
USD 40 [Wayback/Archive] ADB-USB Wombat Input Converter – Big Mess o’ Wires
ADB-USB Wombat is a bidirectional input converter for USB and ADB keyboards and mice. It works in two directions, connecting modern USB peripherals to a classic ADB-based Macintosh or Apple IIgs computer, or ADB peripherals to a USB-based computer running Windows, OSX, or Linux. The foreign keyboards and mice behave exactly like native peripherals, requiring no special software or drivers – just plug it in and go. This is the Wombat main board. You will also need ADB and/or USB cables depending on your intended usage (sold separately).
[Wayback/Archive] Wombat ADB-USB Input Converter | Big Mess o’ Wires has extensive documentation.
USD 10 [Wayback/Archive] Black Acrylic Case for ADB-USB Wombat – Big Mess o’ Wires protects the top of the board (but not the sides)
USD 6 [Wayback/Archive] ADB Cable, 3 ft – Big Mess o’ Wires (sold out at the time of writing, but might be in stock when you read this)
Despite having spare ADB keyboards, I don’t have spare ADB mice, so this might come in really useful.
-
Mac ROM-inator II
USD 45 [Wayback/Archive] Mac ROM-inator II | Big Mess o’ Wires
This was actually a trip down memory lane, as 10 years ago, I bought a Macintosh SE/30, upgraded the memory, and helped the original author – Doug Brown – with their documentation:Want to add new features to your old Mac? The Mac ROM-inator II replaces the stock Macintosh ROM SIMM with a custom flash memory module. Add a bootable ROM disk, make your system 32-bit clean, gain HD20 hard disk support, and more. The Mac ROM-inator II supports the Macintosh SE/30, IIx, IIcx, IIci, IIfx, and IIsi.
…
The ROM-inator II is based on Doug Brown’s earlier Mac ROM SIMM design, used with permission.
…
Compatibility The ROM SIMM and pre-programmed ROM contents are compatible with the Macintosh SE/30, IIx, IIcx, IIci, IIfx, and IIsi. The SIMM simply snaps into the ROM socket on the computer’s logic board. Note the Macintosh SE differs from the SE/30 internally, and is not compatible with the ROM-inator II. CPU accelerators such as the Daystar PowerCache and Turbo series are not compatible with the ROM-inator II. Some SE/30 hardware may require a shim to ensure ideal fit of the SIMM – see instructions for details. If running Mac OS System 7.5 or later, some Mac models require a software patch to the System file.…
The ROM disk contains:- System 7.1, with System Update 3.0 and Apple CD-ROM Extension 5.3.1
- HD SC Setup 7.3.5 (patched to support formatting non-Apple hard disks)
- SCSI Probe 3.3 (for troubleshooting the SCSI bus)
- ResEdit 2.1.3
…
Usage Most of the ROM-inator II’s benefits are automatic: just install the SIMM, and you’ll gain HD20 support, 32-bit cleanliness, and custom sounds and icons. Only the ROM disk requires any user interaction. When first powered on, a Macintosh with the ROM-inator II will play a customized startup sound, and display diagnostic info about the amount of installed RAM, the current addressing mode, and the detected ROM disk type. After a moment, an interactive startup menu will be displayed. To boot from the ROM disk as a read-only disk, press the R key on the keyboard. Or to convert the ROM disk into a writable RAM disk, press the A key. Or to bypass the ROM disk, do nothing and wait five seconds. If no keys are pressed, the Macintosh will boot normally from an attached SCSI or HD20 disk, or wait for a floppy disk to be inserted. Note: If booting from a SCSI disk when the ROM-inator II is installed, any 32-bit enablers or extensions such as MODE32 or 32-Bit System Enabler must be removed from the disk’s System folder.[Wayback/Archive] Mac SE/30 with Upgraded ROM | Big Mess o’ Wires
- [Wayback/Archive] GitHub – dougg3/mac-rom-simm-programmer.software: Control software for Mac ROM SIMM programmer
- [Wayback/Archive] GitHub – dougg3/mac-rom-simm-programmer: Firmware for Mac ROM SIMM programmer
- [Wayback/Archive] GitHub – jpluimers/dougg3..mac-rom-simm-programmer: Firmware for Mac ROM SIMM programmer
- [Wayback/Archive] Wiki updates (images, links); added README.md to master branch; added downloads branch. by jpluimers · Pull Request #25 · dougg3/mac-rom-simm-programmer · GitHub
- a
Then there is a shop on the Cayman Islands that ships world wide and has both the Mac ROM SIMM and the Mac ROMM SIMM programmer:
- USD 10 [Wayback/Archive] RTC PCB for SE30 – CayMac Vintage’s Ko-fi Shop – Ko-fi ❤️ Where creators get support from fans through donations, memberships, shop sales and more! The original ‘Buy Me a Coffee’ Page.
Replacement RTC chip for the SE30. This RTC is a ATTiny85 on a PCB with its own crystal for better accuracy on the SE30. No battery is needed when using this RTC version as the P/RAM settings are stored in the flash RAM. The external crystal on the logic board is not needed either.
And there is [Wayback/Archive] a2heaven: For everyone who still loves and uses old computers.:
-
Liron Reborn
USD 60 [Wayback/Archive] Liron Reborn
Liron Reborn is a Samrt Port / Disk II controller card for Apple II/IIe computers.
It is a functional hardware compatible Liron clone , with original Liron card Firmware.
A difference from Original Liron card is that card can be used as a a standard 5.25 inch (Disk II) controller or Liron ( SmartPort ) card .
I likely won’t need this as the Yellowstone card looks way more promising
-
FASTChip //e – 65C02
USD 150 [Wayback/Archive] FASTChip //e – 65C02
The FASTChip //e accelerates the Apple //e™ by replacing the on-board microprocessor with a much faster one. Because the memory on the Apple //e™ can only run at a 1 MHz speed maximum, faster memory (SRAM) must be provided to increase performance and allow the 65C02/65C816 CPU to run at full speed.
To do this, the FASTChip //e contains 512KB/1024KB of fast SRAM memory. The clever design allows the acceleration of programs running in both main and auxiliary memory. The additional FASTChip //e memory can emulate both 192/448 KB fast RamWorks compatible RAM and 256/512 KB fast RamFactor (slinky) compatible RAM.
[Wayback/Archive] REVIEW: FastChip //e Accellerator by A2Heaven – YouTube
-
65C816->65C02 Board
USD 35 [Wayback/Archive] 65C816->65C02 Board
You can use 65C816->65C02 board to connect 65C816 CPU to your Apple II computer .
…
* This board was based on Daryl Rictor’s original design. More information can be found here: sbc.rictor.org/support/conv.html
[Wayback/Archive] 65816 to 6502 converter by Daryl Rictor.
-
DB19 to IDC20
USD 11 [Wayback/Archive] DB19 to IDC20 Floppy Disk adapter
DB19 to IDC20 Floppy Disk adapter
…
directly connect IDC20 Pin Cable connector to the 19-pin port of Apple IIc, or to a floppy controller with a 19-pin connector
Probably cheaper to use the package deals from BMOW
-
IDC20 to DB19 cable adapter
USD 13 [Wayback/Archive] IDC20 to DB19 cable adapter
The product is designed to be directly connect IDC20 pin connector to the DB19 pin port .
Likely the combo from BMOW is cheaper.
TrackStar II
- USD 75 [Wayback/Archive] TRAK STAR II
Readout of Disk Drive head position .
…
Constant Digital Readout of Disk Drive head position .
Work with any 5″ Apple II compatible Drive .
Display Full , Half and Quarter track head position .Nice idea, but has not been in stock for a long time and feels overpriced.
-
Quadlink Clone Kit
USD 160 [Wayback/Archive] Quadlink Clone Kit
It’s an ISA expansion card from the ’80s designed to turn your IBM PC (such as a 5150 or 5160) into an Apple ][! After booting and running the software, you can switch quickly between PC and Apple mode using Ctrl-Alt-A (for Apple) and Ctrl-Alt-P (for PC).
Kit contain all PCB , passive components and chips needed to build working Quadlink Clone .
[Wayback/Archive] GitHub – schlae/quapple: Quadlink clone turns your ancient IBM PC into an Apple ][
Only useful if I find back an ISA compatible PC.
-
3D Stickers set
USD 10 [Wayback/Archive] 3D Stickers set
Apple II logo and Disk II label sticker set .
Actually this is quite a nice idea, despite them having been out of stock like forever.
-
RamFactor1M
USD 85 [Wayback/Archive] RamFactor1M
RamFactor1M is based on Aplied Engineering RAMFactor card ( firmware is same as original ), however it uses more modern low power 1MB SRAM and can provided battery backup up to 1-2 Year with small CR2032 Battery.
The battery is for backup data (just like PowerFactor from Aplied Engineering ) and can be used as Solid State Disk.
This is a trip down memory lane, though back then school could not afford these.
-
Apple II Slot Extender
USD 40 [Wayback/Archive] Apple II Slot Extender
The Apple II slot extender allows you to easily and freely test the functionality and repair your Apple II cards outside of the computer.
You can also turn off voltages that aren’t necessary for the card to work to prevent testing errors.
Package include
- 1 x Apple II extender PCB bottom
- 1 x Apple II extender PCB Top
- 1 x 50 pin Flat ribbon cable with 0.5m length ( contact me if you want a longer cable )
- a
- a
- a
- a
- a
- a
- a
- a
One more shop (: I think I found it searching for [Wayback/Archive] BlueSCSI, but anyway at [Wayback/Archive] Shop – Joe’s Computer Museum, focussing on [Wayback/Archive] Apple //e Archives – Joe’s Computer Museum I found these interesting items:
-
A2Pico
USD 55 [Wayback/Archive] A2Pico – Multi-Function Card – Joe’s Computer Museum
A2Pico is, essentially, a universal peripheral card for your Apple ][ Computer. Want a Z80 CPM Card? Maybe you need inexpensive mass storage. Need to add SmartPort support to your machine? Or, maybe you’re a hacker and want to design your own function. A2Pico lets you do just that!
Using it easy: Flash it with the firmware you want to use (or write your own firmware!), put it in the appropriate Apple // slot and have fun!
NOTE: your card will come without firmware, so that you can choose to make the card whatever you like!
[Wayback/Archive] GitHub – oliverschmidt/a2pico: A2Pico
A2Pico is about Apple II peripheral cards based on the Raspberry Pi Pico. It consists of two parts:
-
A2DVI card
USD 50 [Wayback/Archive] A2DVI v2.0 – Apple II Digital Video Adapter – Joe’s Computer Museum
Unlike the below “universal” adapter, the A2DVI might be just the thing for me.The A2DVI produces a digital video stream from your Apple II’s memory. The signal is output via an HDMI-compatible connector, giving your Apple II the option of output to modern displays. No more analog signal conversion required.
-
JCM Universal Apple RGB Adapter
USD 20-35 (kit or assembled) [Wayback/Archive] JCM Universal Apple RGB Adapter – Joe’s Computer Museum
The Universal Apple RGB Adapter takes the 4-Bit TTL RGB signal from an Apple ///, the Apple /// Plus or the Apple IIe Video7-style RGB card and converts it to two formats: IBM-style CGA-Compatible TTL, and Apple IIgs Standard. On the Apple /// machines, it also connects the color NTSC signal from the rear connector to a standard RCA-Jack so you can use it.
Since I don’t have either an Apple ///, nore a Apple IIe Video7-style RGB card, this might not be fore me.
-
Why Cable? – Original DB19
USD 15-30 [Wayback/Archive] Why Cable? – Apple IIe Card Y-Cable Replacement (Original DB19) – Joe’s Computer Museum
Everybody wants the Apple IIe Card. Nobody has the “Y-Cable” that goes with it; they tend to get lost. So, I designed a replacement solution!
The Why Cable? Apple IIe Card Y-Cable Replacement solves your Floppy and Joystick problem with your Apple IIe Card. Just plug it into your card, then add your floppy drive and joystick and your Apple IIe card will work as intended!
This version emulates the original DB19 cable, and is fully compatible with all drives the Apple IIe Card lists as compatible.
Need to check out if I still have this cable/connector or need the below one (:
-
Why Cable? – 20-Pin Cable Version
USD 10-25 [Wayback/Archive] Why Cable? – Apple IIe Card Y-Cable Replacement (20-Pin Cable Version) – Joe’s Computer Museum
Everybody wants the Apple IIe Card. Nobody has the “Y-Cable” that goes with it; they tend to get lost. So, I designed a replacement solution!
The Why Cable? Apple IIe Card Y-Cable Replacement solves your Floppy and Joystick problem with your Apple IIe Card. Just plug it into your card, then add your floppy drive and joystick and your Apple IIe card will work as intended!
This version works with 20-pin ribbon cable connectors and supports any drive that properly emulates a standard 5.25 inch Disk ][ drive, including the FloppyEMU and wDrive.
And I need to check if it is missing, if I need the 19 or 20 pin version. Likely I need the 20-pin one.
- Some 3D printed replacement for your Apple //e opening covers on the back of your machine, and for your Alps Key Stems:
DB-19/DB-25/DB-9 back plates (3D printed, STL files if you want to print your own)
DB-19: outside view
DB-19: inside view
DB-25: outside view
DB-25: inside view
DB-25 for Audio Jacks: outside
DB-25 for Audio Jacks: inside
DB-9: outside view
DB-9: inside view
DB-25 with DB-9 opening: assembled
DB-25 with DB-9 opening: outside
DB-25 with DB-9 opening: inside
USD 1
[Wayback/Archive]
Apple //e DB-19 Back PlateUSD 1
[Wayback/Archive]
Apple //e DB-25 Back PlateUSD 1
[Wayback/Archive]
Apple //e DB-25 Back Plate for Audio JacksUSD 1
[Wayback/Archive]
Apple //e DB-9 Back PlateUSD 1
[Wayback/Archive]
Apple //e DB25 Back Plate with DB9 Opening[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stlAdding the hole in the design required thickening of the base and increasing the depth of the holding clips so they would not pull out when tension is applied to an attached external cable.Note that all link(ed?) to the same .stl file, which is only correct for the right most back plate: “DB-25 with DB-9 opening”.
All of these are based on [Wayback/Archive] Apple IIe port covers, thicker for FFF printers by scruss – Thingiverse which in turn is based on [Wayback/Archive] Apple IIe port covers, three sizes by option8 – Thingiverse.
Alps Key Stems (one of them has the wrong picture, but they are manufactured correctly; 3D printed; no STL-files on the product pages)
Alps Key Stems, Short – 10 Pack
Alps Key Stems, Long – 10 Pack
USD 5
[Wayback/Archive]
Alps Key Stems, Short – 10 Pack – Joe’s Computer MuseumUSD 5
[Wayback/Archive]
Alps Key Stems, Long – 10 Pack – Joe’s Computer MuseumThis might have been the base STL file for this: [Wayback] Hairpin-To-Alps-keycap-adaptor.stl
- Some 3D printed replacement for your Apple //e opening covers on the back of your machine, and for your Alps Key Stems:
- a
- a
- aa
- a
For all shops: I didn’t list all of their items, just the ones that I might use in the future.
An interesting device I did not know about either was the FujiNet one: it is fully open source! One thing to check out is where to order pre-assembled ones for Apple II series.
- [Wayback/Archive] FujiNet · GitHub
FujiNet is a multi-peripheral emulator and WiFi network device for vintage computers. The first completed hardware was for the Atari 8-Bit line of computers and development has begun for other systems (Coleco ADAM, Apple II, Commodore 64, Atari Lynx, ZX Spectrum and more) with the goal of supporting as many old systems as possible. What sets FujiNet apart from other WiFi devices is the new Network Device (the N Device). The N device allows vintage computers that do not have enough processing power to handle TCP/IP connections themselves to talk to the modern internet over WiFi. Virtual adapters have been created for many protocols including: TCP, UDP, HTTP, FTP, TNFS, HTTPS (SSL/TLS), SSH, TELNET, WebDAV and JSON parser. The FujiNet project is 100% completely open source, software and hardware. All code and schematics are available here.
- [Wayback/Archive] FutureVision Research was the only shop I found selling them, but I probably overlooked others.
- [Wayback/Archive] FujiNet – FutureVision Research
-
Apple II/III FujiNet w/ accesoiries
USD 110 [Wayback/Archive] FujiNet for Apple II & III (With Accessories) – FutureVision Research
The FujiApple Rev1.1 for SmartPort enabled Apple II computers emulates SmartPort drives, Disk II drives (read only), CP/M, Clock, Modem, and a new Network Device. Disk images can be mounted directly from the internet via TNFS servers or from the onboard MicroSD socket*. The Network device enables access to Internet protocols such as HTTP, HTTPS, TNFS, SSH, TCP, UDP and more.
…
This kit comes with the following (ribbon cable color may be gray or rainbow depending on availability):- FujiNet for Apple II & III
- DB-19 to IDC20 Female adapter
- 30cm IDC20 Female to Male cable
- 30cm IDC20 Female to Female cable
- DB-19 spacer
- Two different lengths of thumbscrews
- Two 1.375″ thumbscrews for use with IIe/III
- Two 1.5″ thumbscrews for use with IIc/gs/+
The page contains many more helpful information and links.
………………………………………………………………………………………………………………………………………………………………………………………………
Some non-shop links
- [Wayback/Archive] FloppyEmu vs. CFFA3000/Booti | Applefritter
- [Wayback/Archive] Plus Too Mac Replica | Big Mess o’ Wires
- [Wayback/Archive] Floppy Emu Disk Emulator? : apple2
Yes. I’d rank it as the most versatile as it works across the greatest number of machines (Apple 2s and Macs).
It is cheaper and more readily available than the other solutions.
The only slight downside is it isn’t as fast, direct memory access/processor wise, as the card solutions that exist – but those do use up a slot, and there isn’t much software that can take advantage of the speed difference anyway – and on a machine that only goes a couple Mhz anyway, it won’t make much difference.It’s 7 years old at this point, but Joe’s Computer Museum did an excellent video comparing the major options here:
https://youtu.be/Wjy6_qnTnv0a covering
- MicroDrive/Turbo
- CFFA3000
- Floppy Emu
- SDFloppy II
- UNISDISK Air 19 – [Wayback/Archive] UNISDISK Air Series, very hard to get
[Wayback/Archive] Apple II Mass Storage Benchmark Results – Joe’s Computer Museum
[Wayback/Archive] Apple II Mass Storage Mega Roundup – YouTube
- [Wayback/Archive] Nerdly Pleasures: wDrive v. Floppy Emu – Comparison of the Best Apple II Disk Emulators
- [Wayback/Archive] Thoughts on wDrive versus Floppy Emu? | Applefritter
- [Wayback/Archive] Fujinet for Apple II, SD card and Internet capable device for SmartPort | Applefritter (works with Yellowstone card)
- ………………………………………………………………………………………………
An external monitor on a Macingosh SE/30
- [Wayback/Archive] Mac SE can use an external Monitor?? – Apple Community
- ………………………………………………………
Mac SE/30 and Macintosh Classic
Since I own both a Macintosh SE/30 and a Macintosh Classic, these are relevant too:
- [Wayback/Archive] Classic II vs SE/30 – TidBITS
- [Wayback/Archive] Siblings – Macintosh SE and Mac Classic : VintageApple
- ……………………………………………………………………………………………
Queries
I used additional queries than the first blog post to complete this blog post. Here they are:
- [Wayback/Archive] macintosh Floppy Emu 3.5 – Google Suche
- [Wayback/Archive] apple 2 disk sd card – Google Suche
- [Wayback/Archive] Liron disk controller card – Google Search
- [Wayback/Archive] cffa vs floppy emu – Google Search
- [Wayback/Archive] floppy emu apple ii disk controller – Google Suche
- [Wayback/Archive] wDrive vs floppy emu – Google Search
- [Wayback/Archive] fujinet apple ii – Google Search
- [Wayback/Archive] Apple Liron – Search on Google
- [Wayback/Archive] Yellowstone fujinet – Sök på Google
- [Wayback/Archive] does floppy emu work with classic macintosh – Google Search
- [Wayback/Archive] mac se/30 versus macintosh classic – Google Suche
- ………………………………………………………………………………………………………………………………………………………………
- [Wayback/Archive] bluescsi v2 – Sök på Google
--jeroenRate this:
#12 #156 #25 #3dprint #3dprinting #4 #Apple #appleiigs #AprilApples
- USD 25 [Wayback/Archive] Apple IIc USB C power adapter with Volt Gauge – 8 bit stuff cool retro computer 3D gadgets and geekery
-
More Apple ][*, //* II* and classic Macintosh hardware upgrades
The mini micro classic Apple emulators related post last week became way too big, so here is the classic Apple 2/Macintosh hardware upgrade part follow-up I announced in Some notes on mini/micro Apple //e emulators.
Last week, I mentioned [Wayback/Archive] ARC Javmaster – YouTube. Let’s continue from there for an even bigger post (:
Javmaster actually has a shop at [Wayback/Archive] Welcome to the 8-bit stuff store – 8 bit stuff cool retro computer 3D gadgets and geekery with a lot of interesting (mainly Apple ][ era related) retro things like:
- USD 25 [Wayback/Archive] Apple IIc USB C power adapter with Volt Gauge – 8 bit stuff cool retro computer 3D gadgets and geekery
Apple IIc USB C power adapter with Volt Gauge with USB-C connected and showing 15.2 volts
[Wayback/Archive] Transform your Apple IIc experience with this sleek USB-C power supply replacement! – YouTube
- USD 120-430 [Wayback/Archive] Floppy Emu 3.5 Drive Case – 8 bit stuff cool retro computer 3D gadgets and geekery
Floppy Emu 3.5 Drive Case powered up with green screen fitting well together with an Apple //c plus
[Wayback/Archive] Step into the future of vintage computing with the Floppy Emu 3.5! – YouTube
[Wayback/Archive] New 3.5 drive case for Apple II & Macintosh Floppy Emu: soon at 8bitstuff.com! #3dprinting #Apple – YouTube
[Wayback/Archive] Starting GSOS 6.04 from the new Floppy Emu 3.5, a match made in heaven! #apple #3dprint #appleiigs – YouTube
- USD 120-430 [Wayback/Archive] Floppy Emulator Disk ][ Case – 8 bit stuff cool retro computer 3D gadgets and geekery
Floppy Emulator Disk ][ Case with green screen fitted in an original Apple ][ era 5.25 inch diskette drive case
[Wayback/Archive] New Release: Floppy Emu ][ Case Assembly Guide! – YouTube[Wayback/Archive] #AprilApples Guest episode: Watch Jon Assemble a Floppy Emu Case from Scratch! – YouTube
-
3D Printed Apple II Joystick – clear Special edition: internals
3D Printed Apple II Joystick – clear Special edition
3D Printed Apple II Joystick
USD 80-155 Apple II Joystick Recreation: cheapest is 3D printed in classic color, the other clear
The 3D recreation of the iconic Apple II Joystick, keeping all the classic features with brand new mechanical parts. The moving parts brand new, adapted to work seamlessly with Apple II’s that use the DB9 port.
The switches are brand-new Matias key switches, a new version of the ALPS keys that were so successful in most original keyboards.
By using these materials, the quality and durability are better. The 3D printed case and switches resemble the original and is crafted to be enjoyed and used with your retro systems.- [Wayback/Archive] 3D Printed Apple II Joystick – A Fusion of Nostalgia and Innovation – 8 bit stuff cool retro computer 3D gadgets and geekery
- [Wayback/Archive] 3D Printed Apple II Joystick – clear Special edition – 8 bit stuff cool retro computer 3D gadgets and geekery
[Wayback/Archive] Apple II Joystick Recreation – Rediscover the Ultimate Retro Gaming Experience! – YouTube
- [Wayback/Archive] 3D Printed Apple II Joystick – A Fusion of Nostalgia and Innovation – 8 bit stuff cool retro computer 3D gadgets and geekery
8bitstuff also pointed me to this shop with cool parts helping you fix Apple ][* and Apple //e and II* model issues: [Wayback/Archive] Shop | ReActiveMicro.com which is part of [Wayback/Archive] ReActiveMicro.com which has this great card in their catalog:
-
A2FPGA Multicard
USD 150 [Wayback/Archive] A2FPGA Multicard | ReActiveMicro.com
[Wayback/Archive] #156: Can One Apple II Card Replace Them All? – YouTube
The firmware is open source at [Wayback/Archive] GitHub – a2fpga/a2fpga_core: Apple II FPGA Co-Processor and still being maintained.
[Wayback/Archive] A2FPGA – The ReActiveMicro Apple II Wiki
The A2FPGA is primarily an HD video and Mockingboard-compatible sound card for the Apple II, II+, //e, and IIgs.
and other hardware like:
-
Disk ][+ v1.0 kit
USD 30-40 [Wayback/Archive] Disk ][+ – Assembled or Kit | ReActiveMicro.com
Disk ][+ v1.0 is a small PCB that installs into Apple Disk ][ drives. It replaces the red LED in the drives with a two-color LED, to better distinguish the reading phases, in green, from the writing phases, in red. Comes assembled or in kit form.
Notes:
- You need one set for each drive.
- I don’t really like the way they connect to the drive electronics, see picture below from [Wayback/Archive] Disk II+ – The ReActiveMicro Apple II Wiki . Instead of the pin, I would likely solder the wires to the electronics.
4 hook probes connected to the Disk II analog board.
-
Apple IIe Enhancement Kit
USD 30-35 [Wayback/Archive] IIe Enhancement Kit | ReActiveMicro.com
Comes with an ‘Enhanced’ paper template, 65C02 CPU, and all the ROM’s necessary to upgrade your Apple IIe.
[Wayback/Archive] Apple IIe Enhancement Kit – The ReActiveMicro Apple II Wiki
Note it has various options (USA vs European Apple //e, plus languages: check before you order!)
I need to check if my Apple //e already has this enhancement kit.
-
No-Slot Clock v1.0
USD 65 [Wayback/Archive] No-Slot Clock | ReActiveMicro.com
The No-Slot Clock v1.0 allows your Apple II to remember the date and time. It will work on an Apple II, Apple II+, Apple IIe, Apple IIc, and Clone systems. It features dual battery holders. Two CR1025 cells included.
The No Slot Clock does not fit in to the IIc or IIc+ with a RAM Card installed.
[Wayback/Archive] No-Slot Clock – The ReActiveMicro Apple II Wiki
Likely won’t needs this as ROMXe and ROMXc both include a clock.
-
Ultimate-Micro.com Apple II 3.5″ Disk Controller Card v1.0
USD 200 [Wayback/Archive] Apple II 3.5 Disk Controller Card | ReActiveMicro.com
This is the Apple II 3.5″ Disk Controller Card v1.0 from Ultimate-Micro.com.
The Apple II 3.5″ Disk Controller Card v1.0 is a clone of Apple’s Apple II 3.5″ Disk Controller Card. The disk controller card allows you to use 3.5-inch floppy disk drives, including the Apple SuperDrive and Apple 3.5 Drive, with all Apple II computers. This card also supports the operation of older model Apple II UniDisk 3.5 drives.
Not sure if I really want this one, especially with the USD 200 price tag: The
Ultimate-Micro.comdomain vanished and the Yellowstone Universal Disk Controller mentioned below at USD 170 (including cables) can do more. -
Apple II A2io Bluetooth Game Port Receiver
USD 20 [Wayback/Archive] A2io Bluetooth Game Port Receiver For Your Apple II Systems | ReActiveMicro.com
This is the A2io Bluetooth Game Port Receiver from CraftyMech and designed by Aaron Reid. Works on all Apple II systems with a 9 pin game port.
…
A2io allow you to connect and use a modern wireless game pad as either a joystick, paddle, or pad input device. You pair the game pad with your mobile device (phone/tablet/laptop) and then connect to the A2io. The mobile device acts like a translator between your Apple and game pad.
-
CFFA 300 REV C
USD 225 [Wayback/Archive] CFFA3000 v1.0 Rev C-RM for II, II+, ///, IIe, and IIgs | ReActiveMicro.com
This is the CFFA3000 v1.0 Rev C-RM built by ReActiveMicro under license from R&D Automation.
…
The CFFA3000 v1.0 Rev C-RM Controller is a Mass Storage Device and Floppy Emulator that once installed in your Apple II system acts like a solid-state Hard Drive using Compact Flash Cards and USB Flash Drives. Floppy Emulation allows users to load .PO images as if they were physical disk. See the manual for more details. There is also discussion about adding .WOZ support, and we will post updates if/when it happens.
Comes with CF Card as pictured, and with Remote option standard. Manual can be found here for review.
Plug and play ready, and fully tested. Comes started with **256MB** CF Card, preloaded with several ProDOS 8 volumes with games and utilities, and several GS/OS volumes. You can select which one to boot using the on-board firmware menu (press “M” key on power up).
[Wayback/Archive] wiki.reactivemicro.com/images/9/9d/2021-10-23-CFFA-RM_Manual.pdf
I already have this, including the original remote back in 2014 from dreher: [Wayback/Archive] CFFA3000 Run 3: Order Status
-
CFFA3000 Remote
USD 40 [Wayback/Archive] CFFA3000 – Remote Option With Cable | ReActiveMicro.com
This is the CFFA3000 Remote option built by ReActiveMicro under license from R&D Automation. ***REMOTE ONLY!***
ReActiveMicro is an authorized dealer and partner with R&D…
The CFFA3000 Remote option comes with the connector cable, which attaches to the CFFA3000 card installed in your Apple II system. It comes as pictured, with the Remote, the connection cable, and a 3D printed enclosure.
Finally it pointed me to [Wayback/Archive] Home | JD Micro which has RAMX (for Apple ][* systems) and ROMX (variants for any Apple 2 model) for which these are most applicable to my systems (both ROMX versions also contain the fonts mentioned in their blog post [Wayback/Archive] 11th May 2021 | JD Micro):
[Wayback/Archive] Review: ROMX+ Device for Apple II+ – YouTube
- [Wayback/Archive] ROMXe | JD Micro for Apple //e – includes clock
[Wayback/Archive] Review: ROMXe by JD Micro – More ROMS than you can shake a joystick at! – YouTube
- [Wayback/Archive] ROMXc | JD Micro for Apple IIc – includes clock
[Wayback/Archive] Boot Instantly – ROMXc Review for the Apple //c – YouTube
Other results from the queries I used in the post last week also returned some hardware that can be used for classic Apple machines:
- [Wayback/Archive] The ESP32 SoftCard for the Apple II | Applefritter
I’ve been working on a new card for the Apple II that would extend its capabilities using my favorite Wi-Fi module: the ESP32. I decided to called it a soft card, because similarly to the original Z80 SoftCard it contains its own processor allowing it to run software not originally meant for the Apple II. And similarly to the original 80-column card that was needed, it produces its own composite video enabled through a soft switch. Both NTSC and PAL are supported and can be switched using a command. In addition it can produce 8-bit sound that is mixed and played through the Apple II speaker. For most of its applications the card also needs a FAT32 formatted microSD card.
…
[Wayback/Archive] ESP32 SoftCard Expansion Card for the Apple II from CVT on Tindie
ESP32 SoftCard Expansion Card for the Apple II
- [Wayback/Archive] Apple2idiot card (ESP32) | Applefritter
It is an interesting and different take on interfacing an ESP32 module to an Apple II. It uses a dual ported SRAM instead of trying to interface the ESP32 to the Apple II bus using something like 74LVC245s or through a parallel chip like a 6522 or 82C55 or through a serial chip like a 6551 or 6850.
https://github.com/equant/apple2idiot
…
[Wayback/Archive] GitHub – equant/apple2idiot: A general purpose ESP32 IOT board for the Apple IIe
-
assembly lines
[Wayback/Archive] Shop – CT6502 and [Wayback/Archive] Shop – Page 2 of 2 – CT6502a
- [Wayback/Archive] Assembly Lines: The Mug – CT6502
Assembly Lines: The Mug; Print-on-demand from Printful.
Mug; handle left
Mug; handle behind
Mug; handle right
This is a really cool idea including the Choplifter and Lode Runner main sprites on the mug. The right picture shows you can also get it in 15oz size.
-
Apple II wDrive Disk Drive Emulator
[Wayback/Archive] Apple II wDrive Disk Drive Emulator – CT6502
The wDrive is a disk drive emulator for the Apple II (II+, IIe, IIc, IIGS) that boots disk images (WOZ, DSK, 2MG, HDV, etc) from an SD card.
Manufacturer: [Wayback/Archive] Mfa2 Workshop
We are developer of wDrive, softSP card and related accessories which are published through Kboo HK
Note it there are two options to choose from:
- USD ~80: wDrive only (Apple IIc and IIGS)
- USD ~100: wDrive plus SoftSP card (Apple II, II+, IIe)
The second option includes this one:
-
MFA2 SoftSP Card
[Wayback/Archive] Apple II MFA2 SoftSP Card wDrive or FujiNet – CT6502
The SoftSP card allows you to boot hard disk images or use FujiNet devices on an Apple II+ or IIe, which do not have SmartPort support.
The SoftSP card is not needed on the Apple IIc or Apple IIGS.
…
The SoftSP card should be placed into a slot lower than the wDrive disk controller card. Slot 1 or 2 usually works well.
Note: The SoftSP card will also work with the FloppyEMU. However, you MUST use a special drive cable that isolates pin 12, to avoid damaging your FloppyEMU. You do not need to use this cable with the wDrive, although it won’t cause any issues if you do. You can find details about the issue here.
That last bit is really really important as SoftSP only can be installed in a system that also connects to a FloppyEMU under these circumstances:
- Connect the FloppyEMU to a Yellowstone is a universal disk controller card for Apple II computers (see below), especially since the Yellowstone also supports both wDrive and FujiNet.
- Connect the FloppyEMU to an original Disk Controller, but cut wire #12 as explained in [Wayback/Archive] Floppy Emu SoftSP Warning | Big Mess o’ Wires
You can’t safely connect a Smartport device to a Disk II controller card, no matter how the card’s internal logic might be modified. That includes Floppy Emu when it’s configured in Smartport emulation mode. The reason is that Smartport devices connect pin 12 internally to ground. This is how other connected equipment and daisy-chained drives know that they’re Smartport drives, and it’s essential for correct daisy-chain operation of Smartport drives with the BMOW Daisy Chainer or the Apple Unidisk 3.5 drive.
Both options essentially makes the SoftSP unneeded for FloppyEMU, and with this signalling problem for wire #12 (which is the SmartPort compatibility indicator) I am not sure which other SmartPort devices besides wDrive will actually work with the Apple ][, Apple ][+ and Apple //e without damaging the SmartPort device.
- a
- a
- [Wayback/Archive] Assembly Lines: The Mug – CT6502
- a
Another shop via [Wayback/Archive] Big Mess o’ Wires -> [Wayback/Archive] Big Mess o’ Wires Store
Bring new life to your classic computer
From disk emulators to ROM upgrades, keyboard and mouse adapters, and more hardware creations, BMOW has your retrocomputer needs covered.
-
Yellowstone Universal Disk Controller Card and two DB-19 female adapters
[Wayback/Archive] Yellowstone Disk Controller Everything Bundle – Big Mess o’ Wires
Yellowstone is a universal disk controller card for Apple II computers. It supports nearly every type of Apple disk drive ever made, including standard 3.5 inch drives, 5.25 inch drives, smart drives like the Unidisk 3.5 and the BMOW Floppy Emu’s smartport hard disk, and even Macintosh 3.5 inch drives. Yellowstone combines the power of an Apple 3.5 Disk Controller Card, a standard 5.25 inch Disk II controller card, the Apple Liron controller, and more, all in a single card.
…
The “everything” bundle includes the latest version Yellowstone Universal Disk Controller Card and two DB-19 female adapters
- [Wayback/Archive] Yellowstone: Cloning the Apple II Liron | Big Mess o’ Wires
…
The “Liron” disk controller was introduced by Apple in 1985. More formally known as the Apple II UniDisk 3.5 Controller, it’s designed to work with a new generation of “smart” disk drives more sophisticated than the venerable Disk II 5.25 inch floppy drive. The smart disk port on the Liron is appropriately named the Smartport, and it can communicate with block-based storage devices such as the Unidisk 3.5 (an early 800K drive) and Smartport-based Apple II hard drives.
Why care about the Liron? The Apple IIc and Apple IIgs have integrated disk ports with built-in Smartport functionality, but for the earlier Apple II+ and IIe, the Liron is the only way to get a Smartport. For owners of the BMOW Floppy Emu disk emulator, the Liron card makes it possible to use the Floppy Emu as an external hard drive for the II+ and IIe. Unfortunately finding a Liron is difficult, and although they occasionally turn up on eBay, they’re quite expensive. That made cloning the Liron a logical first goal.…
- [Wayback/Archive] Yellowstone Universal Disk Controller – Big Mess o’ Wires
Article: [Wayback/Archive] Yellowstone Universal Disk Controller for Apple II | Big Mess o’ Wires – Run any disk drive with your Apple II computer!
Supported Drives
Need to attach a disk drive to your Apple II? Yellowstone has got you covered. Yellowstone is compatible with the Apple IIe, Apple IIgs, Apple II+, Apple II, and most Apple II clones. It works with these disk drives and drive emulators:
Can be connected directlyDisk II A2M0003Naked Apple 3.5” 800K, black labelNaked half-height Apple 5.25″Naked Apple 3.5” 800K, red labelFloppy Emu 5.25 modeNaked Apple 3.5” 1.44MB, auto-injectFloppy Emu Model C dual 5.25 modeNaked Apple 3.5” 1.44MB, manual-injectFloppy Emu 3.5 modewDriveFloppy Emu Unidisk 3.5 mode [1]Floppy Emu Smartport hard disk mode [1]And more…Requires optional DB-19F connectorUnidisk 5.25 A9M0104Macintosh 800K External M0131Disk IIc A2M4050Apple SuperDrive (Apple FDHD Drive) G7287Duo Disk 5.25 A9M0108Unidisk 3.5 A2M2053 [1]AppleDisk 5.25 A9M01075Applied Engineering 3.5 [2]Laser FD100 5.25Apple 3.5 Drive A9M0106And more…[1] smart drive
[2] partial compatibilityWhen using 3.5 inch drives, Yellowstone is compatible with Apple II standard 800K double-sided double-density disk media.
A naked drive is a bare drive mechanism without any enclosure, such as an internal drive taken from a Macintosh, Apple IIc, or Apple IIc+.
Yes, pull the internal 3.5 inch drive from an old Mac and use it directly with your Apple II!
This brought back Applied Engineering memories (:
- [Wayback/Archive] Yellowstone DB-19 Female Disk Adapter – Big Mess o’ Wires
The adapter includes a six inch ribbon cable and a detachable mini-board that converts the ribbon cable connector into a DB-19 female shape.
…
This adapter has custom wiring that’s specifically designed for use with Yellowstone, and should not be used with other disk hardware.
Can be connected directly to Yellowstone boardApple Disk II A2M0003BMOW Floppy EmuNaked Apple 5.25” DriveswDriveNaked Apple 3.5” DrivesRequires Yellowstone DB-19F adapterUnidisk 5.25 A9M0104Macintosh 800K External M0131Disk IIc A2M4050Apple SuperDrive (Apple FDHD Drive) G7287Duo Disk 5.25 A9M0108Unidisk 3.5 A2M2053AppleDisk 5.25 A9M01075Applied Engineering 3.5Apple 3.5 Drive A9M0106Laser FD100 5.25 A naked drive is a bare drive mechanism without any enclosure, such as an internal drive taken from a Macintosh, Apple IIc, or Apple IIc+.(note that’s a ~15 cm ribbon cable)
- [Wayback/Archive] Yellowstone Back From the Dead | Big Mess o’ Wires
- [Wayback/Archive] Yellowstone: Cloning the Apple II Liron | Big Mess o’ Wires
-
Floppy Emu Model C Deluxe Bundle
USD 130 [Wayback/Archive] Floppy Emu Model C Deluxe Bundle – Big Mess o’ Wires
The BMOW Floppy Emu is a disk emulator for classic Apple II, Macintosh, and Lisa computers.
…
The bundle includes:
- Floppy Emu Model C
- Frosted Ice Acrylic Case
- Vintage Apple Software Collection SD Card
- Full-Size SD Adapter
- Disk Extension Cable
- USD 110 [Wayback/Archive] Floppy Emu Model C – Big Mess o’ Wires
Articles and videos:
- [Wayback/Archive] Floppy Emu Technology Design | Big Mess o’ Wires
- [Wayback/Archive] Floppy Emu Disk Emulator for Apple II, Macintosh, and Lisa | Big Mess o’ Wires
There are way more, but these are a good start.
- USD 10 [Wayback/Archive] Frosted Ice Case for Floppy Emu Model C – Big Mess o’ Wires
- USD 15 [Wayback/Archive] Vintage Software Collection SD Card – Big Mess o’ Wires which includes the Full-Size SD Adapter
- USD 20 [Wayback/Archive] Yellowstone DB-19 Female Disk Adapter – Big Mess o’ Wires but with a 100cm cable instead of a ~15cm cable
[Wayback/Archive] BMOW Floppy EMU for Vintage Apple Computers! | Mastergeko4 – YouTube shot at the time the YouTuber was quite a novice, which brought back memories of me being young and figuring out things by fiddling with them and bumping my head against walls (:
-
Noisy Disk Mechanical Sounder with 2 ribbon cables attached
USD 20 [Wayback/Archive] Noisy Disk Mechanical Sounder – Big Mess o’ Wires
Noisy Disk uses a mechanical relay to create authentic-sounding mechanical stepping sounds for disk head movements for your Floppy Emu disk emulator’s virtual 5.25 inch floppy disk.
…
Nothing will be harmed if Noisy Disk is used with other computers or emulation modes, but you’ll hear strange clacking noises that don’t match the disk activity.
…
The product includes the Noisy Disk board with 2 x 10 pin rectangular input and output connectors, and a 6-inch extension cable for connecting to your Floppy Emu board.
This likely sounds exactly like the more expensive Disk Clicker which was reviewed at [Wayback/Archive] Testing the New Classic Floppy Clicker on Apple Floppy Emulator – Authentic Retro Sounds! – YouTube and sold at [Wayback/Archive] Disk Clicker – 8bitdevices.com
-
Internal/External Drive Switcher for Apple IIc
USD 25 [Wayback/Archive] Internal/External Drive Switcher for Apple IIc – Big Mess o’ Wires
At the flip of a switch, select which Apple IIc floppy drives should act as Drive 1 and Drive 2. Add support for dual external 5.25 inch floppy emulation. For the Apple IIc with the Floppy Emu disk emulator.
…
[Wayback/Archive] Internal/External Drive Switcher for Apple IIc | Big Mess o’ Wires
This is a two-part device: a signal tap that should be installed inside the Apple IIc, and a modified DB19 adapter with two slide switches for the external connection. Two female-female jumper wires are passed through a gap in the case to make the connection between the two parts.
-
Daisy Chainer Disk Coupler
USD 45 [Wayback/Archive] Daisy Chainer Disk Coupler – Big Mess o’ Wires
Link the Floppy Emu disk emulator into a daisy chain with other Apple II disk drives. For use with Floppy Emu Model B and C.
…
In order to work correctly, Apple II computers require daisy chained drives to be connected in a specific order:
- any 3.5 inch drives must go first in the chain
- Smartport and Unidisk 3.5 inch drives must go second
- any 5.25 inch drives must go last
There can be at most two drives of each type, six drives total.
…
There are two primary firmware versions for the Floppy Emu: normal firmware and Smartport daisy chain SPDC firmware. When using a Floppy Emu with the Daisy Chainer, the SPDC firmware is required if your Emu is configured to emulate a Smartport Hard Disk or a Unidisk 3.5. In all other cases, the normal firmware should be used.
[Wayback/Archive] Floppy Emu Update: Smartport Daisy-Chain Support | Big Mess o’ Wires
Most people should use the normal firmware version, and it’s the default for newly-purchased hardware. The Smartport daisy chain firmware version is only needed in uncommon situations when:
1. The Floppy Emu’s selected emulation mode is Smartport Hard Disk, Smartport Unit 2, or Unidisk 3.5AND
2. The Floppy Emu is plugged into the back of a BMOW Daisy Chainer or to the Apple Unidisk 3.5 drive, A2M2053.
The
wiki.apple2.orgdied, so here are archived links: [Wayback/Archive] wiki.apple2.org: A2 3.5 Drives -> Apple UniDisk 3.5 (A2M2053)Daisy Chainer clear acrylic case
Oh: there is also this one for it:
- USD 10 [Wayback/Archive] Clear Acrylic Case for Daisy Chainer – Big Mess o’ Wires
A clear acrylic case to protect and showcase your Daisy Chainer board. These custom-made Daisy Chainer cases protect your board in style!
…
This is a top-and-bottom “plate” style case with open sides. Assembly takes about 5 minutes.
-
Apple Disk Drive A/B Switch
USD 20 [Wayback/Archive] Apple Disk Drive A/B Switch – Big Mess o’ Wires
Select between a Floppy Emu and a real floppy drive at the flip of a switch. Includes switch module and one 3 foot 20-pin ribbon cable.
…
For Lisa computer owners, and Macs with only one internal floppy connector, disk drive emulation can be awkward sometimes. The Apple Disk Drive A/B Switch aims to eliminate that awkwardness. This accessory makes it possible to attach a Floppy Emu and a real floppy disk drive at the same time, and select between them with a switch. Both drives will be powered, but the computer will only “see” one drive at a time, depending on the switch position.
…
⚠ Do not use Floppy Emu’s Dual 5.25 mode in combination with the A/B Switch. It will cause disk errors and may damage the Floppy Emu or your other 5.25 inch drive.
Macintosh specific stuff from BMOW:
-
Mac Sync-inator VGA Sync Converter
USD 40 [Wayback/Archive] Mac Sync-inator VGA Sync Converter – Big Mess o’ Wires
Take the hassles out of vintage Macintosh monitor setup! The Mac Sync-inator is a Mac-to-VGA video converter with a powerful sync processor built-in.
…
[Wayback/Archive] Mac Sync-inator VGA Sync Converter | Big Mess o’ Wires has much more information including tables for the DIP-switches that set:
- Setting the Desired Video Resolution
- Choosing the Sync Processing Mode
Too bad this is not compatible with my Macintosh SE/30, but still interesting to know it exists.
-
ADB-USB Wombat Input Converter
USD 40 [Wayback/Archive] ADB-USB Wombat Input Converter – Big Mess o’ Wires
ADB-USB Wombat is a bidirectional input converter for USB and ADB keyboards and mice. It works in two directions, connecting modern USB peripherals to a classic ADB-based Macintosh or Apple IIgs computer, or ADB peripherals to a USB-based computer running Windows, OSX, or Linux. The foreign keyboards and mice behave exactly like native peripherals, requiring no special software or drivers – just plug it in and go. This is the Wombat main board. You will also need ADB and/or USB cables depending on your intended usage (sold separately).
[Wayback/Archive] Wombat ADB-USB Input Converter | Big Mess o’ Wires has extensive documentation.
USD 10 [Wayback/Archive] Black Acrylic Case for ADB-USB Wombat – Big Mess o’ Wires protects the top of the board (but not the sides)
USD 6 [Wayback/Archive] ADB Cable, 3 ft – Big Mess o’ Wires (sold out at the time of writing, but might be in stock when you read this)
Despite having spare ADB keyboards, I don’t have spare ADB mice, so this might come in really useful.
-
Mac ROM-inator II
USD 45 [Wayback/Archive] Mac ROM-inator II | Big Mess o’ Wires
This was actually a trip down memory lane, as 10 years ago, I bought a Macintosh SE/30, upgraded the memory, and helped the original author – Doug Brown – with their documentation:Want to add new features to your old Mac? The Mac ROM-inator II replaces the stock Macintosh ROM SIMM with a custom flash memory module. Add a bootable ROM disk, make your system 32-bit clean, gain HD20 hard disk support, and more. The Mac ROM-inator II supports the Macintosh SE/30, IIx, IIcx, IIci, IIfx, and IIsi.
…
The ROM-inator II is based on Doug Brown’s earlier Mac ROM SIMM design, used with permission.
…
Compatibility The ROM SIMM and pre-programmed ROM contents are compatible with the Macintosh SE/30, IIx, IIcx, IIci, IIfx, and IIsi. The SIMM simply snaps into the ROM socket on the computer’s logic board. Note the Macintosh SE differs from the SE/30 internally, and is not compatible with the ROM-inator II. CPU accelerators such as the Daystar PowerCache and Turbo series are not compatible with the ROM-inator II. Some SE/30 hardware may require a shim to ensure ideal fit of the SIMM – see instructions for details. If running Mac OS System 7.5 or later, some Mac models require a software patch to the System file.…
The ROM disk contains:- System 7.1, with System Update 3.0 and Apple CD-ROM Extension 5.3.1
- HD SC Setup 7.3.5 (patched to support formatting non-Apple hard disks)
- SCSI Probe 3.3 (for troubleshooting the SCSI bus)
- ResEdit 2.1.3
…
Usage Most of the ROM-inator II’s benefits are automatic: just install the SIMM, and you’ll gain HD20 support, 32-bit cleanliness, and custom sounds and icons. Only the ROM disk requires any user interaction. When first powered on, a Macintosh with the ROM-inator II will play a customized startup sound, and display diagnostic info about the amount of installed RAM, the current addressing mode, and the detected ROM disk type. After a moment, an interactive startup menu will be displayed. To boot from the ROM disk as a read-only disk, press the R key on the keyboard. Or to convert the ROM disk into a writable RAM disk, press the A key. Or to bypass the ROM disk, do nothing and wait five seconds. If no keys are pressed, the Macintosh will boot normally from an attached SCSI or HD20 disk, or wait for a floppy disk to be inserted. Note: If booting from a SCSI disk when the ROM-inator II is installed, any 32-bit enablers or extensions such as MODE32 or 32-Bit System Enabler must be removed from the disk’s System folder.[Wayback/Archive] Mac SE/30 with Upgraded ROM | Big Mess o’ Wires
- [Wayback/Archive] GitHub – dougg3/mac-rom-simm-programmer.software: Control software for Mac ROM SIMM programmer
- [Wayback/Archive] GitHub – dougg3/mac-rom-simm-programmer: Firmware for Mac ROM SIMM programmer
- [Wayback/Archive] GitHub – jpluimers/dougg3..mac-rom-simm-programmer: Firmware for Mac ROM SIMM programmer
- [Wayback/Archive] Wiki updates (images, links); added README.md to master branch; added downloads branch. by jpluimers · Pull Request #25 · dougg3/mac-rom-simm-programmer · GitHub
- a
Then there is a shop on the Cayman Islands that ships world wide and has both the Mac ROM SIMM and the Mac ROMM SIMM programmer:
- USD 10 [Wayback/Archive] RTC PCB for SE30 – CayMac Vintage’s Ko-fi Shop – Ko-fi ❤️ Where creators get support from fans through donations, memberships, shop sales and more! The original ‘Buy Me a Coffee’ Page.
Replacement RTC chip for the SE30. This RTC is a ATTiny85 on a PCB with its own crystal for better accuracy on the SE30. No battery is needed when using this RTC version as the P/RAM settings are stored in the flash RAM. The external crystal on the logic board is not needed either.
And there is [Wayback/Archive] a2heaven: For everyone who still loves and uses old computers.:
-
Liron Reborn
USD 60 [Wayback/Archive] Liron Reborn
Liron Reborn is a Samrt Port / Disk II controller card for Apple II/IIe computers.
It is a functional hardware compatible Liron clone , with original Liron card Firmware.
A difference from Original Liron card is that card can be used as a a standard 5.25 inch (Disk II) controller or Liron ( SmartPort ) card .
I likely won’t need this as the Yellowstone card looks way more promising
-
FASTChip //e – 65C02
USD 150 [Wayback/Archive] FASTChip //e – 65C02
The FASTChip //e accelerates the Apple //e™ by replacing the on-board microprocessor with a much faster one. Because the memory on the Apple //e™ can only run at a 1 MHz speed maximum, faster memory (SRAM) must be provided to increase performance and allow the 65C02/65C816 CPU to run at full speed.
To do this, the FASTChip //e contains 512KB/1024KB of fast SRAM memory. The clever design allows the acceleration of programs running in both main and auxiliary memory. The additional FASTChip //e memory can emulate both 192/448 KB fast RamWorks compatible RAM and 256/512 KB fast RamFactor (slinky) compatible RAM.
[Wayback/Archive] REVIEW: FastChip //e Accellerator by A2Heaven – YouTube
-
65C816->65C02 Board
USD 35 [Wayback/Archive] 65C816->65C02 Board
You can use 65C816->65C02 board to connect 65C816 CPU to your Apple II computer .
…
* This board was based on Daryl Rictor’s original design. More information can be found here: sbc.rictor.org/support/conv.html
[Wayback/Archive] 65816 to 6502 converter by Daryl Rictor.
-
DB19 to IDC20
USD 11 [Wayback/Archive] DB19 to IDC20 Floppy Disk adapter
DB19 to IDC20 Floppy Disk adapter
…
directly connect IDC20 Pin Cable connector to the 19-pin port of Apple IIc, or to a floppy controller with a 19-pin connector
Probably cheaper to use the package deals from BMOW
-
IDC20 to DB19 cable adapter
USD 13 [Wayback/Archive] IDC20 to DB19 cable adapter
The product is designed to be directly connect IDC20 pin connector to the DB19 pin port .
Likely the combo from BMOW is cheaper.
TrackStar II
- USD 75 [Wayback/Archive] TRAK STAR II
Readout of Disk Drive head position .
…
Constant Digital Readout of Disk Drive head position .
Work with any 5″ Apple II compatible Drive .
Display Full , Half and Quarter track head position .Nice idea, but has not been in stock for a long time and feels overpriced.
-
Quadlink Clone Kit
USD 160 [Wayback/Archive] Quadlink Clone Kit
It’s an ISA expansion card from the ’80s designed to turn your IBM PC (such as a 5150 or 5160) into an Apple ][! After booting and running the software, you can switch quickly between PC and Apple mode using Ctrl-Alt-A (for Apple) and Ctrl-Alt-P (for PC).
Kit contain all PCB , passive components and chips needed to build working Quadlink Clone .
[Wayback/Archive] GitHub – schlae/quapple: Quadlink clone turns your ancient IBM PC into an Apple ][
Only useful if I find back an ISA compatible PC.
-
3D Stickers set
USD 10 [Wayback/Archive] 3D Stickers set
Apple II logo and Disk II label sticker set .
Actually this is quite a nice idea, despite them having been out of stock like forever.
-
RamFactor1M
USD 85 [Wayback/Archive] RamFactor1M
RamFactor1M is based on Aplied Engineering RAMFactor card ( firmware is same as original ), however it uses more modern low power 1MB SRAM and can provided battery backup up to 1-2 Year with small CR2032 Battery.
The battery is for backup data (just like PowerFactor from Aplied Engineering ) and can be used as Solid State Disk.
This is a trip down memory lane, though back then school could not afford these.
-
Apple II Slot Extender
USD 40 [Wayback/Archive] Apple II Slot Extender
The Apple II slot extender allows you to easily and freely test the functionality and repair your Apple II cards outside of the computer.
You can also turn off voltages that aren’t necessary for the card to work to prevent testing errors.
Package include
- 1 x Apple II extender PCB bottom
- 1 x Apple II extender PCB Top
- 1 x 50 pin Flat ribbon cable with 0.5m length ( contact me if you want a longer cable )
- a
- a
- a
- a
- a
- a
- a
- a
One more shop (: I think I found it searching for [Wayback/Archive] BlueSCSI, but anyway at [Wayback/Archive] Shop – Joe’s Computer Museum, focussing on [Wayback/Archive] Apple //e Archives – Joe’s Computer Museum I found these interesting items:
-
A2Pico
USD 55 [Wayback/Archive] A2Pico – Multi-Function Card – Joe’s Computer Museum
A2Pico is, essentially, a universal peripheral card for your Apple ][ Computer. Want a Z80 CPM Card? Maybe you need inexpensive mass storage. Need to add SmartPort support to your machine? Or, maybe you’re a hacker and want to design your own function. A2Pico lets you do just that!
Using it easy: Flash it with the firmware you want to use (or write your own firmware!), put it in the appropriate Apple // slot and have fun!
NOTE: your card will come without firmware, so that you can choose to make the card whatever you like!
[Wayback/Archive] GitHub – oliverschmidt/a2pico: A2Pico
A2Pico is about Apple II peripheral cards based on the Raspberry Pi Pico. It consists of two parts:
-
A2DVI card
USD 50 [Wayback/Archive] A2DVI v2.0 – Apple II Digital Video Adapter – Joe’s Computer Museum
Unlike the below “universal” adapter, the A2DVI might be just the thing for me.The A2DVI produces a digital video stream from your Apple II’s memory. The signal is output via an HDMI-compatible connector, giving your Apple II the option of output to modern displays. No more analog signal conversion required.
-
JCM Universal Apple RGB Adapter
USD 20-35 (kit or assembled) [Wayback/Archive] JCM Universal Apple RGB Adapter – Joe’s Computer Museum
The Universal Apple RGB Adapter takes the 4-Bit TTL RGB signal from an Apple ///, the Apple /// Plus or the Apple IIe Video7-style RGB card and converts it to two formats: IBM-style CGA-Compatible TTL, and Apple IIgs Standard. On the Apple /// machines, it also connects the color NTSC signal from the rear connector to a standard RCA-Jack so you can use it.
Since I don’t have either an Apple ///, nore a Apple IIe Video7-style RGB card, this might not be fore me.
-
Why Cable? – Original DB19
USD 15-30 [Wayback/Archive] Why Cable? – Apple IIe Card Y-Cable Replacement (Original DB19) – Joe’s Computer Museum
Everybody wants the Apple IIe Card. Nobody has the “Y-Cable” that goes with it; they tend to get lost. So, I designed a replacement solution!
The Why Cable? Apple IIe Card Y-Cable Replacement solves your Floppy and Joystick problem with your Apple IIe Card. Just plug it into your card, then add your floppy drive and joystick and your Apple IIe card will work as intended!
This version emulates the original DB19 cable, and is fully compatible with all drives the Apple IIe Card lists as compatible.
Need to check out if I still have this cable/connector or need the below one (:
-
Why Cable? – 20-Pin Cable Version
USD 10-25 [Wayback/Archive] Why Cable? – Apple IIe Card Y-Cable Replacement (20-Pin Cable Version) – Joe’s Computer Museum
Everybody wants the Apple IIe Card. Nobody has the “Y-Cable” that goes with it; they tend to get lost. So, I designed a replacement solution!
The Why Cable? Apple IIe Card Y-Cable Replacement solves your Floppy and Joystick problem with your Apple IIe Card. Just plug it into your card, then add your floppy drive and joystick and your Apple IIe card will work as intended!
This version works with 20-pin ribbon cable connectors and supports any drive that properly emulates a standard 5.25 inch Disk ][ drive, including the FloppyEMU and wDrive.
And I need to check if it is missing, if I need the 19 or 20 pin version. Likely I need the 20-pin one.
- Some 3D printed replacement for your Apple //e opening covers on the back of your machine, and for your Alps Key Stems:
DB-19/DB-25/DB-9 back plates (3D printed, STL files if you want to print your own)
DB-19: outside view
DB-19: inside view
DB-25: outside view
DB-25: inside view
DB-25 for Audio Jacks: outside
DB-25 for Audio Jacks: inside
DB-9: outside view
DB-9: inside view
DB-25 with DB-9 opening: assembled
DB-25 with DB-9 opening: outside
DB-25 with DB-9 opening: inside
USD 1
[Wayback/Archive]
Apple //e DB-19 Back PlateUSD 1
[Wayback/Archive]
Apple //e DB-25 Back PlateUSD 1
[Wayback/Archive]
Apple //e DB-25 Back Plate for Audio JacksUSD 1
[Wayback/Archive]
Apple //e DB-9 Back PlateUSD 1
[Wayback/Archive]
Apple //e DB25 Back Plate with DB9 Opening[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stlAdding the hole in the design required thickening of the base and increasing the depth of the holding clips so they would not pull out when tension is applied to an attached external cable.Note that all link(ed?) to the same .stl file, which is only correct for the right most back plate: “DB-25 with DB-9 opening”.
All of these are based on [Wayback/Archive] Apple IIe port covers, thicker for FFF printers by scruss – Thingiverse which in turn is based on [Wayback/Archive] Apple IIe port covers, three sizes by option8 – Thingiverse.
Alps Key Stems (one of them has the wrong picture, but they are manufactured correctly; 3D printed; no STL-files on the product pages)
Alps Key Stems, Short – 10 Pack
Alps Key Stems, Long – 10 Pack
USD 5
[Wayback/Archive]
Alps Key Stems, Short – 10 Pack – Joe’s Computer MuseumUSD 5
[Wayback/Archive]
Alps Key Stems, Long – 10 Pack – Joe’s Computer MuseumThis might have been the base STL file for this: [Wayback] Hairpin-To-Alps-keycap-adaptor.stl
- Some 3D printed replacement for your Apple //e opening covers on the back of your machine, and for your Alps Key Stems:
- a
- a
- aa
- a
For all shops: I didn’t list all of their items, just the ones that I might use in the future.
An interesting device I did not know about either was the FujiNet one: it is fully open source! One thing to check out is where to order pre-assembled ones for Apple II series.
- [Wayback/Archive] FujiNet · GitHub
FujiNet is a multi-peripheral emulator and WiFi network device for vintage computers. The first completed hardware was for the Atari 8-Bit line of computers and development has begun for other systems (Coleco ADAM, Apple II, Commodore 64, Atari Lynx, ZX Spectrum and more) with the goal of supporting as many old systems as possible. What sets FujiNet apart from other WiFi devices is the new Network Device (the N Device). The N device allows vintage computers that do not have enough processing power to handle TCP/IP connections themselves to talk to the modern internet over WiFi. Virtual adapters have been created for many protocols including: TCP, UDP, HTTP, FTP, TNFS, HTTPS (SSL/TLS), SSH, TELNET, WebDAV and JSON parser. The FujiNet project is 100% completely open source, software and hardware. All code and schematics are available here.
- [Wayback/Archive] FutureVision Research was the only shop I found selling them, but I probably overlooked others.
- [Wayback/Archive] FujiNet – FutureVision Research
-
Apple II/III FujiNet w/ accesoiries
USD 110 [Wayback/Archive] FujiNet for Apple II & III (With Accessories) – FutureVision Research
The FujiApple Rev1.1 for SmartPort enabled Apple II computers emulates SmartPort drives, Disk II drives (read only), CP/M, Clock, Modem, and a new Network Device. Disk images can be mounted directly from the internet via TNFS servers or from the onboard MicroSD socket*. The Network device enables access to Internet protocols such as HTTP, HTTPS, TNFS, SSH, TCP, UDP and more.
…
This kit comes with the following (ribbon cable color may be gray or rainbow depending on availability):- FujiNet for Apple II & III
- DB-19 to IDC20 Female adapter
- 30cm IDC20 Female to Male cable
- 30cm IDC20 Female to Female cable
- DB-19 spacer
- Two different lengths of thumbscrews
- Two 1.375″ thumbscrews for use with IIe/III
- Two 1.5″ thumbscrews for use with IIc/gs/+
The page contains many more helpful information and links.
………………………………………………………………………………………………………………………………………………………………………………………………
Some non-shop links
- [Wayback/Archive] FloppyEmu vs. CFFA3000/Booti | Applefritter
- [Wayback/Archive] Plus Too Mac Replica | Big Mess o’ Wires
- [Wayback/Archive] Floppy Emu Disk Emulator? : apple2
Yes. I’d rank it as the most versatile as it works across the greatest number of machines (Apple 2s and Macs).
It is cheaper and more readily available than the other solutions.
The only slight downside is it isn’t as fast, direct memory access/processor wise, as the card solutions that exist – but those do use up a slot, and there isn’t much software that can take advantage of the speed difference anyway – and on a machine that only goes a couple Mhz anyway, it won’t make much difference.It’s 7 years old at this point, but Joe’s Computer Museum did an excellent video comparing the major options here:
https://youtu.be/Wjy6_qnTnv0a covering
- MicroDrive/Turbo
- CFFA3000
- Floppy Emu
- SDFloppy II
- UNISDISK Air 19 – [Wayback/Archive] UNISDISK Air Series, very hard to get
[Wayback/Archive] Apple II Mass Storage Benchmark Results – Joe’s Computer Museum
[Wayback/Archive] Apple II Mass Storage Mega Roundup – YouTube
- [Wayback/Archive] Nerdly Pleasures: wDrive v. Floppy Emu – Comparison of the Best Apple II Disk Emulators
- [Wayback/Archive] Thoughts on wDrive versus Floppy Emu? | Applefritter
- [Wayback/Archive] Fujinet for Apple II, SD card and Internet capable device for SmartPort | Applefritter (works with Yellowstone card)
- ………………………………………………………………………………………………
An external monitor on a Macingosh SE/30
- [Wayback/Archive] Mac SE can use an external Monitor?? – Apple Community
- ………………………………………………………
Mac SE/30 and Macintosh Classic
Since I own both a Macintosh SE/30 and a Macintosh Classic, these are relevant too:
- [Wayback/Archive] Classic II vs SE/30 – TidBITS
- [Wayback/Archive] Siblings – Macintosh SE and Mac Classic : VintageApple
- ……………………………………………………………………………………………
Queries
I used additional queries than the first blog post to complete this blog post. Here they are:
- [Wayback/Archive] macintosh Floppy Emu 3.5 – Google Suche
- [Wayback/Archive] apple 2 disk sd card – Google Suche
- [Wayback/Archive] Liron disk controller card – Google Search
- [Wayback/Archive] cffa vs floppy emu – Google Search
- [Wayback/Archive] floppy emu apple ii disk controller – Google Suche
- [Wayback/Archive] wDrive vs floppy emu – Google Search
- [Wayback/Archive] fujinet apple ii – Google Search
- [Wayback/Archive] Apple Liron – Search on Google
- [Wayback/Archive] Yellowstone fujinet – Sök på Google
- [Wayback/Archive] does floppy emu work with classic macintosh – Google Search
- [Wayback/Archive] mac se/30 versus macintosh classic – Google Suche
- ………………………………………………………………………………………………………………………………………………………………
- [Wayback/Archive] bluescsi v2 – Sök på Google
--jeroenRate this:
#12 #156 #25 #3dprint #3dprinting #4 #Apple #appleiigs #AprilApples
- USD 25 [Wayback/Archive] Apple IIc USB C power adapter with Volt Gauge – 8 bit stuff cool retro computer 3D gadgets and geekery
-
More Apple ][*, //* II* and classic Macintosh hardware upgrades
The mini micro classic Apple emulators related post last week became way too big, so here is the classic Apple 2/Macintosh hardware upgrade part follow-up I announced in Some notes on mini/micro Apple //e emulators.
Last week, I mentioned [Wayback/Archive] ARC Javmaster – YouTube. Let’s continue from there for an even bigger post (:
Javmaster actually has a shop at [Wayback/Archive] Welcome to the 8-bit stuff store – 8 bit stuff cool retro computer 3D gadgets and geekery with a lot of interesting (mainly Apple ][ era related) retro things like:
- USD 25 [Wayback/Archive] Apple IIc USB C power adapter with Volt Gauge – 8 bit stuff cool retro computer 3D gadgets and geekery
Apple IIc USB C power adapter with Volt Gauge with USB-C connected and showing 15.2 volts
[Wayback/Archive] Transform your Apple IIc experience with this sleek USB-C power supply replacement! – YouTube
- USD 120-430 [Wayback/Archive] Floppy Emu 3.5 Drive Case – 8 bit stuff cool retro computer 3D gadgets and geekery
Floppy Emu 3.5 Drive Case powered up with green screen fitting well together with an Apple //c plus
[Wayback/Archive] Step into the future of vintage computing with the Floppy Emu 3.5! – YouTube
[Wayback/Archive] New 3.5 drive case for Apple II & Macintosh Floppy Emu: soon at 8bitstuff.com! #3dprinting #Apple – YouTube
[Wayback/Archive] Starting GSOS 6.04 from the new Floppy Emu 3.5, a match made in heaven! #apple #3dprint #appleiigs – YouTube
- USD 120-430 [Wayback/Archive] Floppy Emulator Disk ][ Case – 8 bit stuff cool retro computer 3D gadgets and geekery
Floppy Emulator Disk ][ Case with green screen fitted in an original Apple ][ era 5.25 inch diskette drive case
[Wayback/Archive] New Release: Floppy Emu ][ Case Assembly Guide! – YouTube[Wayback/Archive] #AprilApples Guest episode: Watch Jon Assemble a Floppy Emu Case from Scratch! – YouTube
-
3D Printed Apple II Joystick – clear Special edition: internals
3D Printed Apple II Joystick – clear Special edition
3D Printed Apple II Joystick
USD 80-155 Apple II Joystick Recreation: cheapest is 3D printed in classic color, the other clear
The 3D recreation of the iconic Apple II Joystick, keeping all the classic features with brand new mechanical parts. The moving parts brand new, adapted to work seamlessly with Apple II’s that use the DB9 port.
The switches are brand-new Matias key switches, a new version of the ALPS keys that were so successful in most original keyboards.
By using these materials, the quality and durability are better. The 3D printed case and switches resemble the original and is crafted to be enjoyed and used with your retro systems.- [Wayback/Archive] 3D Printed Apple II Joystick – A Fusion of Nostalgia and Innovation – 8 bit stuff cool retro computer 3D gadgets and geekery
- [Wayback/Archive] 3D Printed Apple II Joystick – clear Special edition – 8 bit stuff cool retro computer 3D gadgets and geekery
[Wayback/Archive] Apple II Joystick Recreation – Rediscover the Ultimate Retro Gaming Experience! – YouTube
- [Wayback/Archive] 3D Printed Apple II Joystick – A Fusion of Nostalgia and Innovation – 8 bit stuff cool retro computer 3D gadgets and geekery
8bitstuff also pointed me to this shop with cool parts helping you fix Apple ][* and Apple //e and II* model issues: [Wayback/Archive] Shop | ReActiveMicro.com which is part of [Wayback/Archive] ReActiveMicro.com which has this great card in their catalog:
-
A2FPGA Multicard
USD 150 [Wayback/Archive] A2FPGA Multicard | ReActiveMicro.com
[Wayback/Archive] #156: Can One Apple II Card Replace Them All? – YouTube
The firmware is open source at [Wayback/Archive] GitHub – a2fpga/a2fpga_core: Apple II FPGA Co-Processor and still being maintained.
[Wayback/Archive] A2FPGA – The ReActiveMicro Apple II Wiki
The A2FPGA is primarily an HD video and Mockingboard-compatible sound card for the Apple II, II+, //e, and IIgs.
and other hardware like:
-
Disk ][+ v1.0 kit
USD 30-40 [Wayback/Archive] Disk ][+ – Assembled or Kit | ReActiveMicro.com
Disk ][+ v1.0 is a small PCB that installs into Apple Disk ][ drives. It replaces the red LED in the drives with a two-color LED, to better distinguish the reading phases, in green, from the writing phases, in red. Comes assembled or in kit form.
Notes:
- You need one set for each drive.
- I don’t really like the way they connect to the drive electronics, see picture below from [Wayback/Archive] Disk II+ – The ReActiveMicro Apple II Wiki . Instead of the pin, I would likely solder the wires to the electronics.
4 hook probes connected to the Disk II analog board.
-
Apple IIe Enhancement Kit
USD 30-35 [Wayback/Archive] IIe Enhancement Kit | ReActiveMicro.com
Comes with an ‘Enhanced’ paper template, 65C02 CPU, and all the ROM’s necessary to upgrade your Apple IIe.
[Wayback/Archive] Apple IIe Enhancement Kit – The ReActiveMicro Apple II Wiki
Note it has various options (USA vs European Apple //e, plus languages: check before you order!)
I need to check if my Apple //e already has this enhancement kit.
-
No-Slot Clock v1.0
USD 65 [Wayback/Archive] No-Slot Clock | ReActiveMicro.com
The No-Slot Clock v1.0 allows your Apple II to remember the date and time. It will work on an Apple II, Apple II+, Apple IIe, Apple IIc, and Clone systems. It features dual battery holders. Two CR1025 cells included.
The No Slot Clock does not fit in to the IIc or IIc+ with a RAM Card installed.
[Wayback/Archive] No-Slot Clock – The ReActiveMicro Apple II Wiki
Likely won’t needs this as ROMXe and ROMXc both include a clock.
-
Ultimate-Micro.com Apple II 3.5″ Disk Controller Card v1.0
USD 200 [Wayback/Archive] Apple II 3.5 Disk Controller Card | ReActiveMicro.com
This is the Apple II 3.5″ Disk Controller Card v1.0 from Ultimate-Micro.com.
The Apple II 3.5″ Disk Controller Card v1.0 is a clone of Apple’s Apple II 3.5″ Disk Controller Card. The disk controller card allows you to use 3.5-inch floppy disk drives, including the Apple SuperDrive and Apple 3.5 Drive, with all Apple II computers. This card also supports the operation of older model Apple II UniDisk 3.5 drives.
Not sure if I really want this one, especially with the USD 200 price tag: The
Ultimate-Micro.comdomain vanished and the Yellowstone Universal Disk Controller mentioned below at USD 170 (including cables) can do more. -
Apple II A2io Bluetooth Game Port Receiver
USD 20 [Wayback/Archive] A2io Bluetooth Game Port Receiver For Your Apple II Systems | ReActiveMicro.com
This is the A2io Bluetooth Game Port Receiver from CraftyMech and designed by Aaron Reid. Works on all Apple II systems with a 9 pin game port.
…
A2io allow you to connect and use a modern wireless game pad as either a joystick, paddle, or pad input device. You pair the game pad with your mobile device (phone/tablet/laptop) and then connect to the A2io. The mobile device acts like a translator between your Apple and game pad.
-
CFFA 300 REV C
USD 225 [Wayback/Archive] CFFA3000 v1.0 Rev C-RM for II, II+, ///, IIe, and IIgs | ReActiveMicro.com
This is the CFFA3000 v1.0 Rev C-RM built by ReActiveMicro under license from R&D Automation.
…
The CFFA3000 v1.0 Rev C-RM Controller is a Mass Storage Device and Floppy Emulator that once installed in your Apple II system acts like a solid-state Hard Drive using Compact Flash Cards and USB Flash Drives. Floppy Emulation allows users to load .PO images as if they were physical disk. See the manual for more details. There is also discussion about adding .WOZ support, and we will post updates if/when it happens.
Comes with CF Card as pictured, and with Remote option standard. Manual can be found here for review.
Plug and play ready, and fully tested. Comes started with **256MB** CF Card, preloaded with several ProDOS 8 volumes with games and utilities, and several GS/OS volumes. You can select which one to boot using the on-board firmware menu (press “M” key on power up).
[Wayback/Archive] wiki.reactivemicro.com/images/9/9d/2021-10-23-CFFA-RM_Manual.pdf
I already have this, including the original remote back in 2014 from dreher: [Wayback/Archive] CFFA3000 Run 3: Order Status
-
CFFA3000 Remote
USD 40 [Wayback/Archive] CFFA3000 – Remote Option With Cable | ReActiveMicro.com
This is the CFFA3000 Remote option built by ReActiveMicro under license from R&D Automation. ***REMOTE ONLY!***
ReActiveMicro is an authorized dealer and partner with R&D…
The CFFA3000 Remote option comes with the connector cable, which attaches to the CFFA3000 card installed in your Apple II system. It comes as pictured, with the Remote, the connection cable, and a 3D printed enclosure.
Finally it pointed me to [Wayback/Archive] Home | JD Micro which has RAMX (for Apple ][* systems) and ROMX (variants for any Apple 2 model) for which these are most applicable to my systems (both ROMX versions also contain the fonts mentioned in their blog post [Wayback/Archive] 11th May 2021 | JD Micro):
[Wayback/Archive] Review: ROMX+ Device for Apple II+ – YouTube
- [Wayback/Archive] ROMXe | JD Micro for Apple //e – includes clock
[Wayback/Archive] Review: ROMXe by JD Micro – More ROMS than you can shake a joystick at! – YouTube
- [Wayback/Archive] ROMXc | JD Micro for Apple IIc – includes clock
[Wayback/Archive] Boot Instantly – ROMXc Review for the Apple //c – YouTube
Other results from the queries I used in the post last week also returned some hardware that can be used for classic Apple machines:
- [Wayback/Archive] The ESP32 SoftCard for the Apple II | Applefritter
I’ve been working on a new card for the Apple II that would extend its capabilities using my favorite Wi-Fi module: the ESP32. I decided to called it a soft card, because similarly to the original Z80 SoftCard it contains its own processor allowing it to run software not originally meant for the Apple II. And similarly to the original 80-column card that was needed, it produces its own composite video enabled through a soft switch. Both NTSC and PAL are supported and can be switched using a command. In addition it can produce 8-bit sound that is mixed and played through the Apple II speaker. For most of its applications the card also needs a FAT32 formatted microSD card.
…
[Wayback/Archive] ESP32 SoftCard Expansion Card for the Apple II from CVT on Tindie
ESP32 SoftCard Expansion Card for the Apple II
- [Wayback/Archive] Apple2idiot card (ESP32) | Applefritter
It is an interesting and different take on interfacing an ESP32 module to an Apple II. It uses a dual ported SRAM instead of trying to interface the ESP32 to the Apple II bus using something like 74LVC245s or through a parallel chip like a 6522 or 82C55 or through a serial chip like a 6551 or 6850.
https://github.com/equant/apple2idiot
…
[Wayback/Archive] GitHub – equant/apple2idiot: A general purpose ESP32 IOT board for the Apple IIe
-
assembly lines
[Wayback/Archive] Shop – CT6502 and [Wayback/Archive] Shop – Page 2 of 2 – CT6502a
- [Wayback/Archive] Assembly Lines: The Mug – CT6502
Assembly Lines: The Mug; Print-on-demand from Printful.
Mug; handle left
Mug; handle behind
Mug; handle right
This is a really cool idea including the Choplifter and Lode Runner main sprites on the mug. The right picture shows you can also get it in 15oz size.
-
Apple II wDrive Disk Drive Emulator
[Wayback/Archive] Apple II wDrive Disk Drive Emulator – CT6502
The wDrive is a disk drive emulator for the Apple II (II+, IIe, IIc, IIGS) that boots disk images (WOZ, DSK, 2MG, HDV, etc) from an SD card.
Manufacturer: [Wayback/Archive] Mfa2 Workshop
We are developer of wDrive, softSP card and related accessories which are published through Kboo HK
Note it there are two options to choose from:
- USD ~80: wDrive only (Apple IIc and IIGS)
- USD ~100: wDrive plus SoftSP card (Apple II, II+, IIe)
The second option includes this one:
-
MFA2 SoftSP Card
[Wayback/Archive] Apple II MFA2 SoftSP Card wDrive or FujiNet – CT6502
The SoftSP card allows you to boot hard disk images or use FujiNet devices on an Apple II+ or IIe, which do not have SmartPort support.
The SoftSP card is not needed on the Apple IIc or Apple IIGS.
…
The SoftSP card should be placed into a slot lower than the wDrive disk controller card. Slot 1 or 2 usually works well.
Note: The SoftSP card will also work with the FloppyEMU. However, you MUST use a special drive cable that isolates pin 12, to avoid damaging your FloppyEMU. You do not need to use this cable with the wDrive, although it won’t cause any issues if you do. You can find details about the issue here.
That last bit is really really important as SoftSP only can be installed in a system that also connects to a FloppyEMU under these circumstances:
- Connect the FloppyEMU to a Yellowstone is a universal disk controller card for Apple II computers (see below), especially since the Yellowstone also supports both wDrive and FujiNet.
- Connect the FloppyEMU to an original Disk Controller, but cut wire #12 as explained in [Wayback/Archive] Floppy Emu SoftSP Warning | Big Mess o’ Wires
You can’t safely connect a Smartport device to a Disk II controller card, no matter how the card’s internal logic might be modified. That includes Floppy Emu when it’s configured in Smartport emulation mode. The reason is that Smartport devices connect pin 12 internally to ground. This is how other connected equipment and daisy-chained drives know that they’re Smartport drives, and it’s essential for correct daisy-chain operation of Smartport drives with the BMOW Daisy Chainer or the Apple Unidisk 3.5 drive.
Both options essentially makes the SoftSP unneeded for FloppyEMU, and with this signalling problem for wire #12 (which is the SmartPort compatibility indicator) I am not sure which other SmartPort devices besides wDrive will actually work with the Apple ][, Apple ][+ and Apple //e without damaging the SmartPort device.
- a
- a
- [Wayback/Archive] Assembly Lines: The Mug – CT6502
- a
Another shop via [Wayback/Archive] Big Mess o’ Wires -> [Wayback/Archive] Big Mess o’ Wires Store
Bring new life to your classic computer
From disk emulators to ROM upgrades, keyboard and mouse adapters, and more hardware creations, BMOW has your retrocomputer needs covered.
-
Yellowstone Universal Disk Controller Card and two DB-19 female adapters
[Wayback/Archive] Yellowstone Disk Controller Everything Bundle – Big Mess o’ Wires
Yellowstone is a universal disk controller card for Apple II computers. It supports nearly every type of Apple disk drive ever made, including standard 3.5 inch drives, 5.25 inch drives, smart drives like the Unidisk 3.5 and the BMOW Floppy Emu’s smartport hard disk, and even Macintosh 3.5 inch drives. Yellowstone combines the power of an Apple 3.5 Disk Controller Card, a standard 5.25 inch Disk II controller card, the Apple Liron controller, and more, all in a single card.
…
The “everything” bundle includes the latest version Yellowstone Universal Disk Controller Card and two DB-19 female adapters
- [Wayback/Archive] Yellowstone: Cloning the Apple II Liron | Big Mess o’ Wires
…
The “Liron” disk controller was introduced by Apple in 1985. More formally known as the Apple II UniDisk 3.5 Controller, it’s designed to work with a new generation of “smart” disk drives more sophisticated than the venerable Disk II 5.25 inch floppy drive. The smart disk port on the Liron is appropriately named the Smartport, and it can communicate with block-based storage devices such as the Unidisk 3.5 (an early 800K drive) and Smartport-based Apple II hard drives.
Why care about the Liron? The Apple IIc and Apple IIgs have integrated disk ports with built-in Smartport functionality, but for the earlier Apple II+ and IIe, the Liron is the only way to get a Smartport. For owners of the BMOW Floppy Emu disk emulator, the Liron card makes it possible to use the Floppy Emu as an external hard drive for the II+ and IIe. Unfortunately finding a Liron is difficult, and although they occasionally turn up on eBay, they’re quite expensive. That made cloning the Liron a logical first goal.…
- [Wayback/Archive] Yellowstone Universal Disk Controller – Big Mess o’ Wires
Article: [Wayback/Archive] Yellowstone Universal Disk Controller for Apple II | Big Mess o’ Wires – Run any disk drive with your Apple II computer!
Supported Drives
Need to attach a disk drive to your Apple II? Yellowstone has got you covered. Yellowstone is compatible with the Apple IIe, Apple IIgs, Apple II+, Apple II, and most Apple II clones. It works with these disk drives and drive emulators:
Can be connected directlyDisk II A2M0003Naked Apple 3.5” 800K, black labelNaked half-height Apple 5.25″Naked Apple 3.5” 800K, red labelFloppy Emu 5.25 modeNaked Apple 3.5” 1.44MB, auto-injectFloppy Emu Model C dual 5.25 modeNaked Apple 3.5” 1.44MB, manual-injectFloppy Emu 3.5 modewDriveFloppy Emu Unidisk 3.5 mode [1]Floppy Emu Smartport hard disk mode [1]And more…Requires optional DB-19F connectorUnidisk 5.25 A9M0104Macintosh 800K External M0131Disk IIc A2M4050Apple SuperDrive (Apple FDHD Drive) G7287Duo Disk 5.25 A9M0108Unidisk 3.5 A2M2053 [1]AppleDisk 5.25 A9M01075Applied Engineering 3.5 [2]Laser FD100 5.25Apple 3.5 Drive A9M0106And more…[1] smart drive
[2] partial compatibilityWhen using 3.5 inch drives, Yellowstone is compatible with Apple II standard 800K double-sided double-density disk media.
A naked drive is a bare drive mechanism without any enclosure, such as an internal drive taken from a Macintosh, Apple IIc, or Apple IIc+.
Yes, pull the internal 3.5 inch drive from an old Mac and use it directly with your Apple II!
This brought back Applied Engineering memories (:
- [Wayback/Archive] Yellowstone DB-19 Female Disk Adapter – Big Mess o’ Wires
The adapter includes a six inch ribbon cable and a detachable mini-board that converts the ribbon cable connector into a DB-19 female shape.
…
This adapter has custom wiring that’s specifically designed for use with Yellowstone, and should not be used with other disk hardware.
Can be connected directly to Yellowstone boardApple Disk II A2M0003BMOW Floppy EmuNaked Apple 5.25” DriveswDriveNaked Apple 3.5” DrivesRequires Yellowstone DB-19F adapterUnidisk 5.25 A9M0104Macintosh 800K External M0131Disk IIc A2M4050Apple SuperDrive (Apple FDHD Drive) G7287Duo Disk 5.25 A9M0108Unidisk 3.5 A2M2053AppleDisk 5.25 A9M01075Applied Engineering 3.5Apple 3.5 Drive A9M0106Laser FD100 5.25 A naked drive is a bare drive mechanism without any enclosure, such as an internal drive taken from a Macintosh, Apple IIc, or Apple IIc+.(note that’s a ~15 cm ribbon cable)
- [Wayback/Archive] Yellowstone Back From the Dead | Big Mess o’ Wires
- [Wayback/Archive] Yellowstone: Cloning the Apple II Liron | Big Mess o’ Wires
-
Floppy Emu Model C Deluxe Bundle
USD 130 [Wayback/Archive] Floppy Emu Model C Deluxe Bundle – Big Mess o’ Wires
The BMOW Floppy Emu is a disk emulator for classic Apple II, Macintosh, and Lisa computers.
…
The bundle includes:
- Floppy Emu Model C
- Frosted Ice Acrylic Case
- Vintage Apple Software Collection SD Card
- Full-Size SD Adapter
- Disk Extension Cable
- USD 110 [Wayback/Archive] Floppy Emu Model C – Big Mess o’ Wires
Articles and videos:
- [Wayback/Archive] Floppy Emu Technology Design | Big Mess o’ Wires
- [Wayback/Archive] Floppy Emu Disk Emulator for Apple II, Macintosh, and Lisa | Big Mess o’ Wires
There are way more, but these are a good start.
- USD 10 [Wayback/Archive] Frosted Ice Case for Floppy Emu Model C – Big Mess o’ Wires
- USD 15 [Wayback/Archive] Vintage Software Collection SD Card – Big Mess o’ Wires which includes the Full-Size SD Adapter
- USD 20 [Wayback/Archive] Yellowstone DB-19 Female Disk Adapter – Big Mess o’ Wires but with a 100cm cable instead of a ~15cm cable
[Wayback/Archive] BMOW Floppy EMU for Vintage Apple Computers! | Mastergeko4 – YouTube shot at the time the YouTuber was quite a novice, which brought back memories of me being young and figuring out things by fiddling with them and bumping my head against walls (:
-
Noisy Disk Mechanical Sounder with 2 ribbon cables attached
USD 20 [Wayback/Archive] Noisy Disk Mechanical Sounder – Big Mess o’ Wires
Noisy Disk uses a mechanical relay to create authentic-sounding mechanical stepping sounds for disk head movements for your Floppy Emu disk emulator’s virtual 5.25 inch floppy disk.
…
Nothing will be harmed if Noisy Disk is used with other computers or emulation modes, but you’ll hear strange clacking noises that don’t match the disk activity.
…
The product includes the Noisy Disk board with 2 x 10 pin rectangular input and output connectors, and a 6-inch extension cable for connecting to your Floppy Emu board.
This likely sounds exactly like the more expensive Disk Clicker which was reviewed at [Wayback/Archive] Testing the New Classic Floppy Clicker on Apple Floppy Emulator – Authentic Retro Sounds! – YouTube and sold at [Wayback/Archive] Disk Clicker – 8bitdevices.com
-
Internal/External Drive Switcher for Apple IIc
USD 25 [Wayback/Archive] Internal/External Drive Switcher for Apple IIc – Big Mess o’ Wires
At the flip of a switch, select which Apple IIc floppy drives should act as Drive 1 and Drive 2. Add support for dual external 5.25 inch floppy emulation. For the Apple IIc with the Floppy Emu disk emulator.
…
[Wayback/Archive] Internal/External Drive Switcher for Apple IIc | Big Mess o’ Wires
This is a two-part device: a signal tap that should be installed inside the Apple IIc, and a modified DB19 adapter with two slide switches for the external connection. Two female-female jumper wires are passed through a gap in the case to make the connection between the two parts.
-
Daisy Chainer Disk Coupler
USD 45 [Wayback/Archive] Daisy Chainer Disk Coupler – Big Mess o’ Wires
Link the Floppy Emu disk emulator into a daisy chain with other Apple II disk drives. For use with Floppy Emu Model B and C.
…
In order to work correctly, Apple II computers require daisy chained drives to be connected in a specific order:
- any 3.5 inch drives must go first in the chain
- Smartport and Unidisk 3.5 inch drives must go second
- any 5.25 inch drives must go last
There can be at most two drives of each type, six drives total.
…
There are two primary firmware versions for the Floppy Emu: normal firmware and Smartport daisy chain SPDC firmware. When using a Floppy Emu with the Daisy Chainer, the SPDC firmware is required if your Emu is configured to emulate a Smartport Hard Disk or a Unidisk 3.5. In all other cases, the normal firmware should be used.
[Wayback/Archive] Floppy Emu Update: Smartport Daisy-Chain Support | Big Mess o’ Wires
Most people should use the normal firmware version, and it’s the default for newly-purchased hardware. The Smartport daisy chain firmware version is only needed in uncommon situations when:
1. The Floppy Emu’s selected emulation mode is Smartport Hard Disk, Smartport Unit 2, or Unidisk 3.5AND
2. The Floppy Emu is plugged into the back of a BMOW Daisy Chainer or to the Apple Unidisk 3.5 drive, A2M2053.
The
wiki.apple2.orgdied, so here are archived links: [Wayback/Archive] wiki.apple2.org: A2 3.5 Drives -> Apple UniDisk 3.5 (A2M2053)Daisy Chainer clear acrylic case
Oh: there is also this one for it:
- USD 10 [Wayback/Archive] Clear Acrylic Case for Daisy Chainer – Big Mess o’ Wires
A clear acrylic case to protect and showcase your Daisy Chainer board. These custom-made Daisy Chainer cases protect your board in style!
…
This is a top-and-bottom “plate” style case with open sides. Assembly takes about 5 minutes.
-
Apple Disk Drive A/B Switch
USD 20 [Wayback/Archive] Apple Disk Drive A/B Switch – Big Mess o’ Wires
Select between a Floppy Emu and a real floppy drive at the flip of a switch. Includes switch module and one 3 foot 20-pin ribbon cable.
…
For Lisa computer owners, and Macs with only one internal floppy connector, disk drive emulation can be awkward sometimes. The Apple Disk Drive A/B Switch aims to eliminate that awkwardness. This accessory makes it possible to attach a Floppy Emu and a real floppy disk drive at the same time, and select between them with a switch. Both drives will be powered, but the computer will only “see” one drive at a time, depending on the switch position.
…
⚠ Do not use Floppy Emu’s Dual 5.25 mode in combination with the A/B Switch. It will cause disk errors and may damage the Floppy Emu or your other 5.25 inch drive.
Macintosh specific stuff from BMOW:
-
Mac Sync-inator VGA Sync Converter
USD 40 [Wayback/Archive] Mac Sync-inator VGA Sync Converter – Big Mess o’ Wires
Take the hassles out of vintage Macintosh monitor setup! The Mac Sync-inator is a Mac-to-VGA video converter with a powerful sync processor built-in.
…
[Wayback/Archive] Mac Sync-inator VGA Sync Converter | Big Mess o’ Wires has much more information including tables for the DIP-switches that set:
- Setting the Desired Video Resolution
- Choosing the Sync Processing Mode
Too bad this is not compatible with my Macintosh SE/30, but still interesting to know it exists.
-
ADB-USB Wombat Input Converter
USD 40 [Wayback/Archive] ADB-USB Wombat Input Converter – Big Mess o’ Wires
ADB-USB Wombat is a bidirectional input converter for USB and ADB keyboards and mice. It works in two directions, connecting modern USB peripherals to a classic ADB-based Macintosh or Apple IIgs computer, or ADB peripherals to a USB-based computer running Windows, OSX, or Linux. The foreign keyboards and mice behave exactly like native peripherals, requiring no special software or drivers – just plug it in and go. This is the Wombat main board. You will also need ADB and/or USB cables depending on your intended usage (sold separately).
[Wayback/Archive] Wombat ADB-USB Input Converter | Big Mess o’ Wires has extensive documentation.
USD 10 [Wayback/Archive] Black Acrylic Case for ADB-USB Wombat – Big Mess o’ Wires protects the top of the board (but not the sides)
USD 6 [Wayback/Archive] ADB Cable, 3 ft – Big Mess o’ Wires (sold out at the time of writing, but might be in stock when you read this)
Despite having spare ADB keyboards, I don’t have spare ADB mice, so this might come in really useful.
-
Mac ROM-inator II
USD 45 [Wayback/Archive] Mac ROM-inator II | Big Mess o’ Wires
This was actually a trip down memory lane, as 10 years ago, I bought a Macintosh SE/30, upgraded the memory, and helped the original author – Doug Brown – with their documentation:Want to add new features to your old Mac? The Mac ROM-inator II replaces the stock Macintosh ROM SIMM with a custom flash memory module. Add a bootable ROM disk, make your system 32-bit clean, gain HD20 hard disk support, and more. The Mac ROM-inator II supports the Macintosh SE/30, IIx, IIcx, IIci, IIfx, and IIsi.
…
The ROM-inator II is based on Doug Brown’s earlier Mac ROM SIMM design, used with permission.
…
Compatibility The ROM SIMM and pre-programmed ROM contents are compatible with the Macintosh SE/30, IIx, IIcx, IIci, IIfx, and IIsi. The SIMM simply snaps into the ROM socket on the computer’s logic board. Note the Macintosh SE differs from the SE/30 internally, and is not compatible with the ROM-inator II. CPU accelerators such as the Daystar PowerCache and Turbo series are not compatible with the ROM-inator II. Some SE/30 hardware may require a shim to ensure ideal fit of the SIMM – see instructions for details. If running Mac OS System 7.5 or later, some Mac models require a software patch to the System file.…
The ROM disk contains:- System 7.1, with System Update 3.0 and Apple CD-ROM Extension 5.3.1
- HD SC Setup 7.3.5 (patched to support formatting non-Apple hard disks)
- SCSI Probe 3.3 (for troubleshooting the SCSI bus)
- ResEdit 2.1.3
…
Usage Most of the ROM-inator II’s benefits are automatic: just install the SIMM, and you’ll gain HD20 support, 32-bit cleanliness, and custom sounds and icons. Only the ROM disk requires any user interaction. When first powered on, a Macintosh with the ROM-inator II will play a customized startup sound, and display diagnostic info about the amount of installed RAM, the current addressing mode, and the detected ROM disk type. After a moment, an interactive startup menu will be displayed. To boot from the ROM disk as a read-only disk, press the R key on the keyboard. Or to convert the ROM disk into a writable RAM disk, press the A key. Or to bypass the ROM disk, do nothing and wait five seconds. If no keys are pressed, the Macintosh will boot normally from an attached SCSI or HD20 disk, or wait for a floppy disk to be inserted. Note: If booting from a SCSI disk when the ROM-inator II is installed, any 32-bit enablers or extensions such as MODE32 or 32-Bit System Enabler must be removed from the disk’s System folder.[Wayback/Archive] Mac SE/30 with Upgraded ROM | Big Mess o’ Wires
- [Wayback/Archive] GitHub – dougg3/mac-rom-simm-programmer.software: Control software for Mac ROM SIMM programmer
- [Wayback/Archive] GitHub – dougg3/mac-rom-simm-programmer: Firmware for Mac ROM SIMM programmer
- [Wayback/Archive] GitHub – jpluimers/dougg3..mac-rom-simm-programmer: Firmware for Mac ROM SIMM programmer
- [Wayback/Archive] Wiki updates (images, links); added README.md to master branch; added downloads branch. by jpluimers · Pull Request #25 · dougg3/mac-rom-simm-programmer · GitHub
- a
Then there is a shop on the Cayman Islands that ships world wide and has both the Mac ROM SIMM and the Mac ROMM SIMM programmer:
- USD 10 [Wayback/Archive] RTC PCB for SE30 – CayMac Vintage’s Ko-fi Shop – Ko-fi ❤️ Where creators get support from fans through donations, memberships, shop sales and more! The original ‘Buy Me a Coffee’ Page.
Replacement RTC chip for the SE30. This RTC is a ATTiny85 on a PCB with its own crystal for better accuracy on the SE30. No battery is needed when using this RTC version as the P/RAM settings are stored in the flash RAM. The external crystal on the logic board is not needed either.
And there is [Wayback/Archive] a2heaven: For everyone who still loves and uses old computers.:
-
Liron Reborn
USD 60 [Wayback/Archive] Liron Reborn
Liron Reborn is a Samrt Port / Disk II controller card for Apple II/IIe computers.
It is a functional hardware compatible Liron clone , with original Liron card Firmware.
A difference from Original Liron card is that card can be used as a a standard 5.25 inch (Disk II) controller or Liron ( SmartPort ) card .
I likely won’t need this as the Yellowstone card looks way more promising
-
FASTChip //e – 65C02
USD 150 [Wayback/Archive] FASTChip //e – 65C02
The FASTChip //e accelerates the Apple //e™ by replacing the on-board microprocessor with a much faster one. Because the memory on the Apple //e™ can only run at a 1 MHz speed maximum, faster memory (SRAM) must be provided to increase performance and allow the 65C02/65C816 CPU to run at full speed.
To do this, the FASTChip //e contains 512KB/1024KB of fast SRAM memory. The clever design allows the acceleration of programs running in both main and auxiliary memory. The additional FASTChip //e memory can emulate both 192/448 KB fast RamWorks compatible RAM and 256/512 KB fast RamFactor (slinky) compatible RAM.
[Wayback/Archive] REVIEW: FastChip //e Accellerator by A2Heaven – YouTube
-
65C816->65C02 Board
USD 35 [Wayback/Archive] 65C816->65C02 Board
You can use 65C816->65C02 board to connect 65C816 CPU to your Apple II computer .
…
* This board was based on Daryl Rictor’s original design. More information can be found here: sbc.rictor.org/support/conv.html
[Wayback/Archive] 65816 to 6502 converter by Daryl Rictor.
-
DB19 to IDC20
USD 11 [Wayback/Archive] DB19 to IDC20 Floppy Disk adapter
DB19 to IDC20 Floppy Disk adapter
…
directly connect IDC20 Pin Cable connector to the 19-pin port of Apple IIc, or to a floppy controller with a 19-pin connector
Probably cheaper to use the package deals from BMOW
-
IDC20 to DB19 cable adapter
USD 13 [Wayback/Archive] IDC20 to DB19 cable adapter
The product is designed to be directly connect IDC20 pin connector to the DB19 pin port .
Likely the combo from BMOW is cheaper.
TrackStar II
- USD 75 [Wayback/Archive] TRAK STAR II
Readout of Disk Drive head position .
…
Constant Digital Readout of Disk Drive head position .
Work with any 5″ Apple II compatible Drive .
Display Full , Half and Quarter track head position .Nice idea, but has not been in stock for a long time and feels overpriced.
-
Quadlink Clone Kit
USD 160 [Wayback/Archive] Quadlink Clone Kit
It’s an ISA expansion card from the ’80s designed to turn your IBM PC (such as a 5150 or 5160) into an Apple ][! After booting and running the software, you can switch quickly between PC and Apple mode using Ctrl-Alt-A (for Apple) and Ctrl-Alt-P (for PC).
Kit contain all PCB , passive components and chips needed to build working Quadlink Clone .
[Wayback/Archive] GitHub – schlae/quapple: Quadlink clone turns your ancient IBM PC into an Apple ][
Only useful if I find back an ISA compatible PC.
-
3D Stickers set
USD 10 [Wayback/Archive] 3D Stickers set
Apple II logo and Disk II label sticker set .
Actually this is quite a nice idea, despite them having been out of stock like forever.
-
RamFactor1M
USD 85 [Wayback/Archive] RamFactor1M
RamFactor1M is based on Aplied Engineering RAMFactor card ( firmware is same as original ), however it uses more modern low power 1MB SRAM and can provided battery backup up to 1-2 Year with small CR2032 Battery.
The battery is for backup data (just like PowerFactor from Aplied Engineering ) and can be used as Solid State Disk.
This is a trip down memory lane, though back then school could not afford these.
-
Apple II Slot Extender
USD 40 [Wayback/Archive] Apple II Slot Extender
The Apple II slot extender allows you to easily and freely test the functionality and repair your Apple II cards outside of the computer.
You can also turn off voltages that aren’t necessary for the card to work to prevent testing errors.
Package include
- 1 x Apple II extender PCB bottom
- 1 x Apple II extender PCB Top
- 1 x 50 pin Flat ribbon cable with 0.5m length ( contact me if you want a longer cable )
- a
- a
- a
- a
- a
- a
- a
- a
One more shop (: I think I found it searching for [Wayback/Archive] BlueSCSI, but anyway at [Wayback/Archive] Shop – Joe’s Computer Museum, focussing on [Wayback/Archive] Apple //e Archives – Joe’s Computer Museum I found these interesting items:
-
A2Pico
USD 55 [Wayback/Archive] A2Pico – Multi-Function Card – Joe’s Computer Museum
A2Pico is, essentially, a universal peripheral card for your Apple ][ Computer. Want a Z80 CPM Card? Maybe you need inexpensive mass storage. Need to add SmartPort support to your machine? Or, maybe you’re a hacker and want to design your own function. A2Pico lets you do just that!
Using it easy: Flash it with the firmware you want to use (or write your own firmware!), put it in the appropriate Apple // slot and have fun!
NOTE: your card will come without firmware, so that you can choose to make the card whatever you like!
[Wayback/Archive] GitHub – oliverschmidt/a2pico: A2Pico
A2Pico is about Apple II peripheral cards based on the Raspberry Pi Pico. It consists of two parts:
-
A2DVI card
USD 50 [Wayback/Archive] A2DVI v2.0 – Apple II Digital Video Adapter – Joe’s Computer Museum
Unlike the below “universal” adapter, the A2DVI might be just the thing for me.The A2DVI produces a digital video stream from your Apple II’s memory. The signal is output via an HDMI-compatible connector, giving your Apple II the option of output to modern displays. No more analog signal conversion required.
-
JCM Universal Apple RGB Adapter
USD 20-35 (kit or assembled) [Wayback/Archive] JCM Universal Apple RGB Adapter – Joe’s Computer Museum
The Universal Apple RGB Adapter takes the 4-Bit TTL RGB signal from an Apple ///, the Apple /// Plus or the Apple IIe Video7-style RGB card and converts it to two formats: IBM-style CGA-Compatible TTL, and Apple IIgs Standard. On the Apple /// machines, it also connects the color NTSC signal from the rear connector to a standard RCA-Jack so you can use it.
Since I don’t have either an Apple ///, nore a Apple IIe Video7-style RGB card, this might not be fore me.
-
Why Cable? – Original DB19
USD 15-30 [Wayback/Archive] Why Cable? – Apple IIe Card Y-Cable Replacement (Original DB19) – Joe’s Computer Museum
Everybody wants the Apple IIe Card. Nobody has the “Y-Cable” that goes with it; they tend to get lost. So, I designed a replacement solution!
The Why Cable? Apple IIe Card Y-Cable Replacement solves your Floppy and Joystick problem with your Apple IIe Card. Just plug it into your card, then add your floppy drive and joystick and your Apple IIe card will work as intended!
This version emulates the original DB19 cable, and is fully compatible with all drives the Apple IIe Card lists as compatible.
Need to check out if I still have this cable/connector or need the below one (:
-
Why Cable? – 20-Pin Cable Version
USD 10-25 [Wayback/Archive] Why Cable? – Apple IIe Card Y-Cable Replacement (20-Pin Cable Version) – Joe’s Computer Museum
Everybody wants the Apple IIe Card. Nobody has the “Y-Cable” that goes with it; they tend to get lost. So, I designed a replacement solution!
The Why Cable? Apple IIe Card Y-Cable Replacement solves your Floppy and Joystick problem with your Apple IIe Card. Just plug it into your card, then add your floppy drive and joystick and your Apple IIe card will work as intended!
This version works with 20-pin ribbon cable connectors and supports any drive that properly emulates a standard 5.25 inch Disk ][ drive, including the FloppyEMU and wDrive.
And I need to check if it is missing, if I need the 19 or 20 pin version. Likely I need the 20-pin one.
- Some 3D printed replacement for your Apple //e opening covers on the back of your machine, and for your Alps Key Stems:
DB-19/DB-25/DB-9 back plates (3D printed, STL files if you want to print your own)
DB-19: outside view
DB-19: inside view
DB-25: outside view
DB-25: inside view
DB-25 for Audio Jacks: outside
DB-25 for Audio Jacks: inside
DB-9: outside view
DB-9: inside view
DB-25 with DB-9 opening: assembled
DB-25 with DB-9 opening: outside
DB-25 with DB-9 opening: inside
USD 1
[Wayback/Archive]
Apple //e DB-19 Back PlateUSD 1
[Wayback/Archive]
Apple //e DB-25 Back PlateUSD 1
[Wayback/Archive]
Apple //e DB-25 Back Plate for Audio JacksUSD 1
[Wayback/Archive]
Apple //e DB-9 Back PlateUSD 1
[Wayback/Archive]
Apple //e DB25 Back Plate with DB9 Opening[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stl[Wayback]
A2e-DB25-with-DB9-insert.stlAdding the hole in the design required thickening of the base and increasing the depth of the holding clips so they would not pull out when tension is applied to an attached external cable.Note that all link(ed?) to the same .stl file, which is only correct for the right most back plate: “DB-25 with DB-9 opening”.
All of these are based on [Wayback/Archive] Apple IIe port covers, thicker for FFF printers by scruss – Thingiverse which in turn is based on [Wayback/Archive] Apple IIe port covers, three sizes by option8 – Thingiverse.
Alps Key Stems (one of them has the wrong picture, but they are manufactured correctly; 3D printed; no STL-files on the product pages)
Alps Key Stems, Short – 10 Pack
Alps Key Stems, Long – 10 Pack
USD 5
[Wayback/Archive]
Alps Key Stems, Short – 10 Pack – Joe’s Computer MuseumUSD 5
[Wayback/Archive]
Alps Key Stems, Long – 10 Pack – Joe’s Computer MuseumThis might have been the base STL file for this: [Wayback] Hairpin-To-Alps-keycap-adaptor.stl
- Some 3D printed replacement for your Apple //e opening covers on the back of your machine, and for your Alps Key Stems:
- a
- a
- aa
- a
For all shops: I didn’t list all of their items, just the ones that I might use in the future.
An interesting device I did not know about either was the FujiNet one: it is fully open source! One thing to check out is where to order pre-assembled ones for Apple II series.
- [Wayback/Archive] FujiNet · GitHub
FujiNet is a multi-peripheral emulator and WiFi network device for vintage computers. The first completed hardware was for the Atari 8-Bit line of computers and development has begun for other systems (Coleco ADAM, Apple II, Commodore 64, Atari Lynx, ZX Spectrum and more) with the goal of supporting as many old systems as possible. What sets FujiNet apart from other WiFi devices is the new Network Device (the N Device). The N device allows vintage computers that do not have enough processing power to handle TCP/IP connections themselves to talk to the modern internet over WiFi. Virtual adapters have been created for many protocols including: TCP, UDP, HTTP, FTP, TNFS, HTTPS (SSL/TLS), SSH, TELNET, WebDAV and JSON parser. The FujiNet project is 100% completely open source, software and hardware. All code and schematics are available here.
- [Wayback/Archive] FutureVision Research was the only shop I found selling them, but I probably overlooked others.
- [Wayback/Archive] FujiNet – FutureVision Research
-
Apple II/III FujiNet w/ accesoiries
USD 110 [Wayback/Archive] FujiNet for Apple II & III (With Accessories) – FutureVision Research
The FujiApple Rev1.1 for SmartPort enabled Apple II computers emulates SmartPort drives, Disk II drives (read only), CP/M, Clock, Modem, and a new Network Device. Disk images can be mounted directly from the internet via TNFS servers or from the onboard MicroSD socket*. The Network device enables access to Internet protocols such as HTTP, HTTPS, TNFS, SSH, TCP, UDP and more.
…
This kit comes with the following (ribbon cable color may be gray or rainbow depending on availability):- FujiNet for Apple II & III
- DB-19 to IDC20 Female adapter
- 30cm IDC20 Female to Male cable
- 30cm IDC20 Female to Female cable
- DB-19 spacer
- Two different lengths of thumbscrews
- Two 1.375″ thumbscrews for use with IIe/III
- Two 1.5″ thumbscrews for use with IIc/gs/+
The page contains many more helpful information and links.
………………………………………………………………………………………………………………………………………………………………………………………………
Some non-shop links
- [Wayback/Archive] FloppyEmu vs. CFFA3000/Booti | Applefritter
- [Wayback/Archive] Plus Too Mac Replica | Big Mess o’ Wires
- [Wayback/Archive] Floppy Emu Disk Emulator? : apple2
Yes. I’d rank it as the most versatile as it works across the greatest number of machines (Apple 2s and Macs).
It is cheaper and more readily available than the other solutions.
The only slight downside is it isn’t as fast, direct memory access/processor wise, as the card solutions that exist – but those do use up a slot, and there isn’t much software that can take advantage of the speed difference anyway – and on a machine that only goes a couple Mhz anyway, it won’t make much difference.It’s 7 years old at this point, but Joe’s Computer Museum did an excellent video comparing the major options here:
https://youtu.be/Wjy6_qnTnv0a covering
- MicroDrive/Turbo
- CFFA3000
- Floppy Emu
- SDFloppy II
- UNISDISK Air 19 – [Wayback/Archive] UNISDISK Air Series, very hard to get
[Wayback/Archive] Apple II Mass Storage Benchmark Results – Joe’s Computer Museum
[Wayback/Archive] Apple II Mass Storage Mega Roundup – YouTube
- [Wayback/Archive] Nerdly Pleasures: wDrive v. Floppy Emu – Comparison of the Best Apple II Disk Emulators
- [Wayback/Archive] Thoughts on wDrive versus Floppy Emu? | Applefritter
- [Wayback/Archive] Fujinet for Apple II, SD card and Internet capable device for SmartPort | Applefritter (works with Yellowstone card)
- ………………………………………………………………………………………………
An external monitor on a Macingosh SE/30
- [Wayback/Archive] Mac SE can use an external Monitor?? – Apple Community
- ………………………………………………………
Mac SE/30 and Macintosh Classic
Since I own both a Macintosh SE/30 and a Macintosh Classic, these are relevant too:
- [Wayback/Archive] Classic II vs SE/30 – TidBITS
- [Wayback/Archive] Siblings – Macintosh SE and Mac Classic : VintageApple
- ……………………………………………………………………………………………
Queries
I used additional queries than the first blog post to complete this blog post. Here they are:
- [Wayback/Archive] macintosh Floppy Emu 3.5 – Google Suche
- [Wayback/Archive] apple 2 disk sd card – Google Suche
- [Wayback/Archive] Liron disk controller card – Google Search
- [Wayback/Archive] cffa vs floppy emu – Google Search
- [Wayback/Archive] floppy emu apple ii disk controller – Google Suche
- [Wayback/Archive] wDrive vs floppy emu – Google Search
- [Wayback/Archive] fujinet apple ii – Google Search
- [Wayback/Archive] Apple Liron – Search on Google
- [Wayback/Archive] Yellowstone fujinet – Sök på Google
- [Wayback/Archive] does floppy emu work with classic macintosh – Google Search
- [Wayback/Archive] mac se/30 versus macintosh classic – Google Suche
- ………………………………………………………………………………………………………………………………………………………………
- [Wayback/Archive] bluescsi v2 – Sök på Google
--jeroenRate this:
#12 #156 #25 #3dprint #3dprinting #4 #Apple #appleiigs #AprilApples
- USD 25 [Wayback/Archive] Apple IIc USB C power adapter with Volt Gauge – 8 bit stuff cool retro computer 3D gadgets and geekery
-
AmigaOS 4 News – February 2024
Hi,
Welcome to the second AmigaOS 4 Monthly Roundup of 2024!
It has been yet another active month in the world of AmigaOS 4. We’ve got plenty of updates to software and releases. The A1222+ is not out the door yet, but hopefully, it will be in March. As you’ve noticed, you are reading this on the Old School Game Blog, not on the Gaming on AmigaOS 4 blog. I’ve melted the two together, so from now on the roundups will be hosted here.
Without further ado, let us move on to the news! 🙂
Software News
Let us start with some AI-related news. AmigaGPT is a text generation program that runs on the classic AmigaOS and AmigaOS 4. Utilizing the power of OpenAI’s GPT-3 and GPT-4 architectures, this program provides state-of-the-art language modeling.
Features:
– Generates text based on input prompts
– UI customization
– Full conversation history
– Text-to-speechVersion 1.4.2 (2024-01-31) is now available from OS4Depot. They replaced clicktabs for AmigaOS 3.x since the version is too old and will crash. 3.x users can select the mode at startup.
Screenshot by PuniAfter hard work, HunoPPC is back with a massive update to the Super Nintendo emulator for AmigaOS4 called SNES9X NG.
Here are the changes from the previous version:
– Added modifications of prefs KEYBOARD on native GUI now!!
– Added on engine, new converter of keys intuition events to keys SDL2 events for new function of keyboard prefs
– Added recognition of duplicates in modified keys
– Added 2 new image for recognition, one for OK (green) and one for NOK (red)
– Rewinding cool option working now on game :-), use GUI for activate and add number of Mo for rewind dans on game press F12 for a moment to operate rewinding, IMPORTANT!! this hack is very big for your CPU, on X5000 90% of usage with 60FPS
– Fixed Vsync, now working with -vsync and for disable using -novsync (thanks to Kas1e)
– Fixed limiter of fps without Vsync
– Fixed loading Rom offset “Tintin in Tibet (Europe) (En,Es,Sv)
– Fixed loading Wild Guns, Mighty Morphin Power Rangers – The Fighting Edition with a good IRQ cycles and DMA delay
– Fixed LowMapRom and HiMapRom on memmap functions
– Optimized DSP2 for AmigaOS4
– Fixed small audio Crackling
– Fixed Speedup audio DSP1 and DSP2
Advertisement
Privacy Settings
– Tipo fixed on locale (thanks Javier)
– Tipo fixed on SuperFX Mhz-> to ->%
– Fixed Run game selected with RETURN now!!
– Fixed quit GUI with ESCAPE
– Added cool sounds effects on native GUI (mario voice and yoshi voice)
– Added option -interpolationmethod for Sound Interpolation Method, Gaussian=0 / Linear=1 / Cubic=2 (default) / Sinc=3
– Remove Key Q for quit Snes9X
– Added new filters:
* 2xBR
* 2xBR-lv1
* DDT
* Scanlines 25%
* Dot Matrix
– Fixed draw time with FPS count
– Fixed HACKVIDEO config write
– Fixed INTERPOLATION config write
– Fixed OVERCLOCKCPU config write
– Added button for sounds effects on GUI
– New all catalogs
– Sound now is Threaded
– Fixed timing for all games with Vsync
– Fixed Joypad2, now working with the GUI launcher
– Added new hack option “-disablespritelimit” disable max sprite tiles rendered per line. Default = 34, Unlimited ~= 128
– Fixed Mute now working!!
– On game FULLSCREEN/WINDOW mode now working with = L_ALT + RETURN
– Added new option -emulatedmachine for a virtuel machine, activate a correct software rendering on internal engine (disable: vsync, FULLSCREEN_DESKTOP)
– Fixed commandline for all filters
– fixed commandline for support optical games: mouse, superscope, justifier and macsrifle.
– GUI is now V1.0.7
– Added to GUI news options: sound thread and Emulated machine (for QEMU and WinUAE machines)
– Fixed Vsync disable if you use emulated machine or rwinding options (thank to Javier)
– Added new images for inputs : Keyboard, joypad, mouse, superscope, justifier and macsrifle
– Now superscope working with a mouse Amiga
– fixed disabled prefs Buttons of joypad if you use other input
– Center the cursor on screen
– Support all optical games with cursor and mouse for shooting (move working, now i working on the buttons) IMPORTANT: Correctly choose the type of weapon suitable for the game otherwise it may not work correctly, MOUSE ONLY!!!
– Added new folder “Roms-Optical” for copy your games Guns or Optical (Konami Justifier, superscope, mouse and a special MacsRiffle)
– Fixed -nooverscan and center a screen on 320×240 mode (window and fullscreen)
– Fixed on mode -nooverscan and 320×240 centered screen with L_ALT + RETURN
– Fixed Justifier1 AimOffscreen Trigger button, now working with the center button of mouse
– Added 2 KEYS on KEYBOARD with optical mode:
* KEY HOME : “Superscope Pause”
* KEY END : “Superscope AimOffscreen”
– Fixed mode -emulatedmachine on all renderer
– Fixed if you use optical games with with L_ALT + RETURN disable a pointer on window mode
– Added 3 new images availablecover3dMSU1.png, availablecover3dOPTICAL.png and availablecover3dSUPERFX.png for not available previews
– GUI checking now all datas dependency for interface on launching and push requester if you have an error
– Fixed disable vsync on GUI with -emulatedmachine -nooverscan and -rewinding options
– Fix fps limiter on PAL mode
Screenshot by PuniThe emulator is available for download on OS4Depot:
OS4Depot – Your one stop for AmigaOS4 files
Rene Engel has created a video showing the emulator running on his AmigaOS 4 setup through QEMU. The footage was created with the previous version of SNES9X NG.
Leu is a spreadsheet application by Marcus Sackrow, which started as an Excel and OpenOffice viewer. Now it also features basic editing functions and a fully working parser.
Screenshot by PuniIt supports the loading of Excel (XLSX), Libre/OpenOffice (ods), ASCII (CSV), and TurboCalc (TCD) files. You can export the tables to Excel, Libre/OpenOffice, ASCII, HTML, or wiki tables. Version 0.08 is now available for download at OS4Depot.
Screenshot by PuniA. Pankalla has released an update to Luettje Bookholler, which is a personal finance program. For those of you who are curious about what «Luettje Bookholler» means (I have mentioned this in an earlier roundup, but will repeat it for new readers), I can tell you that it is German and means «Little Accountant». Version 1.87 contains several bug fixes and changes:
- Bug: Report account-flow has not offer the last years, only last 12 months.
- Bug: Long catogory names are not shown in ignition tables.
- Changes: Now also the values are shown in ignition pie-graphics.
- Bug: Corrects some little bugs in ignition-sheets.
SDL2 (Simple DirectMedia Layer 2) 2.30 was released in February. You can download it from OS4Depot, as well as find more information about it there:
http://os4depot.net/?function=showfile&file=library/misc/sdl2.lha
Screenshot by PuniVersion 30.81 of AmiArcadia for AmigaOS 4, a Signetics-based machines emulator, has been released by James Jacobs.
According to the documentation, AmiArcadia supports the following systems:
- Emerson Arcadia 2001 console family (Bandai, Emerson, Grandstand, Intervision, Leisure-Vision, Leonardo, MPT-03, Ormatu, Palladium, Poppy, Robdajet, Tele-Fever, Tempest, Tryom, Tunix, etc.) (c. 1982);
- Interton VC 4000 console family (Acetronic, Cabel, Fountain, Hanimex, Interton, Prinztronic, Radofin, Rowtron, Soundic, Voltmace, Waddingtons, etc.) (c. 1978);
- Elektor TV Games Computer (1979);
- PIPBUG- and BINBUG-based machines (EA 77up2, EA 78up5, Signetics Adaptable Board Computer, Eurocard 2650, etc.) (1977-1978);
- Signetics Instructor 50 trainer (1978);
- Central Data 2650 computer (1977);
- PHUNSY computer (c. 1980);
- Ravensburger Selbstbaucomputer aka 2650 Minimal Computer trainer (1984);
- Hofacker MIKIT 2650 trainer (1978);
- Astro Wars, Galaxia, Laser Battle and Lazarian coin-ops by Zaccaria (1979-1981);
- Malzak 1 and 2 coin-ops by Kitronix (c. 1981);
- AY-3-8500/8550/8600-based Pong systems (Coleco Telstar Galaxy, Sheen TVG-201, etc.) (1976-1977);
- VTech Type-right machine (1985)
It is packed with features, far too many to list here. Examples are ReAction GUI, load/save snapshots, windowed and fullscreen modes, CPU tracing, trainer, drag and drop support, graphics scaling, PAL/NTSC modes, frame skipping, and much more!
Screenshot by PuniHere is an overview of the changes since the last release:
Changes since V30.8:
Summary:
- Miscellaneous improvements and bug fixes.
Details:
- arcadia: improved overlay text for basketball and horse racing.
- wa: arcadia: changed white to grey in sidebar game glyphs (for better contrast against default sidebar background).
- wa: arcadia: fixed: sidebar game glyphs for red clash and robot killer were swapped.
- incorporated Mikhail’s latest Russian translation.
- aa: fixed: it was crashing during exit if eg. a needed ReAction class was not available.
- assembler: fixed: INCBIN directive was broken.
- pipbug: now autostarts biorhythm (300 baud) and life (machine code).
- pipbug: fixed: VDU autoadjustment could result in a mislocated LED display.
- pipbug: adjusted VDU autosense settings for biorhythm, calendar maker, mazemaker.
- fixed: WC,WP command were writing garbage error messages.
- pipbug: improved compatibility (improves random number generator, russian roulette, etc.).
- pipbug,binbug: now silences sound when resetting.
- pipbug: now translates ENTER to Ctrl-L automatically for mastermind and revised mastermind.
- wa: fixed: first string sent to output window was not being displayed.
- pipbug: added knowledge about good dump of RYTMON.
- pipbug 2: added comment support for pipla example.
- pipbug: fixed: baud rate addresses were incorrect after reset (fixes pipla test).
- pipbug: added autostart for Micro BASIC programs.
AmiArcadia is free to download. 🙂 You can grab it from OS4Depot here:
http://os4depot.net/?function=showfile&file=emulation/gamesystem/amiarcadia.lha
Here are the links to the authors websites:
http://amigan.1emu.net/releases/
HunoPPC and the Amiga French Team 2024 have ported Wipeout Rewrite to AmigaOS 4!
Screenshot by PuniThe rewrite of WipEout was done by Phoboslab. Here is the link to the Github page.
Please read on for more information from HunoPPC:
AmigaOS 4.1 Port by HunoPPC with the Amiga French Team 2024
Important: OpenGL renderer with MiniGL Library (no software)
A big thank you to Samo79 because this port for minigl would never have been made if he had not insisted 🙂
Use glewMGL port and code for minigl by HunoPPC 2024
Use SDL2 port by Capehill
IMPORTANT!! If you use hack GUI please check your DEVS/MONITOR/”driver” for add all new resolutions, thanks.
First release 1.0.0 AmigaOS4
- Added GUI for start a new prefs on live (important !! it’s an hack)
- Added Icon created by me
- Fixed loading texture with glewMGL
- Fixed fullscreen mode on glewMGL
- Added KPH counter on screen (thanks Samo79)
The game can be downloaded from OS4Depot, but the archive does not contain the assets (textures, 3d models, etc.) required to run the game. You can find the download link for the data files in the documentation on OS4Depot. 🙂
http://os4depot.net/?function=showfile&file=game/driving/wipeout.lha
The screenshot is from George Sokianos page on Ko-fiVersion 2.4.6 of the WHD-Load front-end iGame was released in February. The AmigaOS 4 port is maintained by George Sokianos a.k.a. Walkero. This is a front-end application for launching WHDLoad games and demos.
Features include:
– Multiple WHDLoad slaves repositories on hard disk partitions
– On-demand scanning in repositories for installed WHDLoad slaves (games, demos etc.)
– Use game tool types on the run
– Shows game screenshot (screenshot window can be altered through
– tool types/settings use datatypes to load foreign formats)
– Categorization of the games and filtering
– Manual addition of non-WHDLoad games, demos, etc.
– Simple statistics
– Find-as-you-type search filterIf you’d like to read about the changes since the previous version, please have a look at the appropriate page on GitHub.
An update to Report+, a ReAction-based utility with nine functions, has been released by James Jacobs. It was made available on OS4Depot on February 18th. This tool can help you with generating Aminet- and OS4Depot-style readme files, performing batch processing on icons, and much more. Click here to go to the download page or to find information about the recent changes.
Several language catalog files For AmiUpdate have been uploaded to OS4Depot thanks to the work of Niels Bache (Danish), Samir Hawamdeh (Italian), Michael Merkel and Gerd Frank (German), Petrol (French), Javier de las Rivas (Spanish).
René W. Olsen has released version 1.27 of the Amiga VNC Server. It has been written from scratch, and according to the author, it still needs some work. The source code is available on GitHub. Click here to download the archive. He has also released version 2.7 of ReSrc4, an MC680x0 Disassembler.
Heretic II from Hyperion Entertainment is getting close to becoming available for purchase! I’ve been in touch with the Alinea Computer Shop. They will stock the game. I wrote them and asked them to reserve a copy, which they will. 😉 If you want to know more about Heretic II for AmigaOS 4, I recommend checking out this interview I did a while back with Steffen Häuser a.k.a. TheMagicSN, who ported it to AmigaOS 4.
AmiGemini version 0.11 was released on the February 20th. It was created by Karl Jeacle and uploaded to OS4Depot by Samir Hawamdeh. It is a browser for Gemini, Spartan, Gopher, and Finger. The source code is included.
Kas1e has released version 0.10 of WB2Filer. WB2Filer is a hack that patches Intuition’s functions via SetMethod() to allow transparently run of the Filer binary pointing to the given partition on Workbench’s desktop instead of the original Workbench windows. Please click here to get an overview of the changes since the last release.
Screenshot by PuniHexSee, a hex viewer that displays file contents in blocks of 16 characters per line, has been updated to version 1.1. The author is Retrami Software. It contains a few extra features that are not always available in other AmigaOS hex viewers. It can read any file up to 4 GB in size, while a single file buffer will not use more than 128 KB even for the largest file. Text and background colors can be set to any color, and it was written especially for AmigaOS 4.1.
– Added program information to the Screen Bar
– Added Tool Tips to the gadgets
– Enabled Localisation
– Added Text & Hex Search
– Added Text & Hex selection
– Enabled Home/End/PgUp/PgDown keysYou can download HexSee from OS4Depot.
MCE, Multi-game Character Editor, is a user-friendly open-source editor of character files, saved games, high score tables, levels, and graphics for 115 games. James Jacobs, the author, has now released version 14.61. Changes include a Dungeon Master 2 save game editor, and miscellaneous improvements and bug fixes.
On February 23rd, Michael Rupp released an update for the SonosController program, which allows you to control your Sonos speakers from any Amiga connected to the same network. The changelog can be found on OS4Depot, along with the program itself.
– NEW: first release for AROS x86
– NEW: ARexx command REINDEX to invoke re-indexing the Sonos music library
– NEW: include all icons in every distribution in new subdrawer “Icons”
– NEW: include additional icons by AMIGASYSTEM (thanks Carlos!)
– IMPROVED: reloading the browser with F5 will not loose the selected position and item anymore.
– FIXED: loading of data (playlists, queues, etc.) is no longer limited to 100 entries (bug introduced with 1.3).
– FIXED: if network is off the app won’t crash on startup but show an error message.
– FIXED: possible crash when clicking the “looking for Sonos…” entry.A major release this month was the update to Rave. Daniel Jedlicka, a.k.a. Trixie on Amiga forums, has released an updated version of Rave, his sound editor for AmigaOS 4 compatible computers.
Changes since the previous release are as follows:
– The program now keeps a list of recently opened files and has an associated item in the Project menu for quickly opening these files again.
– Reworked the file requester, which now features a more flexible Access Panel with a user-definable Favourites section.
– Another addition to the file requester is the Browsing History pop-up for selecting recently used paths.
– Fixed a playback-related bug that would make Rave unresponsive, waiting for a signal that never arrives.
– Updated documentation.Download link:
http://os4depot.net/?function=showfile&file=audio/edit/rave.lha
Rave requires AmigaOS 4.1 Final Edition Update 2 or newer. It also requires Enhancer Core classes (toolbar.gadget, infodata.gadget, select.gadget, shared.image).
Here is an overview of Rave’s features:
– A modern, configurable graphical user interface (GUI).
– A tabbed environment for managing multiple projects from within a single program window.
– A powerful custom file requester with preview playback and other useful features.
– A wide selection of editing functions with unlimited Undo.
– Asynchronous operation: performing a task in a project doesn’t block the other projects.
– Support for multiple clipboard units.
– Modular design with an object-oriented plugin system, which makes the program easy to extend.
– A wide range of supported audio file types and formats.Trixie has also published a new post on his blog, Rear Window, which is called Crawling back to life. There you can read more about the development of Rave.
Amiga-news.de reports that AmiUpdate has been updated twice in February. First to version 2.50, then to 2.51. Please visit amiga-news.de here to read the full story.
Another piece of news from amiga-news.de is about QEMU and the BBoot bootloader version 0.6. According to amiga-news.de, “BBoot is a simple, minimal bootloader for loading AmigaOS on QEMU-emulated AmigaOne and Pegasos2 machines, written by Amiga QEMU developer Balaton Zoltan.” Please click here to read the whole article concerning BBoot.
The last news is the release of version 6.22 of Codesets. More information and a download is available over at OS4Depot.
Miscellaneous
Versus is a demoscene chart and disk magazine created by two demo groups, Nukleus and Void, for Amiga OCS/ECS and AmigaOS 4. Nine issues have been released so far. The last one, Versus #9, came out for Classic Amiga and AmigaOS 4 in 2019.
Versus #10 is on the way, and voting has officially opened!
Cast your vote for your favorite demos, intros, programmers, musicians, and so forth! 🙂 The more votes collected, the more accurate the charts will be. Thank you in advance for your support!
You can find the Online votesheet here:
https://www.nukleus.nu/VersusVote.php
It is worth mentioning that you are not required to fill out all the fields.
We are very grateful for every vote we receive, and we really hope you’ll spend a few minutes filling out the votesheet as soon as possible. 🙂
Some of you might have noticed that I’ve not published much on Gaming on AmigaOS 4 recently. AmigaOS 4 related posts have been published on the Old School Game Blog instead. The reason is that I’ve decided to continue Gaming on AmigaOS 4 on Old School Game Blog from now on. I’m involved in many projects, such as those with Void (Amiga demo group), so it easier to blog in one place. 🙂
The AmigaOS 4 Monthly Roundup will continue, but on Old School Game Blog instead. I’ve added an AmigaOS 4 Monthly Roundup section to the site. Here is the link. I hope you’ll continue reading my blog posts about AmigaOS 4 and Amiga in general at Old School Game Blog.
Screenshot taken on February 28th by PuniThe A1222+ motherboard and a full A1222+ computer system were listed on the website of amigakit.fr in February. The price for a motherboard without RAM is 1,199 EUR. 4 GB of RAM costs 39,99 EUR extra. A full system will set you back 1,599 EUR. The final price depends on taxes, fees, and shipping. You can not order either one from the shop yet, but according to AmigaKit, they should be available soon. Here is a quote from AmigaKit dated February 12th:
“No, AmigaKit FR is getting ready for general sale. First stock arriving is for Early Adopters very shortly. A date for non-early adopters will be added to the webstore in the next week or so.”
Source: https://www.amigans.net/modules/newbb/viewtopic.php?topic_id=9258&start=60
A date has not been added yet (today it is February 29th). March is just around the corner. When the A1222+ was announced (again) in October, one was told that the boards would ship in October, or November at the latest. This information can be found at Discord, as well as on Amigans.net. Several months have passed since then, and as far as I know, no one has received the A1222+ yet. The Facebook page of AAA Technology has not been updated since October, so it is not easy for customers or potential buyers to know what is going on. I really hope the A1222+ will be released soon though, and I feel for all those who are waiting and waiting for it to arrive. I’m sure it will be a fun system to experiment with!
A preview of the March/April issue of Amiga Future has been published on the official website of the magazine. Here is the link.
The Lost C has published a video on YouTube showing the new HunoPPC port of WipeOut for AmigaOS 4.1 in action. He shows it running a Sam440, Sam460, and an Amiga 1200 with BlizzardPPC and BVision. The video is in Italian.
He is not the only one who has created a video of Wipeout. So has McFlyPPC. His video shows it running on an AmigaOne X5000.
Rene Engel has uploaded a video showing version 1.33 of the Dgen SEGA Mega Drive emulator running with QEMU / Pegasos 2.
Muf has created a review of the Velocap HDR Tbox Deluxe, which you can see here. It is in Polish.
In February we’ve been playing a game by Entwickler-X called Balance Blox on Amigans.net.
BillE is currently in the lead with a whopping 124,200 points! There’s still a little bit of time left if you want to try to beat the score and become this month’s game champion over at Amigans.net.
https://www.amigans.net/modules/newbb/viewtopic.php?topic_id=9472
Until next time
You’ve reached the end of this month’s AmigaOS 4 Monthly Roundup. Hope you have enjoyed reading the news. 🙂
Thanks to all of you for supporting this initiative by reading, spreading, commenting, and sending me messages. It is much appreciated!
Have a great day, and see you in the next roundup! 🙂
Best regards,
Puni/Void a.k.a AmigaOldSkooler
Rate this:
https://oldschoolgameblog.com/2024/02/29/amigaos-4-monthly-roundup-february-2024/
#10 #9 #Amiga #AmigaNews #AmigaOS4 #AmigaOS4MonthlyRoundup #AmigaOS41
-
Mediathek
Hier sammele ich alles, was anderswo über mich oder von mir erschien.
Library – a collection of material by me publishd elsewhere, about me, my blog.
- Deutsch
- Texte von mir woanders
- Texte über mich und meine Aktivitäten
- Interviews
- Video
- Audio
- English
- Italiano / Espagnol / Français / Norsk / Polski / Svenska
Deutsch
Texte von mir woanders
- Meine Digital-Kolumne in der Tageszeitung Neues Deutschland
- Deepfakes: Strafrecht ist keine Lösung, Neues Deutschland, 26. März 2026
- Digitale Gewalt: Formen, Folgen, fehlender Schutz, in: Wikimedia Deutschland (Hg.): Grundrechte im Digitalen, Sept. 2025, S. 184 – 197
- Haecksen-Konferenz: „Bislang fehlte eine Diskussion über Utopien“, netzpolitik.org, 4. Aug. 2025
- Femizide: „Unverantwortlich, die Risikobewertung einem Algorithmus zu überlassen“. netzpolitik.org, 9. Juni 2025
- Digitale Teilhabe und das Recht auf analogen Zugang. Rosa-Luxemburg-Stiftung, 6. März 2025
- Interview zu Standort-Trackern: Google und Apple kooperieren lieber, als ein Verbot zu riskieren. netzpolitik.org, 28. Mai 2024
- NETmundial+10. Internet Governance 10 Jahre nach dem Snowden-Schock. netzpolitik.org, 23. Mai 2024
- Ein Jahr kein Digitale-Gewalt-Gesetz. netzpolitik.org, 27. April 2024
- Digitalzwang: In zweifacher Hinsicht abgehängt. netzpolitik.org, 10. April 2024
- Ein Update zu digitaler Gewalt. Bei netzpolitik.org, 15. Sept. 2023
- Twitter: Wollen wir hier bleiben? In analyse & kritik, 15. Nov. 2022
- Chatkontrolle. Durchsuchung auf Verdacht. In Neues Deutschland, 7. Juni 2022
- Von Otto-Paketen bis Messenger-Diensten. In Neues Deutschland, 11. Sept. 2021
- Digitale Gewalt: überall und nirgends – Polizei und Justiz sind für Frauen nur selten eine Hilfe. In: cilip 126, Juli 2021
- Luca kam, sah – und spionierte. In Der Freitag 16/2021, 22. April 2021
- Chaos im Computerclub. In Der Freitag, Ausgabe 1/2018, 5. Jan. 2018
- Der NSA-Untersuchungsausschuss des Bundestages. In: cilip 114 – Die Cyberpolizei, Nov 2017
- Digitale Gewalt. Tags und nachts in Cyberparks. In Zeit Online, Serie ’10 nach 8′, 5. Okt. 17
- Massenüberwachung. In ‚Smarte Worte‘, neues Deutschland, 14. Nov. 16
- Wer kontrolliert wen?, Zwischenbericht aus dem NSA-Untersuchungsausschuss. In: vorgänge Nr. 215 (Heft 3/2016), S. 3-11
- Gegen Geheimdienste hilft Öffentlichkeit. Untersuchungsausschuss versucht die Massenüberwachung durch NSA, BND und Co. aufzuklären. In Lotta #61, Februar 16
- Totalüberwachung? War da was?. Im FAZ-Blog Ich. Heute. 10 vor 8, 28. Aug 14
- Zurück aufs Dorf?. Im FAZ-Blog Ich. Heute. 10 vor 8, 25. April 14
- Klick doch mal für die Hebammen. Im FAZ-Blog Ich. Heute. 10 vor 8, 22. Feb 14
- Warum protestiert eigentlich niemand? In der Bewegungskolumne des ‚Neuen Deutschland‘, 15. Jan 14
- Die Gedanken sind frei. In: Markus Beckedahl, Andre Meister (Hg.): Überwachtes Netz – Edward Snowden und der größte Überwachungsskandal der Geschichte, Nov 13
- Wo ist die linke Netzzeitung? In: ak – analyse & kritik – zeitung für linke Debatte und Praxis / Nr. 580 / 15. Feb 13
- Heinrich-Böll-Stiftung: Praktische Tipps zur Kontrolle persönlicher Daten: Mach Dich rar!, Dez. 12
- Verfassungsschutz abschaffen? Beitrag zum Sonntaz Streit der Woche, 19. Nov 11
- Bitte recht freundlich, in: Der Freitag, 21. Okt 11
- Das Annalist-Blog. Innenansichten einer Terrorismus-Ermittlung, in: Hans Christian Voigt/Thomas Kreiml (Hg.): Soziale Bewegungen und Social Media. Handbuch für den Einsatz von Web 2.0, ÖGB Verlag 2011
- Facebook: Whose side are you on? In: Oliver Leistert/Theo Röhle (Hg.): Generation Facebook. Über das Leben im Social Net, Transcript 2011, S. 217-219
- Zensus 2011: Volkszählung im Verborgenen, In: Blätter für deutsche und internationale Politik 3’11, S. 12-15 (pdf) (mit Daniel Leisegang)
- Gastbloggerin beim Missy Mazine, Oktober 2010
- Innenansicht einer Überwachung. Das Blog annalist (pdf). Aus: Leipziger Kamera – Initiative gegen Überwachung (Hg.) Kontrollverluste. Interventionen gegen Überwachung (Blog zum Buch)
- Blogging against Surveillance, In: Riseup: Digital Security for Activists (pdf)
- Terrorermittlungen und Internet. Verdachtsmomente und Gegenstrategien, In: Kulturrisse. Zeitschrift für radikaldemokratische Kulturkritik 1 – 2008. Innere Sicherheit 2.0 (mit Andrej Holm)
Texte über mich und meine Aktivitäten
- DerStandard, 28. Mai 24: Expertin: Google und Apple kooperieren lieber, als Verbote zu riskieren
- Recklinghäuser Zeitung, 16. Sept. 23: Bloßstellen, beleidigen, bedrohen, bedrängen Digitale Gewalt gegen Frauen ist alltäglich
- Spiegel Online, 12. Mai 19: Digitale Gewalt gegen Frauen. Spammen, spannen, stalken
- Spiegel Online, 6. Mai 19: Netzwelt-Newsletter
- Salzburger Nachrichten Online, 8. März 19: Der Kampf gegen den Hass im Netz
- MIT Technology Review, 24. Jan. 19: „Niemand hilft mehr den Opfern“
- der Freitag, 3. Jan. 19: Das Digitale ist politisch
- Süddeutsche Online, 28. Dez 18: Die digitale Seite der häuslichen Gewalt
- SWR3, 28. Dez 18: Cyber-Stalking nimmt zu – vor allem Frauen betroffen
- Futurezone.at, 26. Okt 16: „Ein Gefühl, das man nur aus totalitären Staaten kennt“
- Frankfurter Rundschau, 8. März 16: Wir sind Heldinnen
- NDR.de, 21. Sep 15: Das Netz: Bunte Glitzerwelt oder offene Plattform?
- FAZ, 10. Juni 14: Whistleblower Edward Snowden. Der hat doch gar nichts enthüllt
- Brandeins, März 14: Das große Unbehagen
- Featurette 24. Feb 14: Bloggerin der Woche
- DW Akademie 13. Dez. 13: Digitale Sicherheit für Journalisten
- Feministische Studien 1. Nov. 11, Sylvia Pritsch: Verletzbarkeit im Netz – zur sexistischen Rhetorik des Trollens
- Cafe Babel, 30. Aug 10: Politik-Bloggerinnen: “Ellenbogen, klappern, laut sein, ‘hier’ schreien”
- Emma, Sommer 2010: Geschlechterkrieg im Internet?
- FAZ, 14. Apr 10: Dossier: Deutsche Blogger / Über Anne Roth
- Missy Magazine 1/2010: Ja, wo bloggen sie denn?
- der Freitag, 1. Dez. 09: Nicht an den Rand drängen lassen!
- Medienforum Mittweida, 28. Okt 08: Staatsüberwachung: Eine wahre Geschichte
- Spiegel Online, 25. März 08: Unterwegs in Digitalien. Selbstüberwachung schützt vor Fremdüberwachung
- FutureZone, 15. Feb 08: Terrorismusverdacht in „Nahaufnahme“
- ZEIT Online, 30. Okt 07: Vom Leben als Terrorist
- Telepolis, 22. Okt 07: Ein Weblog des Terrors
Interviews
- Evangelisches Frankfurt und Offenbach, 4. März 2025: „Digitalisierung ist oft einfach schlecht gemacht“
- Hilfetelefon Gewalt gegen Frauen – Newsletter, 10. Sept. 2019: Ein Gespräch mit Netzaktivistin Anne Roth über Gewalt gegen Frauen im Internet
- Gender Equality Media, 26. Juli 2019: „Der Hass sitzt in den Köpfen“ – im Gespräch mit Renate Künast, Anne Roth und Jasna Strick
- Frankfurter Rundschau, 29. Jan. 2019: „Digitale Gewalt betrifft alle“
- Technology Review, Dez 2018: »Niemand hilft mehr den Opfern«
- prager frühling, Feb 2016: „Wir müssen uns auf einen sehr langen Kampf einstellen“. Interview mit Anne Roth über Erfahrungen aus dem NSA-Untersuchungsausschuss
- an.schläge, 1/2016 – „Schlicht gefährlich“. Anne Roth über ihre Überwachung durch Geheimdienste. (Interview: Brigitte Theißl)
- Fillmore, 26. Januar 2016: 1000 Profile bei speakerinnen.org: “Wir wünschen uns Speakerinnen aus allen Bereichen” (Interview: Teresa Hammerl)
- Zeitschrift für Medienwissenschaft, 13 (2/2015) – Überwachung und Kontrolle: »Die Auseinandersetzung verlagert sich deshalb immer wieder auf die Frage: Wer kontrolliert wen?« (Interview: Oliver Leistert)
- AVIVA Berlin: 9. März 2014: Speakerinnen-Liste gelauncht – Geschlechterverhältnis unter SpeakerInnen ist unausgeglichen
- Neue Osnabrücker Zeitung, 8. März 2014: Überwachung und Quote: Blogs annalist und 50 Prozent
- kleinerdrei, 29. April 2013: „Die gläserne Decke gibt es im Netz genau wie in der analogen Welt“
- Netzpiloten, 2. Januar 2012: Destination Check: Wie war’s @ 29. Kongress des CCC (29C3)?
- Jetzt, Süddeutsche, 15. März 2012: „Die Menschen wollen sich nicht abspeisen lassen“
- wdr.de, 29. Juli 2011: Netzexperten über Pseudonyme, Identität und Netzwerke. Wer bin ich und wenn ja wo?
- Girls can blog, 5. Mai 2011: Anne Roth
- heute.de 9. Sep 10: Feministischer Ruck im Netz
- Kölner Stadtanzeiger 21. Mai 09: Meine fürsorgliche Belagerung
- Annegang. Magazin zur Überwindung der Inneren Sicherheit Winter 08/09 „Wenn du was sagst, ist es verdächtig, wenn du nichts sagst, ist es noch viel verdächtiger“ (auch erschienen in Malmoe Nr. 46, Sommer 09)
- gulli news 4. Feb 09: Annalist-Interview. Ein Jahr später
- „Wir sind alle 129a“ Rote Hilfe-Broschüre Aug 08: Ganz seltsam war es, Sachen für den Knast zusammenzupacken(pdf).
- WOZ 12. Juni 08: Dr. Holm kennt böse Wörter. Wie wird man, ohne es zu merken, zum Terroristen? Ein Berliner Paar kennt die Antwort
- Gulli Wochenrückblick 2.Dez 07: Geschichte wird gemacht (auch in Datenschleuder #92/2008 (pdf))
Beiträge, in denen ich erwähnt oder zitiert werde
(Der Vollständigkeit halber)- .inf Das Informatik-Magazin, Winter 2025: Ein technisches Problem?
- t-online, 28. Nov. 25: Auf „Indymedia“ kann jeder Anschläge verübt haben
- DLF Kultur „Breitband“, 19. Juli 25: Zum Thema Transparenz im Digitalausschuss
- Zeit Online, 11. April 25: Die Polizei-KI sagte, die Frau sei nicht in Gefahr. Jetzt ist sie tot
- vpro Tegenlicht, 18. März 25: kiest Duitsland voor een digitalisering waarbij mensenrechten centraal staan?
- vpro Tegenlicht, 6. Feb. 25: kan Duitsland het alternatief worden voor Big Tech uit Silicon Valley?
- vpro Tegenlicht, 15. jan. 25: Duitsland, de digitale dinosaurus van Europa
- Der Standard, 28. Mai 24: Expertin: Google und Apple kooperieren lieber, als Verbote zu riskieren
- Telepolis, 11. Mai 24: Netzpolitik: Warum im Wahlkampf die Arbeit im digitalen Zeitalter kaum thematisiert wird
- netzpolitik.org, 30. März 24: Was ist digitale Gewalt?
- Der Westen, 27. Dez. 23: „Danke, Sahra Wagenknecht“ – Frau kriegt wegen ihr die Kündigung direkt zu Weihnachten
- Deutschlandfunk, 6. Dez. 23: Die Linksfraktion ist aufgelöst
- Ruhr-Nachrichten, 25. Nov. 23: Wie Frauen und Mädchen digitale Gewalt erleben, S.28
- Zeit Online, 26. Okt. 23: Twitter-Alternativen: Tausendmal diskutiert
- Deutschlandfunk, 5. Okt. 23: Nur das Blaue vom Social-Media-Himmel?
- netzpolitik.org, 4. Okt. 23: Warum Bluesky gerade durch die Decke geht – und was Mastodon daraus lernen kann
- der Freitag, 2. Okt. 23: Linker Exodus aus Elon Musks X: Bluesky ist wie Twitter ohne AfD
- t-online.de, 24. Mai 23: „Letzte Generation“: Aufregung um Interview der Justizsenatorin
- netzpolitik.org, 14. April 23: Die Woche, als ein Gesetz gegen „Digitale Gewalt“ seinen Namen nicht verdiente
- SWR 2, 28. März 23: KI macht’s möglich: Der Papst in Rapper-Daune
- netzpolitik.org, 18. Feb. 23: Verpflichtung zur BundID
- Neues Deutschland, 20. April 20: Corona-App vor dem Scheitern
- Spiegel Online, 8. März 20: Cyber-Stalking. Das könnten Anzeichen für eine Späh-App auf Ihrem Handy sein
- Spiegel Online, 29. Jan. 20: Verbotene Internetplattform. Was ist eigentlich Linksunten.indymedia?
- Süddeutsche.de, 23. Dez. 19: Stalkerware. Wenn der Ex das ganze Leben überwacht
- heise online, 14. Dez. 19: Justizministerium: WhatsApp, Gmail & Co. sollen Passwörter herausgeben müssen
- Spiegel Online, 28. Aug. 19: Antiviren-Apps übersehen Spionagesoftware
- taz, 16. Mai 19: #Twittersperrt vor der Europawahl. Satire verboten
- Neues Deutschland, 16. Mai 19: Menschliches Versagen bei Twitter.Vertreterin des Kurznachrichtendienstes gesteht in einer Ausschusssitzung im Bundestag Fehler ein
- Spiegel Online, 13. Mai 19: Twitter sperrt „Jüdische Allgemeine“ nach kritischem AfD-Tweet
- Spiegel Online, 9. Jan. 19: Daten-Leak Die Lösung bin ich!
- Der Freitag, 3. Jan. 19: Das Digitale ist politisch
- Neues Deutschland online, 30. Dez. 18: Das Hackerherz schlägt links
- Kreuzer Leipzig online, 28. Dez. 18: Politik unter Plastikpalmen
- Netzpiloten,17. Nov 16: NSA-Untersuchungsausschuss: Urteil zu Selektoren-Liste enttäuschend
- Zeit Online, 19. Jan 16: Achtung, Sie wurden gehackt! Wir sagen aber nicht, von wem
- Zeit Online, 11. Jan 16: #ausnahmslos : Twitter-Kampagne gegen sexuelle Gewalt
- Spiegel Online, 7. Jan 16: #besorgteEier bei Twitter: Hashtag führt zu Hassbotschaften
- BR Zündfunk Netzteil, 7. Jan 16: #besorgteEier: Wie Trolle im Netz mit Eiern beschmissen werden
- heise online, 18. Okt 14: Netzpolitik: Ritterschlags-Rüffel zum 10. Geburtstag
- Goethe-Institut, Okt 14: Netzfeminismus Diskussion im Wohnzimmer statt theoretischer Debatte
- Spiegel Online, 7. Jun 14: Folgen der NSA-Affäre: Wie Snowden das Netz verändert hat
- Der Freitag, 1. Dez. 09: Nicht an den Rand drängen lassen!
Video
TV
- Deutsche Welle, 24. Juli 17: ‚Gast des Tages‘ bei „Der Tag“ mit Julia Hahn, (Kurzzusammenschnitt)
- ZDF LogIn, 19. Juni 13: Datenklau für mehr Sicherheit? (YouTube)
- 140 Sekunden / Elektrischer Reporter Okt 11 (YouTube)
- Polylux 1. Nov. 07: Mein Leben als Terrorist (mp4, 50mb)
Panels, Talks, Konferenzen
- NPA 155 – Netzpolitischer Abend der Digitalen Gesellschaft e.V. „Digitale Gewalt„
- Social-Media-Verbot: Wer wird hier wirklich geschützt? Rosa-Luxemburg-Stiftung, 5. März 2026
- Keynote „Digitale Gewalt“ beim Fachtag Online-Delinquenz in der Jugendsozialarbeit der Katholischen Hochschule für Sozialwesen Berlin, 15. Jan. 2024
- 38C3 – Digitalisierung mit der Brechstange, 29. Dez. 2024
- 37C3 – Was Digitale Gewalt mit Restaurantkritik zu tun hat, 27. Dez. 2023
- NPA 129 – Netzpolitischer Themenabend „Digitale Gewalt“, 5. Sept. 2023
- Chaos Communication Camp 2023 – Digitale Gewalt – Das Update, 18. Aug. 2023
- Die Arbeit des NSA-Untersuchungsausschusses – Netzpolitischer Abend #126, 2. Mai 2023
- Netztalk zur Corona Warn-App (Kulturzentrum Pavillon in Hannover, c’t Magazin für Computertechnik, heise online) – online, 10. Juli 2020
- Mit Apps gegen den Virus? – Ausnahme&Zustand #1, 24. April 2020
- Chaos Communication Camp 2019 – Was tun gegen Digitale Gewalt gegen Frauen, 23. Aug. 2019
- 35C3 – Stalking, Spy Apps, Doxing: Digitale Gewalt gegen Frauen, 27. Dez. 18
- Immer noch nichts zu verbergen? Privatsphäre in Zeiten des Rechtspopulismus, 26. Sept. 18, Privacyweek Berlin
- Außer Spesen nichts gewesen? Ein Fazit des NSA-Untersuchungsausschusses, 23 Okt. 17, Privacyweek Wien
- Panel „Journalismus und Datenspuren“, 23. Okt. 17, Privacyweek Wien
- Lightning Talk über den NSA-Untersuchungsausschuss, 17. Oktober 15, Jugend hackt Berlin
- Wer überwacht die Überwacher? Ein Bericht aus dem NSA-Untersuchungsausschuss, 26. Aug. 15, Woche der Privatheit Köln
- NSA-Untersuchungsausschuss – Wer kontrolliert wen? 15. August 15, CCCamp 2015
- 37. Netzpolitischer Abend, Digitale Gesellschaft e.V., , 2. Juni 15, „Ein Jahr Untersuchungsausschuss“ (YouTube)
- Netztalk: Bloggerin Anne Roth will freies Netz zurück, 9. Feb 15, Hannover
- Talk bei Bloch.Live Yes we scan – Totale Freiheit oder totale Kontrolle? Ludwigshafen, 5. Feb. 15
- 10 Jahre Campact Kongress, 15. Nov 14, Podiumsdiskussion „NSA & Co: Was macht umfassende Überwachung aus unserer Demokratie, und was können wir dagegen tun?“ (YouTube)
- FifFKon 2014, 8. Nov 14, „Das trojanische Pferd ‚Terrorismus'“ (YouTube)
- 10 Jahre netzpolitik.org Podiumsdiskussion “Wir sind politisch?” – Journalismus zwischen Eintreten und Einordnen, 17. Okt 14 (YouTube)
- Medien International: Digitale Sicherheit für Journalisten, 23. Jan 14 (YouTube)
- Elevate Festival, 24. Okt 13 „Open Everything? – Wie verändert Openness die Gesellschaft?“ (Vimeo)
- “Wer überwacht die ÜberwacherInnen. Politische Konsequenzen aus den Snowden-Leaks” 6. Sept 13 (YouTube)
- re:publica 2013: Panel “Das kleine Digitale und das große Ganze. Internetaktivismus, Netzbewegung und Politik” (YouTube)
- Buchvorstellung „Generation Facebook. Über das Leben im Social Net“, 14. Nov 11, (YouTube)
- 29C3 – 29. Chaos Communication Congress, „Best of.. Verfassungsschutz“ 30. Dez 12 (YouTube)
- Ungehorsam! Disobedience! Kongress, Podiumsdiskussion „Die Pflicht zum Ungehorsam – Protest zwischen legitimer Aktionen und illegitimer Repression“, 29. Jan 12 (YouTube)
- Gespräch mit Wikileaks-Gründungsmitglied Daniel Mathews, 28. Mai 11 (YouTube)
- 28C3 – 28. Chaos Communication Congress „Sachsen dreht frei„, 27. Dez 11 (YouTube)
- Piraten auf Erfolgswelle, 28. Sep 11 (YouTube)
- Netz für alle „Wie das Internet Politik verändert„, 3. Sept 11 (YouTube)
- Netz für alle „Was lernen wir aus dem Wikileaks-Desaster?„, 3. Sept 11 (YouTube)
- Podiumsdiskussion „Wikipedia und Kritik“ im Rahmen der Konferenz „Wikipedia: Ein Kritischer Standpunkt“, 26. Sept 10 (Vimeo)
- re:publica 2010: Panel Das andere Geschlecht, 15. April 10 (YouTube)
- Mein Profil gehört mir, mediatuesday / taz, 13. April 10
- CFP 2009 „Creating The Future“, 4. Juni 09, Washington DC
Keynote Panel Panopticon: Internalizing the Gaze - SIGINT, 23. Mai 09, Köln: Bloggen gegen Überwachung (YouTube) (CCC-TV) (mp4 690mb, mp3, 56,3mb)
- 25C3 – 25. Chaos Communication Congress „Terrorist All-Stars“ (YouTube)
- 24C3 – 24. Chaos Communication Congress „What is Terrorism“ (YouTube)
Online
- HPImgzn: Stalking, Spy Apps, Doxing: Digitale Gewalt gegen Frauen, Dez 18
- Verdi TV: Anne Roth über digitale Sicherheit, Sept 14
- Anne Roth supports We Promise, Apr 14
- dctp.tv „Meinungsmacher“, Feb 10 (mp4, 172mb) (Video dctp.tv)
- Offener Kanal Dortmund Mai 08: Interview zum Thema Überwachung (mp4, 28mb, ogv, 27mb) (YouTube)
Film
- „Nothing to Hide“ (2017), Regisseur Marc Meillassoux. Filmfriend / IMDb / The Movie DB
- „Gefährder“, Regisseur Hans Weingartner, in „Deutschland 09 – 13 kurze Filme zur Lage der Nation“. Premiere 13 Feb 09. Pressespiegel (YouTube)
Demos
- „Freiheit statt Angst“, 7. Sep 13 (YouTube)
- „Freiheit statt Angst“, 12. Sep 09 (YouTube)
- „Freiheit statt Angst“, 11. Okt 08 (mp4, 56mb, ogv, 27mb) (YouTube)
Audio
Radio
- Radio Corax, 26. März 2026: Gesetzesentwurf gegen sexualisierte Übergriffe im Netz
- DLF Kultur – Breitband, 7. März 2026: Wie versagen Internetplattformen beim Schutz von Frauen
- Radio Blau, 14. Dez. 2025: Berlin wird immer langweiliger
- Radio Corax, 3. März 2025: Digitales Stalking und wie man sich dagegen wehrt
- Deutschlandfunk Kultur – Breitband, 4. Mai 2024: Digitale Gewalt: Werden Menschen im Netz ausreichend geschützt? (Min 28)
- Deutschlandfunk – Hintergrund, 5. Juni 2023: 10 Jahre Snowden-Enthüllungen. Die Überwachung ist immer noch überall
- Deutschlandfunk Kultur – Diskurs, 18. Sept. 2022: Zukunft der Digitalisierung. Brauchen wir eine feministische Digitalpolitik?
- Radio Orange 94.0 – Radio Dispositiv, 28. Feb. 2022: Digitale Souveränität – Anne Roth im Gespräch
- Deutschlandradio Kultur – Fazit, 15. Aug. 2021: Digitalisierung mit diskriminierenden Denkmustern: Symposion in Hamburg
- Deutschlandradio Kultur – Breitband, 24. Okt. 2020: „Ein weiterer Schritt zum Abbau der Grundrechte“
- Deutschlandradio Kultur – Im Gespräch, 2. Nov. 2019: Was tun gegen Hass und Hetze im Netz?
- Deutschlandradio Kultur – Breitband, 21. Sept. 2019: Wir brauchen neue „Snowden-Momente“
- RBB Kultur – Zeitpunkte, 14. Sept. 2019: Debatte: Was tun gegen Digitale Gewalt gegen Frauen?
- Deutschlandradio Kultur – Breitband, 18. Mai 19: #twittersperrt. Was steckt hinter den Accountsperrungen bei Twitter?
- Deutschlandradio Kultur – Fazit, 3. März 2019: Digitales Hausverbot. Wer darf wann unliebsame Twitternutzer blocken?
- Deutschlandradio Kultur – Breitband, 2. März 2019: Patriarchat 2.0
- Deutschlandradio Kultur – Kompressor, 23. Jan. 2019: Die frauenfeindlichen Ursprünge des Doxxing – und was wir jetzt tun sollten (mp3)
- Ö1 – Matrix, 27. Okt 17: Die dunkle Seite des Netzes, Interview zum NSA-Untersuchungsausschuss anlässlich der Privacyweek 2017
- Deutschlandfunk Kultur – Kompressor, 1. Aug 17: Überwachungssoftware austricksen„. Ein schiefer Pony kann helfen“ (mp3)
- Radio Fritz – Blue Moon „Chaosradio“, 29. Sept. 16: Geheimdienstgesetzgebung (Video)
- Deutschlandradio Kultur – Kompressor, 22. März 16: FBI entschlüsselt iPhone. Leben wir in einer Welt ohne Geheimnisse?
- Orange 94.0 – Radio Dispositiv, 23. Nov. 15: Vom Versuch kontrollierter Kontrolle
- Bayrischer Rundfunk – Puls, 19. Nov. 15: Warum mehr Überwachung nichts bringt
- WDR 5 – Morgenecho Interview zum EuGH-Urteil zu Safe Harbor
- Radio Fritz – Blue Moon „Chaosradio“, 28. Mai 15: „Was von Snowden übrig blieb„
- Deutschlandradio Kultur – Breitband, 13. Dez 14: „#NSAUA„
- Radio Fritz – Trackback, 4. Okt 14: Chancen und Probleme des neuen sozialen Netzwerks Ello
- RBB Kulturradio Hörerstreit, 4. Juli 14: Brauchen wir Anonymtität im Internet?
- Radio Fritz -Trackback, 23. Nov 13: Netzpolitische Pläne der Großen Koalition
- Deutschlandfunk Breitband, 7. Sep 13: Das Internet deiner Wahl
- Deutschlandfunk, 15. Aug 13: Das digitale Zuhause schützen (mp3)
- WDR 2, 3. Aug 13: Beobachtet und belauscht
- DRadio Wissen c’t Onlinetalk, 16. Juni 13: Spitzel auf dem digitalen Spielplatz
- DRadio Wissen c’t Onlinetalk, 16. März 13: Zwischen Euphorie und Entsetzen
- DRadio Wissen c’t Onlinetalk, 19. Jan 13: Von Kulturtechniken und Technikkultur
- Radio Fritz – Trackback, 12. Jan 13: Frauen und Netzpolitik
- Deutschlandradio Kultur – Breitband, 29. Dez. 2012: Computer, Politik und Kochtöpfe #29C3 (mp3)
- Medienradio, August 2012: Netzpolitische USA-Reise (mp3)
- DRadio Wissen c’t Online Talk, 20. Nov 11: Die gläserne Gesellschaft (mp3 25mb)
- DRadio Wissen c’t Online Talk, 18. Juni 2011: Hacktivismus. Die Zukunft der politischen Aktion Anonymous, Hacktivismus und digitale Militanz: Neue politische Aktionsformen in Digitalien? (mp3 25mb)
- Interview vor der Freiheit-statt-Angst-Demo 3.11.10, Make Capitalism History, Reboot.FM (ca. ab Min 38)
- DRadio Wissen 11. Sept. 10: Innenansichten einer Ermittlung
(mp3, 25mb) - Film & Diskussion im Rahmen der Film- und Veranstaltungsreihe Esc[Ctrl], Hannover, Kino im Sprengel, 27. März 10 30-min. Zusammenschnitt von Radio Flora.
- Radio Fritz Blogger privat – Trackback, 11. Juli 09 (mp3/5mb, ogg/4,4mb)
- Interview bei Radio 1984 nach der Demo „Freiheit statt Angst“, 11. Okt 08 (ogg, 14,6 mb).
- SWR 2: Und plötzlich bist Du Terrorist. Der Fall des Berliner Soziologen Andrej Holm, 1. Dez 08, von Tim Zülch. (Skript / mp3, 25 min, 11,4mb).
- Deutschlandfunk Corso – Kultur nach 3, 4. Feb 08 zu Konspiratives Verhalten: Wer terrorisiert wen bei der Transmediale 2008 (ogg-Datei)
- Film & Diskussion im Rahmen der Film- und Veranstaltungsreihe Esc[Ctrl], Hannover, Kino im Sprengel, 27. März 10 30-min. Zusammenschnitt von Radio Flora.
Veranstaltungen
- Zukunftswerkstatt Community Media „Wer nutzt die Community Medien? Wer macht sie? Wer hört und sieht zu?“ 25. Okt 12 (mp3)
- re:publica XI, 15. April 2011: Panel „Cyberfeministinnen und Girls on Web“ (Soundcloud)
- Rede bei der Demo Freiheit statt Angst, 11. Sept 10 (Text als pdf) (mp3, 8,1mb)
- Bloggen gegen Überwachung. Veranstaltung des CCC Bremen am 6. Juni 09 mp3 | ogg (Ca. 1,5 Std.)
- Comeback der Überzeugungen. Starker Staat, schwache Banken, politische Presse: Haben die linken Medien im Krisenjahr 2009 wieder Konjunktur?. Veranstaltung der Linken Medienakademie am 12. Feb 09 mit Bascha Mika, Jürgen Reentz, Wolfgang Storz, Philip Grassmann.
- Congressradio 25c3, 28. Dez 08: Internationaler Terrorismusverdacht (mp3)
- 25c3 „Terrorist All-Stars“, Vortrag beim 25. Chaos Communication Congress, 28. Dez 08 (Teil 1 mp3, 30mb, Teil 2 mp3, 27mb)
- Veranstaltung in Freiburg, 19. Okt 08.
Andrej Holm zum §129(a)-Verfahrens gegen ihn (mp3, 41mb)
Anne Roth zum Alltag mit Terrorismus-Verfahren (mp3, 39mb) - Rede bei der Auftaktkundgebung der Demo Freiheit statt Angst 11. Okt 08 (ogg, 7,7 mb).
- WOZ 12. Aug 08: Dr. Holm kennt böse Wörter
- Congress Radio 24C3, 30. Dez 07: Gespräch mit Anne Roth, Bloggerin über Privatheit und Öffentlichkeit in Zeiten der Überwachung 22 min. (mp3)
- Congress Radio 24C3, 30. Dez 07: Interview Anne Roth „Was ist Terrorismus?“ Radio Netwatcher / ORANGE 94.0, 26 min. (mp3)
- Veranstaltung NGBK, Nov 07: myterrorist.gov – Hausbesuche im „Kampf gegen den Terrorismus“. Teil 1 – Teil 2 – Teil 3 (mp3)
- Radiokampagne Berlin, 30. Sept 07: Wie sieht ein Leben in totaler Überwachung aus? 6 min. (mp3)
Podcasts
- They Talk Tech, 4. Feb. 25: AmA zum Fall “Jolie” mit Anne Roth
- They Talk Tech, 28. Dez. 25: Live mit Anne Roth (Video)
- c’t uplink, 27. Dez 25: Digitale Souveränität – sind Häcker:innen jetzt fürs Staatswohl verantwortlich? Live beim 39C3. (Video)
- BERIT Podcast, 23. Sept. 25: Die Betroffenen-Zahlen von Digitaler Gewalt sind eklatant hoch
- The Diner Podcast, 8. Sept. 23: Politikbetrieb Teil 1 / Teil 2
- ://hyperlinks, 25. Juni 22: Indymedia – was bisher geschah
- Chaosradio #264, 1. Dez. 20: Schnüffelgesetze auf ewiger Wiedervorlage
- machtmenschmaschine, 13. Nov. 20: Wenn Politik auf digitale Zukunft trifft – Ein Gespräch mit Anne Roth
- Netzpolitik Podcast, 9. März 19: NPP 168: Wenn Männer stalken, drohen und abhören
- Wir. Müssen Reden, 16. Aug 13: Überwachung
- Logbuch Netzpolitik, 9. Aug 13: Politische Reise nach Jerusalem
english
Video
- 38th Chaos Communication Congress, Digitalization with a heavy-handed approach Dec 28, 2024
- CCCamp 2019 – What do do against digital violence, Aug 23, 2019
- 35C3 Chaos Communication Congress: Digital Violence against Women, Dec 27, 2018
- Mass Surveillance and Pattern Recognition in Big Data, AI Symposium, Castello di Rivoli, Turin, Dec 12, 2018
- ECRYPT-CSA Workshop on Crypto Policies – Crypto policy and intelligence, Jan 23, 2018
- Entrevista Cryptorave 2016, Aug 23, 2016
- German Parlamentary Inquiry on Mass Surveillance, Aug 16, 15, CCCamp 2015
- Dirty Cables: The Technology & Politics of Network Infrastructures, Jun 17, 2016 Disruption Network Lab: Deep Cables
- Cryptorave Sao Paolo 2016: Keynote „Terrorismo e Vigilância“, May 6, 2016
- Seminário Internacional de Privacidade e Vigilância, May 4, 2016
- NSA Inquiry – Who controls whom? Aug 15, 15, CCCamp 2015
- Data Days 2014 – Keynote „Why Privacy Matters“ (YouTube)
- GenderIT / APC How technology informs my activism: A conversation with Anne Roth, June 14
- DW Akademie: Avoiding Digital Danger Zones, Dez 2, 13 (YouTube)
- Elevate Festival Graz, Oct 24, 2013 „Open Everything? – How does Openness change society?“ (Vimeo)
- Centre for Internet and Society Interview on Privacy and Surveillance, Oct 18, 2013
- Naked Citizens – World, May 7, 2013 (YouTube)
- CFP 2009 Creating The Future, June 4, 2009, Washington DC
Keynote Panel Panopticon: Internalizing the Gaze - „Terrorist All-Stars“, 25c3 – 25th Chaos Communication Congress, Dec 27, 2008, Berlin (YouTube)
- Chaos Computer Congress 24C3, 30 Dec 07 What is terrorism? (YouTube) Audio Part 1 25:45 min / Part 2 28:18 min.
- Current TV, 8 Oct 07: Stasi 2.0 (Video)
Audio
- Watching me, watching you, Fall 2009, Herbstradio
With Diana McCarty, Steve Kurtz, Michelle Teran, Christian de Lutz, Rich Pell, Anne Roth (mp3, 135 mb), approx. 2 hrs) - xname: Conversation with Annalist during CCC: about fear and terror, surveillance and control… Dec 07, 9 min ogg | mp3
Text
- Newsweek: Is the U.S. Government Hacking into Twitter Accounts? Jan 22, 2016
- threatpost: Twitter’s Silence Deafening on State-Sponsored Attacks, Jan 20, 2016
- The Local: ‚Keep men at arm’s length‘: no fix for assault, Jan 6, 2016
- The Guardian: Berlin’s digital exiles: where tech activists go to escape the NSA, Nov 14
- EFF: Counter-Surveillance Success Stories: Blogging Under Surveillance, Oct 14
- Exberliner: Berlin’s top chicks: Movers and shakers, March 11
- Anne Roth: Blogging against Surveillance Nov 08
Zum Terrorismus-Verfahren gegen Andrej Holm 2007
Text
- Der Spiegel 27. Aug 07: Mit aller Härte Die Bundesanwaltschaft steht wegen ihres Vorgehens gegen linke Wissenschaftler in der Kritik. Die Ermittlungen werden zum Präzedenzfall: Was ist heute Terrorismus?
- Frankfurter Rundschau 30. Aug 07: Neun Worte – ein Terrorverdacht
- Telepolis 3. Okt 97: Büchner und ein schwarzer Beutel Bundesgerichtshof prüft Anklagen gegen „militante gruppe“. Wird der Justizfarce ein Ende gesetzt?
- Die Zeit 25. Okt 07: Tatvorwurf Forschung. Wissenschaftler wehren sich in einem offenen Brief gegen die Verhaftung des Berliner Soziologen Andrej H.. Sie sehen sich dem Generalverdacht ausgesetzt, Terroristen zu sein.
- taz 11. Nov 07: „Was für eine Zeitverschwendung!“ Wegen angeblicher Unterstützung von Terroristen war Holm drei Wochen in Untersuchungshaft. Ein Gespräch über den Einbruch des Verdachts ins Leben, den Knastalltag und die Solidarität.
- Freitag Nov 07: Andrej Holm: „Im Kreis. Von der Logik von 129a-Verfahren“
- Der Spiegel 47/2007, 18. Nov 07: Gebildet, unauffällig, verdächtig Seit Jahren ermittelt die Bundesanwaltschaft mit aller Härte gegen vermeintliche linke Terroristen. Nun kritisiert der Bundesgerichtshof die Praxis in ungewöhnlicher Schärfe.
- analyse & kritik Dez 07: Andrej Holm „Black Box Solidarität – Über Fallstricke und Missverständnisse der Solidaritätsarbeit“
- taz 15. Dez 07: „Das sind keine legal erworbenen Informationen“ Bei Ermittlungen gegen die „militante gruppe“ nutzt die Bundesanwaltschaft sogar Stasi-Akten. Ist da die Stasi 2.0 am Werk? Drei Betroffene und eine Bürgerrechtlerin streiten über die Vergleichbarkeit staatlicher Verfolgung.
- Spiegel Online 10. Juli 08: Wenn das Telefon merkwürdige Dinge tut
- Heise News 6. Okt 09: BKA suchte Hilfe beim Entschlüsseln
Video
- Kulturzeit 3sat, kurz nach der Haftverschonung Spätsommer ’07
- Frontal 21, ZDF: Unschuldige unter Terrorverdacht Dez 07 (YouTube)
- Veranstaltung in der Volksbühne (I) 30.Sep 07 Ist jetzt alles Terrorismus? Die politische Dimension des §129a (Videos)
- Veranstaltung in der Volksbühne (II) 16. Sep 07 Wir sind alle TerroristInnen! Der § 129a und seine Folgen für Politik und Alltag. Szenische Lesung zu den Ermittlungen und Podiumsdiskussion mit Beschuldigten aus vier aktuellen § 129a-Verfahren (Video)
- ZDF Dokumentation „Der gläserne Deutsche„, April 09, ZDF (mp4,186mb, wmv, 507mb, ogv, 179mb)
- Quarks & Co, WDR, 9. März 2010: Nackt aber sicher? Wie viel Sicherheit verträgt die Demokratie? (mp4, 96mb) und Andrej Holm. Ein linker Wissenschaftler im Visier der Terrorfahnder (YouTube, Teile zwei, drei, vier, fünf)
- „Gefährder“ (YouTube)
- Arte, 6. Sep 11: Freiheit oder Sicherheit (Vimeo)
Audio
- documenta12, 22. Aug 07: Freiheit von Kunst und Wissenschaft
Am 1. August 2007 wurde gegen Andrej Holm, Stadtsoziologe an der Humboldt Universität Berlin, zusammen mit drei anderen Personen Haftbefehl erlassen unter dem Verdacht der Bildung einer terroristischen Vereinigung. Die Umstände dieser Verhaftung bedrohen die Freiheit von Wissenschaft und Kunst. - Küchenradio, 14. März 10: KR252 Andrej Holm (mp3)
The terrorism case against Andrej Holm in 2007
- Open letter to the Generalbundesanwaltschaft against the criminalization of critical academic research and political engagement
- Deutsche Welle, 17 Aug 2007: International Protest Over Berlin Sociologist’s Arrest
- The Chronicle of Higher Education, 20 Aug 2007: Academics Protest Germany’s Arrest of Scholar Accused of Aiding Militant Group
- The Guardian, 21 Aug 2007: Protests over terror arrest of German academic
- National Public Radio, 21 Aug 2007: Professor’s Research Results in Terrorism Charges (Audio)
- The Guardian, 21 Aug 2007: Richard Sennett and Saskia Sassen: Guantánamo in Germany
- Der Spiegel, 27 Aug 2007: Berlin Struggles to Define ‚Terror‘
- The Nation, 6 Sept 2007: Neil Smith: German GWOT Misfire
- rabble.ca, 7 Sept 2007: Roger Keil & Ute Lehrer: Scientists find out: gentrification is bad for you
- Statewatch, 8 Oct 2007: Crime by association – Terrorist law used to criminalise critical research
- Deutsche Welle World, 25 Oct 2007: Court Overturns Controversial Arrest of Sociology Professor
- heise online, 19 Nov 2007: Punk-bands, Eastern German magazines and journalists caught in surveillance grid
- Human Rights Watch: World Report 2008, Chapter European Union:
- Russia Today, Sep 11, 2010: Give us back our privacy (video)
- Naked Citizens – Documentary, May 2013 (YouTube)
Italiano
- Digimag.it 31/Feb 08: Annalist: Controllo, Terrore e Sorveglianza (Eleonora Oreggia)
Espagnol
- El País 22. Aug 07: Palabras incendiarias
- (con)textos (2009) 3 – Irene Sabaté Muriel: Conversando con Andrej Holm. Por unas ciencias sociales críticas con las transformaciones urbanas
- Cafe Babel 1. Sept 10: Blogueras políticas, ¡gritad “estoy aquí”!
Francais
- Reseau Agir ensemble contre le Chômage et la précarité, 18. Aug 07:Le „terroriste“ allait un peu trop à la bibliothèque…
- Libertés Internets 21 Aug 07: Les Gens qui fréquentent des bibliothèques sont des terroristes en puissance: Au trou!
- Nouvel Obs 22. Aug 07: Déclaration contre la criminalisation d’une science engagée à l’esprit critique / Pétition contre l’incarcération d’un sociologue
- Cafe Babel 1 Sept 10: Blogueuses politiques : faut-il qu’elles gueulent pour qu’on les écoute ?
- RTS Info 11 Oct 12: Le mouchard de la police allemande plus redoutable qu’imaginé (+ audio)
Norsk
- Universitas.no 12 Sept 07: En trussel mot fri forskning
- Forskningsetiske komiteer 3 Dez 07: Er sosiologisk begrepsbruk straffbart?
- Forskningsetiske komiteer 3 Dez 07: Dette er saken om Andrej Holm
Polski
- Cafe Babel 2 Sep 10: Blogerki polityczne: „Tu jestem!”
Svenska
- Geografiska Notiser 2-3. 07 Andrej Holm och hotet mot den kritiska forskningen (PDF)
- Expressen 16. Juni 08: Christopher Kulenberg: FRA-lagen hindrar fria forskningen
- Ord & Bild 1-2/2010 Havarier: Anne Roth: Att skapa en terrorist
- Deutsch
-
AmigaOS 4 Monthly Roundup – April 2025
Hi,
Welcome to a new edition of the AmigaOS 4 Monthly Roundup! 🙂
The month of May has arrived. Spring is in the air! It is time to look at what has been happening in the community during April.
Thanks for reading and for visiting my blog. Hope you’ll enjoy the news!
Software News
First up is some gaming news! Hold on to your horses!
Warcraft-2-Engine: Stratagus 3.3.3 for AmigaOS 4
Press release from amiga-news.de
Picture from the webshop of Alinea ComputerAlinea Computer is pleased to be able to offer another port by Steffen Häuser. Steffen has taken care of the porting of the latest version 3.3.3 and the installation routines for easy installation under AmigaOS 4. Stratagus is the port of the engine in version 3.3.3, which makes it possible to play the game Warcraft 2 from Blizzard Entertainment natively on the Amiga under AmigaOS 4.
The archive contains an installer with which it is possible to install the game directly from the PC CD without pre-installing it on the PC. At least for the Warcraft 2 Classic PC CD, for the Battle.Net CD or the Gog version it is necessary to unpack a file with a Windows tool, but with the Classic CD you can install directly on the Amiga.
Picture from the webshop of Alinea ComputerWarcraft 2 is one of the most famous strategy games of all time, practically the prequel to the famous MMO “World of Warcraft”. In addition to the base game “Warcraft 2: Tides of Darkness”, the add-on CD “Warcraft 2: Beyond the Dark Portal” (already included in the Battle.Net CD and Gog version) is also supported.
Stratagus is based on the current “latest Git” version of the Stratagus project (version 3.3.3). In contrast to an earlier implementation, 3.3.3 offers the following features:
- Iconic game music and not just sound effects (the music files are only installed with the Warcraft 2 Classic CD and the Battle.net CD, but can be copied manually afterwards when using the Gog version).
- The game’s video sequences (video sequences not available on AmigaOne A1222)
- A functional level editor
- Numerous bug fixes
Of course, the localisation of Warcraft 2 into different languages is also supported.
Stratagus is under GPL licence, the source code of the Amiga version will be integrated into the github of the PC version in the foreseeable future, but is also available as a request by e-mail (see readme for details).
Picture from the webshop of Alinea ComputerThe minimum requirements for Stratagus are:
A computer with AmigaOS 4.1 FE Update 2 or higher
Special executables optimised for the respective platforms (x1000, x5000, Sam 440, Sam 460, G3 and A1222) can be selected during installation.https://www.amiga-shop.net/en/Amiga-Software/Amiga-Games/Stratagus-3-3-3-for-AmigaOS-4::1412.html
Juan Carlos Herrán Martín is an active software developer for platforms like AmigaOS 4, MorphOS, and AROS. We’ve seen many releases from him in the earlier monthly roundups. Now he is back with a new version of the game Los Malditos. It is a free adaption of the mythical books from Timun Mas from the 1980s and 1990s. These books are related to Dungeons & Dragons. The author is a fan of these works. It is now available for download at OS4Depot.
Improvements since the previous version:
- Improved on-screen text
- Improvement of the game speed, removing the delay refresh in the game window
- Bugs fixed
- Removed the option to exit the game when you are in a fight and you are in places preventing you from running away from the enemy
- New cover
- The game has been made free, but donations are welcome
He also released version Final2 of High-Low-Equal Poker. This is a special version to promote the game Los Malditos del Valle del Cerro and a way to show the possibilities of his games to promote magazines, books, movies, and other games and programs, even hardware.
Screenshot by Puni from an earlier version- The game has the exclusive Baphomet deck with the Heroes from the game “Los Malditos’ del Valle del Cerro”
- Bug fixed with card engine
- Two game modes: A=1 Ace equals 1 and Poker A>K Ace as in poker is the highest card
- Now the game cans open and play with Baphomet decks
- New screen to exit the game instead of the window requester
- Small improvements
If that was not enough, he updated his utility Cards Making Kit to version 2.20. With this program, you can make your decks for the following games:
- HLE Poker Card (High-Low-Equal Poker Card)
- BlackJuan
- Siete y Media
- Baccarat
- BlackIvan Card
You can make your decks using pictures from your family, pets, hobbies, etc.
Screenshot by Puni from an earlier versionHere is another one from the same author. Version 2.05 of a game called Baccarat has been released. This is a tribute to the mythical card game, popularized by the James Bond movie Dr. No with Sean Connery. The author has added a new exit cover (more James Bond style), and fixed a bug with the Baphomet decks and the overload in the game screen that slowed down the game.
Screenshot by Puni from an earlier versionBlackjuan Poker Card has been updated to version 2.00. This is another card game from the author above. The development of the game started back in 2012. This release includes new graphics and bug fixes. The game now supports Baphomet decks.
Screenshot by Puni from an earlier versionLast, but not least, he has updated the game Siete y Media to version 2.00. This is a Spanish Blackjack version with a Spanish deck of 40 cards. The aim of the game is not to get 21 which is common in Blackjack, but the sum of 7.5. You can read more about this in the readme. An SDK is included for those interested in making their decks of cards.
https://www.youtube.com/watch?v=J67WwNSgq3A
Amifish is a chess program made to play chess with Amiga-like systems. It exploits the power of one of the most powerful chess engines in the world: Stockfish. This engine was developed by Tord Romstad, Marco Costalba, Joona Kiiski, and Gary Linscott. A chess engine is a console program that plays chess, receiving strings as commands and producing strings in output as a result of computation. Stockfish and many other engines are compatible with a standard named UCI (Universal Chess Interface). The name Amifish is obtained by joining the words ‘Amiga’ and ‘Stockfish’. However, the project is open to all engines compliant with the UCI standard. It is a light program for amateurs. It is made to have fun with chess. Only the most important options are implemented. Version 2.1 is out for AmigaOS 4 and can be downloaded from OS4Depot.
Version R19 of iMage, a fast image viewer by Lazi has been released. According to the author, it handles JPG files very fast.
MCE, Multi-game Character Editor, is a user-friendly open-source editor of character files, saved games, high score tables, levels, and graphics for 122 games. James Jacobs, the author, has now released version 15.31, which provides miscellaneous improvements, as well as an enhanced Goal! Team editor.
Lorence Lombardo released version 1.0 of chklib. It is currently used in the “amiaudcomp” lib project. He also released version 1.0 of flushmem, which in theory flushes all flushable items from memory.
AmiSSL received an update to version 5.20. As mentioned in earlier editions of the AmigaOS 4 Monthly Roundup, the AmiSSL project is a collaborative effort to develop a port of OpenSSL in a shared library for Amiga-based systems. The download is available here. If you are interested in the SDK, it can be found here. It is a must-have if you use AmigaOS 4 to browse the web!
An updated version, 3.4, of the YouTube URL Extractor Script by Michael Trebilcock was released on April 16th. YT.rexx is a script for providing direct video and audio links from YouTube URLs. Changes from the previous version include:
3.4 – 16th Apr 2025:
- Compatibility fixes.
- Removed MEDIACONNECT client as it was no longer supported.
- Added ANDROIDVR client. This is the default in a new YT.cfg. Please note that
YouTube Kids videos are incompatible with this client. - DualTagVid / DualTagAud settings in the .cfg can now have multiple tag
numbers in order of priority, for use with the dualplay option.
More history within the archive.
PolarPaint is an experimental paint program made in Hollywood by Anbjørn Myren. Version 1.055 was uploaded to OS4Depot and became available on April 18th. If you are interested in checking it out, please click here. Another version called PolarPaint Small can be downloaded via this link.
Deark is an application that can extract data from a wide range of file formats. Developed by Jason Summers, this tool can help you get data from everything from AMOS ABK files to Doom WADs. You can read more about supported formats, as well as download the utility from OS4Depot. Version 1.7.0 became available on OS4Depot on April 18th.
George Sokianos a.k.a. Walkero has released a new version of aiostreams. “All In One streams” (aiostreams) is a pack of scripts, written in Python, that can be used to stream and watch videos from different online networks, like Twitch.tv, YouTube, and Vimeo.com. Please click here to download it or to read the changelog.
Version 3.451 of IMP3, a utility created by Juen a.k.a Pawl Nowak, has been released! The program was originally meant for 68K but does run OK on AmigaOS 4. With IMP3, you can listen to over 168.000 music files through the Internet. These are ProTracker modules, SID tunes, and so forth. Besides this, it has cloud storage and Online gaming with high scores.
The source code for AmiCraftNova has been released to the public domain by Caras Ghant.
Frank Wille has released an updated version of vasm m68k std, vasm PPC std, and vasm 68k mot. vasm is a portable and re-targetable assembler to create linkable objects in various formats and absolute code. Multiple CPU-, syntax, and output-modules can be selected.
AmigaGPT is a versatile ChatGPT client for AmigaOS 3.x, 4.1 and MorphOS. It is being developed by Cameron Armstrong a.k.a. Nightfox. This powerful tool brings the capabilities of OpenAI’s GPT to your Amiga system, enabling text generation, question-answering, and creative exploration. AmigaGPT can also generate stunning images using DALL-E and includes support for speech output, making it easier than ever to interact with AI on your Amiga. Designed to integrate seamlessly with your system, AmigaGPT delivers modern AI technology while embracing the timeless Amiga experience. Version 2.5.0 is now available for download from OS4Depot.
Privoxy is a web proxy with advanced filtering capabilities for protecting privacy, modifying web page data, managing cookies, controlling access, and removing ads, banners, pop-ups, and other obnoxious Internet junk. It is being developed by Mark Mansnerus. Privoxy has a very flexible configuration and can be customized to suit individual needs and tastes. Privoxy has applications for both stand-alone systems and multi-user networks. Version 3.0.6 is now out and available for download.
WormHole allows you to transfer files to another computer within the same LAN without having to make any adjustments. It is being developed by Lazi. The main advantage of using WormHole between Amiga systems is that it can handle icons and all AmigaOS file attributes in one step.
Main features:
- Transfers all Amiga file attributes
- Transfers icons automatically
- Zero configuration
- Transfers files bi-directional at the same time
- Transfer multiple files parallel at the same time
- Multiplatform
Version 0.5 has been released. Please click here to download it.
AStone is a picture viewer created in Hollywood by Sandro Barbagelata. Version 1.0 was released on April 26th. It is heavily inspired by the utility Fastone on Windows.
The AmigaOS 4 port of Open Medal of Honor is now available on OS4Depot. The porting has been done by Ryan Dixon a.k.a. rjd324. The main goal of OpenMoHAA is to ensure the future and continuity of Medal of Honor: Allied Assault (including Spearhead and Breakthrough expansions) on all platforms/architectures by providing new patches/features.
The source code for the AmigaOS4 port can be found at:
https://github.com/3246251196/openmohaa
The download is available here.
https://www.youtube.com/watch?v=fQhvT-h2jk0
An update to Report+, a ReAction-based utility with nine functions, has been released by James Jacobs. It was made available on OS4Depot on April 27th. This tool can help you with generating Aminet- and OS4Depot-style readme files, performing batch processing on icons, and much more. Recent changes since 8.64 include miscellaneous improvements and bug fixes. More detailed information can be found on OS4Depot.
Screenshot by Puni from an older versionVersion 34.3 of AmiArcadia for AmigaOS 4, a Signetics-based machines emulator, has been released by James Jacobs.
According to the documentation, AmiArcadia supports the following systems:
- Emerson Arcadia 2001 console family (Bandai, Emerson, Grandstand, Intervision, Leisure-Vision, Leonardo, MPT-03, Ormatu, Palladium, Poppy, Robdajet, Tele-Fever, Tempest, Tryom, Tunix, etc.) (c. 1982);
- Interton VC 4000 console family (Acetronic, Cabel, Fountain, Hanimex, Interton, Prinztronic, Radofin, Rowtron, Soundic, Voltmace, Waddingtons, etc.) (c. 1978);
- Elektor TV Games Computer (1979);
- PIPBUG- and BINBUG-based machines (EA 77up2, EA 78up5, Signetics Adaptable Board Computer, Eurocard 2650, etc.) (1977-1978);
- Signetics Instructor 50 trainer (1978);
- Signetics TWIN minicomputer (1976);
- Central Data 2650 computer (1977);
- PHUNSY computer (c. 1980);
- Ravensburger Selbstbaucomputer aka 2650 Minimal Computer trainer (1984);
- Hofacker MIKIT 2650 trainer (1978);
- Astro Wars, Galaxia, Laser Battle and Lazarian coin-ops by Zaccaria (1979-1981);
- Malzak 1 and 2 coin-ops by Kitronix (c. 1981);
- AY-3-8500/8550/8600-based Pong systems (Coleco Telstar Galaxy, Sheen TVG-201, etc.) (1976-1977);
- VTech Type-right machine (1985)
It is packed with features, far too many to list here. Examples include ReAction GUI, load/save snapshots, and windowed and fullscreen modes. Other features are CPU tracing, trainer, and drag and drop support. Additionally, it offers graphics scaling, PAL/NTSC modes, and frame skipping, among many other features!
Here is a summary of the changes since the last version:
- TWIN: added emulation of high-speed papertape reader.
- CD2650, PHUNSY: added “Tools|Sprite/character editor/viewer…”
command. - Miscellaneous improvements and bug fixes.
Please click here to be taken to the download page.
Xiangqi is a chess program made to play Xiangqi (Chinese chess), by making use of chess engines UCI compatible with the moves played by computers. A chess engine is a console program that play chess, receiving strings as commands and producing strings in output as a result of computation. The program is developed by Domenico Lattanzi. More information is available on OS4Depot.
That was the software news for this time. Now let us move over to hardware! 🙂
Hardware
I first heard about the new PPC hardware on Discord and was very surprised, to say the least! amiga-news.de has an extensive article about the subject. It will explain the project much better than I would be able to do. 🙂 I recommend you pop over to them and have a look at what this new PPC hardware is about.
https://www.amiga-news.de/en/news/AN-2025-04-00129-EN.html
The Sam460. Photo lent from the official website of ACube SystemsHere are two announcements from ACube Systems about UBoot updates! 🙂
UBoot 2015.d for Sam460EX / Sam460CR / Sam460LE boards available
Bassano del Grappa, Italy – 08 April 2025ACube Systems is pleased to announce a new release of the UBoot firmware for its Sam460 line of motherboards.
For the first time in Amiga history, it is now possible to boot from an NVMe SSD.
This groundbreaking achievement marks a significant milestone in the evolution of the Amiga platform. Thanks to recent advancements, users can now experience dramatically improved boot speeds and data access times by utilizing modern NVMe solid-state drives—bringing the Amiga into a new era of performance and reliability.
This development not only enhances the capabilities of current NG systems but also demonstrates the ongoing innovation and dedication within the Amiga community. Booting from an NVMe SSD was once considered impossible—today, it is a reality.
This update is completely free for all users.
We are excited to announce a new version packed with important features and improvements—available as a free download.
New in this release:
- NVMe SSD driver – For the first time ever, you can boot from an NVMe drive using a standard NVMe-to PCIe adapter.
- PCIe SATA2 support – Added driver for the Silicon Image 3132 controller, allowing booting from both SATA SSDs and DVD drives.
- DDR2 timing adjustments – Fine-tune DDR2 RAM timings for faster memory access.
- Customizable USB stack – Choose between EHCI (faster for mass storage) or OHCI (greater compatibility with keyboards).
- Enhanced “sata” command – Now displays more detailed information about drivers and connected devices.
- Improved serial console navigation – Navigate menu items using W and S keys.
- General bug fixes and improvements.
- Unified source code – Now streamlined for both 460ex and 440ep platforms.
- An updated installation guide is included, covering the standard ISO image method as well as alternative installation methods via TFTP and USB.
- Updater tool can be downloaded from:
https://acube-systems.biz/download/Sam460_updater_2015d.zip
If you are not comfortable installing UBoot yourself, we also offer fully updated UBoot chips through our online store.
Additional information:
Please note: UBoot and UBoot updater make use of GPL code and thus are both published under GPL.Sources can be downloaded from:
UBoot & UBoot updater
https://acube-systems.biz/download/u-boot-2015.d_prod.tar.gzParthenope
The Sam440EP Flex – Photo by Puni
https://acube-systems.biz/download/ub2lb_0.94.tar.gzUBoot 2015.d for Sam440ep mini-itx and Sam440ep flex boards available
Bassano del Grappa, Italy – 14 April 2025ACube Systems is pleased to announce a new release of the U-Boot firmware for its Sam440 line of motherboards.
Following the recent update for the Sam460, the Sam440 now also benefits from enhanced support, including compatibility with NVMe SSDs. Additionally, this update introduces support for Radeon RX and Radeon HD graphics cards.
This release represents a significant investment of time and resources. Nevertheless, we have chosen to offer it at the symbolic price of €3.99.
Highlights of this release include:
- Support for Radeon RX graphics cards () Improved support for Radeon HD graphics cards ()
NVMe SSD driver: boot directly from NVMe devices using a PCIe adapter () Driver for the PCIe SATA2 Silicon Image 3132 controller, with support for booting from SSDs and DVDs () - Enhanced RAM access speed on Sam440ep-flex boards
- New graphical interface style
- Revised ‘sata’ command, now displaying more detailed information about drivers and connected devices
- Serial console improvements: menu navigation via the W (up) and S (down) keys
- General bug fixes and overall improvements
- Unified source code for the 460ex and 440ep platforms
Note:
Features marked with an asterisk (*) require a PCI-to-PCIe bridge.
Radeon RX and Radeon HD graphics cards also require a specific driver (to be sold separately by A-EON Technology once available) for use with AmigaOS 4.Purchase the update:
The update is available through our online store.
For those not comfortable performing the update themselves, we also offer pre-programmed, fully updated U-Boot chips.Additional Information:
UBoot makes use of GPL-licensed code and is therefore released under the terms of the GPL.
Source code downloads:
U-Boot:
https://acube-systems.biz/download/u-boot-2015.d_prod.tar.gz
Parthenope:
https://acube-systems.biz/download/ub2lb_0.94.tar.gzYouTube
Marek Glogowski has published a new video showing Super Star Blast running on AmigaOS 4 through QEMU 10 and GPU Passthrough:
https://www.youtube.com/watch?v=Kd_a9kpbXtQ
HunoPPC shows DOSBox Enhanced running on AmigaOS 4 with 3dfx support and shader effects:
https://www.youtube.com/watch?v=kSCPkfZ-pVo
Here is a video of Baldur’s Gate running on AmigaOS 4. The video was created by anouk33.
https://www.youtube.com/watch?v=4UT8a-33z2o
Here is another video, but this time of WarCraft II:
https://www.youtube.com/watch?v=rY5ktfyiK7o
And one of Quake II:
https://www.youtube.com/watch?v=ewALudVmDRc
Amiga Wave has made a long video. It lasts for more than 2 hours and covers his experience with AmigaOS 4 on the Sam460LE. The video is in Spanish.
https://www.youtube.com/watch?v=3nVsxjDwqHM
Mr. Byte shows Stratagus 3.3.3 running on his A1222+:
https://www.youtube.com/watch?v=bCJhZh_f_qY
The Lost C is back with a new video. This time he does a test of the A1222 with a Radeon HD7750. The vide is in Italian.
https://www.youtube.com/watch?v=yLYq27YKxls
He also created a video with the A1222 and AmiCygnix:
https://www.youtube.com/watch?v=xCDn4hMeabY
TJ Ferreira is back once again. This time, he takes us on a journey through his experience with playing Glubble on his AmigaOne X5000. 🙂
https://www.youtube.com/watch?v=72WX8T2Lsd4
Until next time
You’ve now reached the end of the AmigaOS 4 Monthly Roundup for April 2025. I had not expected it to be this extensive. There is a clearly a lot happening in the world of AmigaOS 4 and Amiga in general these days!
Thanks as always to all readers and supporters out there. Thanks for visiting my blog and see you in the next roundup! 🙂
Best regards,
Puni
Rate this:
#A1222 #Amiga #AmigaNews #AmigaOne #AmigaOS4 #AmigaOS4MonthlyRoundup #AmigaOS41
-
AmigaOS 4 Monthly Roundup – April 2025
Hi,
Welcome to a new edition of the AmigaOS 4 Monthly Roundup! 🙂
The month of May has arrived. Spring is in the air! It is time to look at what has been happening in the community during April.
Thanks for reading and for visiting my blog. Hope you’ll enjoy the news!
Software News
First up is some gaming news! Hold on to your horses!
Warcraft-2-Engine: Stratagus 3.3.3 for AmigaOS 4
Press release from amiga-news.de
Picture from the webshop of Alinea ComputerAlinea Computer is pleased to be able to offer another port by Steffen Häuser. Steffen has taken care of the porting of the latest version 3.3.3 and the installation routines for easy installation under AmigaOS 4. Stratagus is the port of the engine in version 3.3.3, which makes it possible to play the game Warcraft 2 from Blizzard Entertainment natively on the Amiga under AmigaOS 4.
The archive contains an installer with which it is possible to install the game directly from the PC CD without pre-installing it on the PC. At least for the Warcraft 2 Classic PC CD, for the Battle.Net CD or the Gog version it is necessary to unpack a file with a Windows tool, but with the Classic CD you can install directly on the Amiga.
Picture from the webshop of Alinea ComputerWarcraft 2 is one of the most famous strategy games of all time, practically the prequel to the famous MMO “World of Warcraft”. In addition to the base game “Warcraft 2: Tides of Darkness”, the add-on CD “Warcraft 2: Beyond the Dark Portal” (already included in the Battle.Net CD and Gog version) is also supported.
Stratagus is based on the current “latest Git” version of the Stratagus project (version 3.3.3). In contrast to an earlier implementation, 3.3.3 offers the following features:
- Iconic game music and not just sound effects (the music files are only installed with the Warcraft 2 Classic CD and the Battle.net CD, but can be copied manually afterwards when using the Gog version).
- The game’s video sequences (video sequences not available on AmigaOne A1222)
- A functional level editor
- Numerous bug fixes
Of course, the localisation of Warcraft 2 into different languages is also supported.
Stratagus is under GPL licence, the source code of the Amiga version will be integrated into the github of the PC version in the foreseeable future, but is also available as a request by e-mail (see readme for details).
Picture from the webshop of Alinea ComputerThe minimum requirements for Stratagus are:
A computer with AmigaOS 4.1 FE Update 2 or higher
Special executables optimised for the respective platforms (x1000, x5000, Sam 440, Sam 460, G3 and A1222) can be selected during installation.https://www.amiga-shop.net/en/Amiga-Software/Amiga-Games/Stratagus-3-3-3-for-AmigaOS-4::1412.html
Juan Carlos Herrán Martín is an active software developer for platforms like AmigaOS 4, MorphOS, and AROS. We’ve seen many releases from him in the earlier monthly roundups. Now he is back with a new version of the game Los Malditos. It is a free adaption of the mythical books from Timun Mas from the 1980s and 1990s. These books are related to Dungeons & Dragons. The author is a fan of these works. It is now available for download at OS4Depot.
Improvements since the previous version:
- Improved on-screen text
- Improvement of the game speed, removing the delay refresh in the game window
- Bugs fixed
- Removed the option to exit the game when you are in a fight and you are in places preventing you from running away from the enemy
- New cover
- The game has been made free, but donations are welcome
He also released version Final2 of High-Low-Equal Poker. This is a special version to promote the game Los Malditos del Valle del Cerro and a way to show the possibilities of his games to promote magazines, books, movies, and other games and programs, even hardware.
Screenshot by Puni from an earlier version- The game has the exclusive Baphomet deck with the Heroes from the game “Los Malditos’ del Valle del Cerro”
- Bug fixed with card engine
- Two game modes: A=1 Ace equals 1 and Poker A>K Ace as in poker is the highest card
- Now the game cans open and play with Baphomet decks
- New screen to exit the game instead of the window requester
- Small improvements
If that was not enough, he updated his utility Cards Making Kit to version 2.20. With this program, you can make your decks for the following games:
- HLE Poker Card (High-Low-Equal Poker Card)
- BlackJuan
- Siete y Media
- Baccarat
- BlackIvan Card
You can make your decks using pictures from your family, pets, hobbies, etc.
Screenshot by Puni from an earlier versionHere is another one from the same author. Version 2.05 of a game called Baccarat has been released. This is a tribute to the mythical card game, popularized by the James Bond movie Dr. No with Sean Connery. The author has added a new exit cover (more James Bond style), and fixed a bug with the Baphomet decks and the overload in the game screen that slowed down the game.
Screenshot by Puni from an earlier versionBlackjuan Poker Card has been updated to version 2.00. This is another card game from the author above. The development of the game started back in 2012. This release includes new graphics and bug fixes. The game now supports Baphomet decks.
Screenshot by Puni from an earlier versionLast, but not least, he has updated the game Siete y Media to version 2.00. This is a Spanish Blackjack version with a Spanish deck of 40 cards. The aim of the game is not to get 21 which is common in Blackjack, but the sum of 7.5. You can read more about this in the readme. An SDK is included for those interested in making their decks of cards.
https://www.youtube.com/watch?v=J67WwNSgq3A
Amifish is a chess program made to play chess with Amiga-like systems. It exploits the power of one of the most powerful chess engines in the world: Stockfish. This engine was developed by Tord Romstad, Marco Costalba, Joona Kiiski, and Gary Linscott. A chess engine is a console program that plays chess, receiving strings as commands and producing strings in output as a result of computation. Stockfish and many other engines are compatible with a standard named UCI (Universal Chess Interface). The name Amifish is obtained by joining the words ‘Amiga’ and ‘Stockfish’. However, the project is open to all engines compliant with the UCI standard. It is a light program for amateurs. It is made to have fun with chess. Only the most important options are implemented. Version 2.1 is out for AmigaOS 4 and can be downloaded from OS4Depot.
Version R19 of iMage, a fast image viewer by Lazi has been released. According to the author, it handles JPG files very fast.
MCE, Multi-game Character Editor, is a user-friendly open-source editor of character files, saved games, high score tables, levels, and graphics for 122 games. James Jacobs, the author, has now released version 15.31, which provides miscellaneous improvements, as well as an enhanced Goal! Team editor.
Lorence Lombardo released version 1.0 of chklib. It is currently used in the “amiaudcomp” lib project. He also released version 1.0 of flushmem, which in theory flushes all flushable items from memory.
AmiSSL received an update to version 5.20. As mentioned in earlier editions of the AmigaOS 4 Monthly Roundup, the AmiSSL project is a collaborative effort to develop a port of OpenSSL in a shared library for Amiga-based systems. The download is available here. If you are interested in the SDK, it can be found here. It is a must-have if you use AmigaOS 4 to browse the web!
An updated version, 3.4, of the YouTube URL Extractor Script by Michael Trebilcock was released on April 16th. YT.rexx is a script for providing direct video and audio links from YouTube URLs. Changes from the previous version include:
3.4 – 16th Apr 2025:
- Compatibility fixes.
- Removed MEDIACONNECT client as it was no longer supported.
- Added ANDROIDVR client. This is the default in a new YT.cfg. Please note that
YouTube Kids videos are incompatible with this client. - DualTagVid / DualTagAud settings in the .cfg can now have multiple tag
numbers in order of priority, for use with the dualplay option.
More history within the archive.
PolarPaint is an experimental paint program made in Hollywood by Anbjørn Myren. Version 1.055 was uploaded to OS4Depot and became available on April 18th. If you are interested in checking it out, please click here. Another version called PolarPaint Small can be downloaded via this link.
Deark is an application that can extract data from a wide range of file formats. Developed by Jason Summers, this tool can help you get data from everything from AMOS ABK files to Doom WADs. You can read more about supported formats, as well as download the utility from OS4Depot. Version 1.7.0 became available on OS4Depot on April 18th.
George Sokianos a.k.a. Walkero has released a new version of aiostreams. “All In One streams” (aiostreams) is a pack of scripts, written in Python, that can be used to stream and watch videos from different online networks, like Twitch.tv, YouTube, and Vimeo.com. Please click here to download it or to read the changelog.
Version 3.451 of IMP3, a utility created by Juen a.k.a Pawl Nowak, has been released! The program was originally meant for 68K but does run OK on AmigaOS 4. With IMP3, you can listen to over 168.000 music files through the Internet. These are ProTracker modules, SID tunes, and so forth. Besides this, it has cloud storage and Online gaming with high scores.
The source code for AmiCraftNova has been released to the public domain by Caras Ghant.
Frank Wille has released an updated version of vasm m68k std, vasm PPC std, and vasm 68k mot. vasm is a portable and re-targetable assembler to create linkable objects in various formats and absolute code. Multiple CPU-, syntax, and output-modules can be selected.
AmigaGPT is a versatile ChatGPT client for AmigaOS 3.x, 4.1 and MorphOS. It is being developed by Cameron Armstrong a.k.a. Nightfox. This powerful tool brings the capabilities of OpenAI’s GPT to your Amiga system, enabling text generation, question-answering, and creative exploration. AmigaGPT can also generate stunning images using DALL-E and includes support for speech output, making it easier than ever to interact with AI on your Amiga. Designed to integrate seamlessly with your system, AmigaGPT delivers modern AI technology while embracing the timeless Amiga experience. Version 2.5.0 is now available for download from OS4Depot.
Privoxy is a web proxy with advanced filtering capabilities for protecting privacy, modifying web page data, managing cookies, controlling access, and removing ads, banners, pop-ups, and other obnoxious Internet junk. It is being developed by Mark Mansnerus. Privoxy has a very flexible configuration and can be customized to suit individual needs and tastes. Privoxy has applications for both stand-alone systems and multi-user networks. Version 3.0.6 is now out and available for download.
WormHole allows you to transfer files to another computer within the same LAN without having to make any adjustments. It is being developed by Lazi. The main advantage of using WormHole between Amiga systems is that it can handle icons and all AmigaOS file attributes in one step.
Main features:
- Transfers all Amiga file attributes
- Transfers icons automatically
- Zero configuration
- Transfers files bi-directional at the same time
- Transfer multiple files parallel at the same time
- Multiplatform
Version 0.5 has been released. Please click here to download it.
AStone is a picture viewer created in Hollywood by Sandro Barbagelata. Version 1.0 was released on April 26th. It is heavily inspired by the utility Fastone on Windows.
The AmigaOS 4 port of Open Medal of Honor is now available on OS4Depot. The porting has been done by Ryan Dixon a.k.a. rjd324. The main goal of OpenMoHAA is to ensure the future and continuity of Medal of Honor: Allied Assault (including Spearhead and Breakthrough expansions) on all platforms/architectures by providing new patches/features.
The source code for the AmigaOS4 port can be found at:
https://github.com/3246251196/openmohaa
The download is available here.
https://www.youtube.com/watch?v=fQhvT-h2jk0
An update to Report+, a ReAction-based utility with nine functions, has been released by James Jacobs. It was made available on OS4Depot on April 27th. This tool can help you with generating Aminet- and OS4Depot-style readme files, performing batch processing on icons, and much more. Recent changes since 8.64 include miscellaneous improvements and bug fixes. More detailed information can be found on OS4Depot.
Screenshot by Puni from an older versionVersion 34.3 of AmiArcadia for AmigaOS 4, a Signetics-based machines emulator, has been released by James Jacobs.
According to the documentation, AmiArcadia supports the following systems:
- Emerson Arcadia 2001 console family (Bandai, Emerson, Grandstand, Intervision, Leisure-Vision, Leonardo, MPT-03, Ormatu, Palladium, Poppy, Robdajet, Tele-Fever, Tempest, Tryom, Tunix, etc.) (c. 1982);
- Interton VC 4000 console family (Acetronic, Cabel, Fountain, Hanimex, Interton, Prinztronic, Radofin, Rowtron, Soundic, Voltmace, Waddingtons, etc.) (c. 1978);
- Elektor TV Games Computer (1979);
- PIPBUG- and BINBUG-based machines (EA 77up2, EA 78up5, Signetics Adaptable Board Computer, Eurocard 2650, etc.) (1977-1978);
- Signetics Instructor 50 trainer (1978);
- Signetics TWIN minicomputer (1976);
- Central Data 2650 computer (1977);
- PHUNSY computer (c. 1980);
- Ravensburger Selbstbaucomputer aka 2650 Minimal Computer trainer (1984);
- Hofacker MIKIT 2650 trainer (1978);
- Astro Wars, Galaxia, Laser Battle and Lazarian coin-ops by Zaccaria (1979-1981);
- Malzak 1 and 2 coin-ops by Kitronix (c. 1981);
- AY-3-8500/8550/8600-based Pong systems (Coleco Telstar Galaxy, Sheen TVG-201, etc.) (1976-1977);
- VTech Type-right machine (1985)
It is packed with features, far too many to list here. Examples include ReAction GUI, load/save snapshots, and windowed and fullscreen modes. Other features are CPU tracing, trainer, and drag and drop support. Additionally, it offers graphics scaling, PAL/NTSC modes, and frame skipping, among many other features!
Here is a summary of the changes since the last version:
- TWIN: added emulation of high-speed papertape reader.
- CD2650, PHUNSY: added “Tools|Sprite/character editor/viewer…”
command. - Miscellaneous improvements and bug fixes.
Please click here to be taken to the download page.
Xiangqi is a chess program made to play Xiangqi (Chinese chess), by making use of chess engines UCI compatible with the moves played by computers. A chess engine is a console program that play chess, receiving strings as commands and producing strings in output as a result of computation. The program is developed by Domenico Lattanzi. More information is available on OS4Depot.
That was the software news for this time. Now let us move over to hardware! 🙂
Hardware
I first heard about the new PPC hardware on Discord and was very surprised, to say the least! amiga-news.de has an extensive article about the subject. It will explain the project much better than I would be able to do. 🙂 I recommend you pop over to them and have a look at what this new PPC hardware is about.
https://www.amiga-news.de/en/news/AN-2025-04-00129-EN.html
The Sam460. Photo lent from the official website of ACube SystemsHere are two announcements from ACube Systems about UBoot updates! 🙂
UBoot 2015.d for Sam460EX / Sam460CR / Sam460LE boards available
Bassano del Grappa, Italy – 08 April 2025ACube Systems is pleased to announce a new release of the UBoot firmware for its Sam460 line of motherboards.
For the first time in Amiga history, it is now possible to boot from an NVMe SSD.
This groundbreaking achievement marks a significant milestone in the evolution of the Amiga platform. Thanks to recent advancements, users can now experience dramatically improved boot speeds and data access times by utilizing modern NVMe solid-state drives—bringing the Amiga into a new era of performance and reliability.
This development not only enhances the capabilities of current NG systems but also demonstrates the ongoing innovation and dedication within the Amiga community. Booting from an NVMe SSD was once considered impossible—today, it is a reality.
This update is completely free for all users.
We are excited to announce a new version packed with important features and improvements—available as a free download.
New in this release:
- NVMe SSD driver – For the first time ever, you can boot from an NVMe drive using a standard NVMe-to PCIe adapter.
- PCIe SATA2 support – Added driver for the Silicon Image 3132 controller, allowing booting from both SATA SSDs and DVD drives.
- DDR2 timing adjustments – Fine-tune DDR2 RAM timings for faster memory access.
- Customizable USB stack – Choose between EHCI (faster for mass storage) or OHCI (greater compatibility with keyboards).
- Enhanced “sata” command – Now displays more detailed information about drivers and connected devices.
- Improved serial console navigation – Navigate menu items using W and S keys.
- General bug fixes and improvements.
- Unified source code – Now streamlined for both 460ex and 440ep platforms.
- An updated installation guide is included, covering the standard ISO image method as well as alternative installation methods via TFTP and USB.
- Updater tool can be downloaded from:
https://acube-systems.biz/download/Sam460_updater_2015d.zip
If you are not comfortable installing UBoot yourself, we also offer fully updated UBoot chips through our online store.
Additional information:
Please note: UBoot and UBoot updater make use of GPL code and thus are both published under GPL.Sources can be downloaded from:
UBoot & UBoot updater
https://acube-systems.biz/download/u-boot-2015.d_prod.tar.gzParthenope
The Sam440EP Flex – Photo by Puni
https://acube-systems.biz/download/ub2lb_0.94.tar.gzUBoot 2015.d for Sam440ep mini-itx and Sam440ep flex boards available
Bassano del Grappa, Italy – 14 April 2025ACube Systems is pleased to announce a new release of the U-Boot firmware for its Sam440 line of motherboards.
Following the recent update for the Sam460, the Sam440 now also benefits from enhanced support, including compatibility with NVMe SSDs. Additionally, this update introduces support for Radeon RX and Radeon HD graphics cards.
This release represents a significant investment of time and resources. Nevertheless, we have chosen to offer it at the symbolic price of €3.99.
Highlights of this release include:
- Support for Radeon RX graphics cards () Improved support for Radeon HD graphics cards ()
NVMe SSD driver: boot directly from NVMe devices using a PCIe adapter () Driver for the PCIe SATA2 Silicon Image 3132 controller, with support for booting from SSDs and DVDs () - Enhanced RAM access speed on Sam440ep-flex boards
- New graphical interface style
- Revised ‘sata’ command, now displaying more detailed information about drivers and connected devices
- Serial console improvements: menu navigation via the W (up) and S (down) keys
- General bug fixes and overall improvements
- Unified source code for the 460ex and 440ep platforms
Note:
Features marked with an asterisk (*) require a PCI-to-PCIe bridge.
Radeon RX and Radeon HD graphics cards also require a specific driver (to be sold separately by A-EON Technology once available) for use with AmigaOS 4.Purchase the update:
The update is available through our online store.
For those not comfortable performing the update themselves, we also offer pre-programmed, fully updated U-Boot chips.Additional Information:
UBoot makes use of GPL-licensed code and is therefore released under the terms of the GPL.
Source code downloads:
U-Boot:
https://acube-systems.biz/download/u-boot-2015.d_prod.tar.gz
Parthenope:
https://acube-systems.biz/download/ub2lb_0.94.tar.gzYouTube
Marek Glogowski has published a new video showing Super Star Blast running on AmigaOS 4 through QEMU 10 and GPU Passthrough:
https://www.youtube.com/watch?v=Kd_a9kpbXtQ
HunoPPC shows DOSBox Enhanced running on AmigaOS 4 with 3dfx support and shader effects:
https://www.youtube.com/watch?v=kSCPkfZ-pVo
Here is a video of Baldur’s Gate running on AmigaOS 4. The video was created by anouk33.
https://www.youtube.com/watch?v=4UT8a-33z2o
Here is another video, but this time of WarCraft II:
https://www.youtube.com/watch?v=rY5ktfyiK7o
And one of Quake II:
https://www.youtube.com/watch?v=ewALudVmDRc
Amiga Wave has made a long video. It lasts for more than 2 hours and covers his experience with AmigaOS 4 on the Sam460LE. The video is in Spanish.
https://www.youtube.com/watch?v=3nVsxjDwqHM
Mr. Byte shows Stratagus 3.3.3 running on his A1222+:
https://www.youtube.com/watch?v=bCJhZh_f_qY
The Lost C is back with a new video. This time he does a test of the A1222 with a Radeon HD7750. The vide is in Italian.
https://www.youtube.com/watch?v=yLYq27YKxls
He also created a video with the A1222 and AmiCygnix:
https://www.youtube.com/watch?v=xCDn4hMeabY
TJ Ferreira is back once again. This time, he takes us on a journey through his experience with playing Glubble on his AmigaOne X5000. 🙂
https://www.youtube.com/watch?v=72WX8T2Lsd4
Until next time
You’ve now reached the end of the AmigaOS 4 Monthly Roundup for April 2025. I had not expected it to be this extensive. There is a clearly a lot happening in the world of AmigaOS 4 and Amiga in general these days!
Thanks as always to all readers and supporters out there. Thanks for visiting my blog and see you in the next roundup! 🙂
Best regards,
Puni
Rate this:
#A1222 #Amiga #AmigaNews #AmigaOne #AmigaOS4 #AmigaOS4MonthlyRoundup #AmigaOS41