Sample of a series of “singing” portraits moving through the Latin American songbook. Each portrait is sourced from a U.S. federal government social media post featuring individuals presented as “apprehended” undocumented immigrants, accompanied by alleged rap-sheet text as content. The images are isolated and animated using machine-learning–based segmentation and motion synthesis techniques.
.png)




las mentiras que meto para chuparme una verdad



Using the vernacular of old-school video games, South of the Border gamifies debates around immigration and representation, turning their flawed logics into gameplay loops. The game adopts the structure of Space Invaders (publshed in 1978 by Taito): the player must stop enemies from crossing the bottom of the screen, which stands in for the border in this case. Each migrant stopped increases the score, called “Prosperity”.
As the score rises, more characters attempt to cross, ensuring the game can never be won. Each crosser has a distinct costume and behavior reflecting a "cultural identity". When a crosser makes it across the “border,” one of the player’s clothing items is replaced with that of the crosser. The game ends when the player has been fully cross-culturally-dressed in the migrants’ attire. Through comedy, the game defuses dominant anxieties around immigration and loss of (imagined) autochthonous identities, translating this flawed line of reasoning into an unwinnable game.

curatorial project with Jason File and Michael Sims

digital collages, dimensions vary.

digital video composed Instagram ads, 1080 x 1080, duration 00:00:45:00.



computer, div. bucket, perforated square steel tubes, motion sensor, stereo speakers, projector, custom software, xxl. 2023
Exhibition composed of an architectural armature adapted to the gallery space. The structure hosts 'div, bucket' and 'xxl'. The last one is is running through a custom interactive media player (m.xxl.p).
m.xxl.p in collaboration w. Yuno Choi : computer vision detects the # of users in the room .Once a number is defined, the software chooses a behavior at random from a specified list of operations designed for that #of users.


15 gallon bucket with an inlaid mirror, filled at about 3/4th with water. A gyroscope fidget spinner with a double sided mirror in the center sits at the water’s edge, held up + down by stainless steel chains.
The spinner is animated by 2 aquarium motors that are at diametrically opposing positions within the bucket, these are hacked to independently run fungible data sets which regulate the spin of each motor. There are 50 data arrays to choose from : each motor individually sources a single one at random -> executes the command -> chooses another random data. Each motor plays a data set independently of the other.
Between each data selection there is a 5 second intermission in which the motor plays a reggaetón beat.
Example of the Data arrays :
- [x] President John F. Kennedy’s “The people of Latin America want to be free; and we want them to be free.” in morse code.
- [x] Number of guano islands claimed by the USA through the Guano Islands Act each year throughout its duration.
- [x] Number of active Cuban soldiers (per year) that fought the South African aggressors out of Angola and Namibia; each year divided by the number of polygons that Woody from Toy Story is composed of.
- [x] Play-through of the trumpet section of Ismael Rivera’s “Las Tumbas”
- [x] Total budget of all Marvel movies in relation to the Gross Domestic Product of Caribbean countries every year since the first Iron Man movie was released.
...etc...etc...etc


.png)

switch (currentDataSet) {
case MISS_UNIVERSE:
speed = missUniverseCounts[dataIndex];
currentDatasetSize = sizeof(missUniverseCounts) / sizeof(missUniverseCounts[0]);
break;
case JFKMORSESLATINFREEDOM:
speed = JfkmorseslatinfreedomCounts[dataIndex];
currentDatasetSize = sizeof(JfkmorseslatinfreedomCounts) / sizeof(JfkmorseslatinfreedomCounts[0]);
break;
case PORNHUB_GASOLINA:
speed = pornhubGasolinaCounts[dataIndex];
currentDatasetSize = sizeof(pornhubGasolinaCounts) / sizeof(pornhubGasolinaCounts[0]);
break;
case FLORIDA_CUBA_OBAMA:
speed = floridaCubaObamaCounts[dataIndex];
currentDatasetSize = sizeof(floridaCubaObamaCounts) / sizeof(floridaCubaObamaCounts[0]);
break;
case SUPER_TRUMPWNED:
speed = superTrumpwnedCounts[dataIndex];
currentDatasetSize = sizeof(superTrumpwnedCounts) / sizeof(superTrumpwnedCounts[0]);
break;
case OBAMAS_PLAYA:
speed = obamasPlayaCounts[dataIndex];
currentDatasetSize = sizeof(obamasPlayaCounts) / sizeof(obamasPlayaCounts[0]);
break;
case MCDONALDS_DRAGON_NAPALM:
speed = McdonaldsDragonNapalmCounts[dataIndex];
currentDatasetSize = sizeof(McdonaldsDragonNapalmCounts) / sizeof(McdonaldsDragonNapalmCounts[0]);
break;
case PR_JFK_CUBA_INTERSECTIONALITY:
speed = PRJFKCubaIntersectionalityCounts[dataIndex];
currentDatasetSize = sizeof(PRJFKCubaIntersectionalityCounts) / sizeof(PRJFKCubaIntersectionalityCounts[0]);
break;
case GUANO_ISLANDS_USA:
speed = GuanoIslandsUSACounts[dataIndex];
currentDatasetSize = sizeof(GuanoIslandsUSACounts) / sizeof(GuanoIslandsUSACounts[0]);
break;
case MARVEL_VS_CARIBBEAN_GDP:
speed = (int) (MarvelVsCaribbeanGDP[dataIndex] * 10); // Convert to int for servo. Multiply by 10 for more granularity
currentDatasetSize = sizeof(MarvelVsCaribbeanGDP) / sizeof(MarvelVsCaribbeanGDP[0]);
break;
case AVG_TEMP_ON_SOCIAL_MEDIA_AVG_PERSON_04_23:
speed = avgTempOnSocialMediaAvgPerson0423[dataIndex];
currentDatasetSize = sizeof(avgTempOnSocialMediaAvgPerson0423) / sizeof(avgTempOnSocialMediaAvgPerson0423[0]);
break;
case AVG_TIME_NORTH_PLATFORM_SOUTH_USER:
speed = avgTimeNorthPlatformSouthUser[dataIndex];
currentDatasetSize = sizeof(avgTimeNorthPlatformSouthUser) / sizeof(avgTimeNorthPlatformSouthUser[0]);
break;
case ISMAEL_RIVERA_LAS_TUMBAS_TRUMPETS:
speed = ismaelRiveraLasTumbasTrumpets[dataIndex];
currentDatasetSize = sizeof(ismaelRiveraLasTumbasTrumpets) / sizeof(ismaelRiveraLasTumbasTrumpets[0]);
break;
case CUBAN_SOLDIERS_WOODY_RATIO:
speed = cubanSoldiersWoodyRatio[dataIndex];
currentDatasetSize = sizeof(cubanSoldiersWoodyRatio) / sizeof(cubanSoldiersWoodyRatio[0]);
break;


curatorial project w. Joiri Minaya and Nando Alvarez-Perez, Lydian Stater, 2023.
exhibition essay excerpt :
... then they added the front-facing lens, who thought that was a good idea? Should be up there with the mea culpas of the like and their pavlov alikes, knowing our susceptibility to mirrored illusions + gullibility to anything proclaimed as smart; add some default filters ( a little whiter here w. a slight at a tuck in), you know, bias as product add-on, : AirBrush a Facetune before sharing an InstaSnap, all for the sake of global hegemony…
…still haven’t mentioned dysmorphia, that would presumably be a shift in the lens, cognitive dissonance between what we see and what’s “there”, but I won’t state the obvious cause it isn’t..
There aren’t any facts outside the device, just +Lenses ©, the organic and their nots, all carrying their confirmation bias as production values.
The skeuomorphs catch up to us as the imgs & their archives become omniscient, their registries existing as subterranean streams criss-crossing privately owned terroirs. 35 mbs lighter every time they reemerge...
In the post-industrial media scape, what becomes of the img, not as phenomenon (yet), but as nomenclative? Has the same one not been in circulation long enough for it to be considered word by now? Doesn’t its digital citizenship bestow a new ontological state?
Minor shift : memetics. But wasn’t Richard Dawkins canceled? Ok.
Let’s reframe that (redundantly) : the image conundrum not being representation vs the real (reality is already virtual in any case) but a new paradigm for collective consensus w. image as its foundation.

200+ videos produced on mobile device from online content (ads, viral content, social media posts...) duration doesn't surpass 00: 00:03 secs each, 720 x 720, seamless loop; '20-'23
>

digital collages, dimensions vary
%20copy.jpg)
galvinized steel, plastic funnels, Blueberry Fanta (Blue 1), Dragon Fruit Fanta (“Vegetable Extract [For Color]”), Strawberry Fanta (Red 40), Orange Fanta (Yellow 6, Red 40), Grape Fanta (Red 40, Blue 1), Fanta Pineapple (Yellow 5, Yellow 6), Fanta Soda Bottles, 42 x 72 x 112 inches.



Composed of sourced material circumscribed to three media axes : Pepe the frog, cartoon frog coopted as a meme by the North American alt-right, Sol, name of a blockchain fueled utopia to be founded in Puerto Rico by a group of cryptocurrency expats, and the Coqui frog, a frog endemic to the Caribbean region, under threat by global warming, which is considered an invasive species in the Western United States & Hawaii.
2k vid + sound, 8:00 min; '20 (esque).


Clepsydra in the form of a deconstructed Caribbean landscape.
Plexyglass tanks, pvc, water, plantain tree, steel, cyclic timers, rocks, cement, wood, digital prints on waterproof adhessive paper, nylon string, flood bags, grow light.
installed @ Buffalo Institute of Contemporary Art

















































