Posts – Clojure Civitas
Cofinite sets with one sentinel key: all set operations reduce to three map primitives.
Mar 21, 2026
Jonathan Claggett
Building a composable plotting API in Clojure, from views and layers to scatterplot matrices
Mar 3, 2026
Daniel Slutsky
Clojure-mcp, created by Bruce Hauman, connects LLMs to a Clojure nREPL via the Model Context Protocol (MCP). It provides specialised tools — such as clojure_eval — that let…
clojure_eval
Feb 17, 2026
Matthias Buehlmaier, Annie Liu
This post explains how to visualize data with violin plots, using Vega-Lite and Clojure.
Feb 3, 2026
Mike Travers
This is Part 2 of a tutorial, Part 1 is here.
Feb 2, 2026
Procedural generation of volumetric clouds using different types of noise
Jan 27, 2026
Jan Wedekind
I believe strongly in the importance of preserving knowledge and sharing it. A book that I find important and in need of better preservation and dissemination is The Smile…
Jan 25, 2026
Elango Cheran
Progressive tutorial building scatter plot matrices step-by-step with thi.ng/geom.viz
Jan 13, 2026
Exploring Hash Fusing via Upper Triangular Matrix Multiplication.
Jan 12, 2026
Using Clay’s new webserver features and Datastar to build a chart with realtime server-push updates
Jan 10, 2026
Timothy Pratley
A query-first approach makes relational data available for visualization.
Jan 8, 2026
A Design Exploration for a plotting API
Dec 28, 2025
Exploration from the Scicloj DSP Study Group
Dec 16, 2025
Driving Plotly to Update a Chart with New Points.
Dec 13, 2025
Harold
Images are perfect for learning dtype-next because they’re typed numerical arrays with clear visual feedback. Unlike generic sequences where numbers are boxed, dtype-next…
Dec 10, 2025
This document shows several different methods for handling COGs in JVM Clojure without reliance on either bindings to GDAL (Geospatial Data Abstraction Library) or Python.…
Dec 7, 2025
Luke Zeitlin
The 1D linear advection equation:
Dec 6, 2025
This Clay notebook has its Scittle nRepl built in, so you can connect your editor to its ClojureScript side.
Dec 4, 2025
Markus Agwin Kloimwieder
Josef Stefan’s fourth-power law, written in both greek and english.
Nov 27, 2025
Handling surprises.
Nov 21, 2025
William Proffitt
Emmy can wear a different apparel should the occasion demand it.
Nov 19, 2025
Timothy Pratley recently wrote about the pursuit of meaning on Civitas. Before that; I argued that Civitas is a great place to grow explanations together.
Nov 16, 2025
Teodor Heggelund
Test your knowledge about Clojure Conj 2025! View photos from the conference and guess which statement is true. An interactive trivia game built with ClojureScript and Scittle.
Nov 15, 2025
Burin Choomnuan
Why we need to share our ideas, and some suggestions on how
Nov 14, 2025
The first creative coding conference hosted by Scicloj
Siyoung Byun, Daniel Slutsky
Build a complete PDF viewer in the browser! Navigate PDFs, search text, adjust zoom, rotate pages, and switch themes - all without build tools or server-side rendering!
Exploring WAV-files for DSP in Clojure.
Nov 13, 2025
Adrian Bendel, Daniel Slutsky
Clay, making sharable documents, and how to publish them.
Nov 12, 2025
Learn how to customize Tableplot visualizations using substitution parameters.
Nov 11, 2025
Getting to know our host city for Clojure/conj 2025. We dive into 311 service data to see what’s on the minds of Charlotte’s citizens and get a taste of our hands-on data analysis workshop.
Nov 10, 2025
Master browser-native sound synthesis! Build a complete audio playground with sound effects, musical instruments, drum machines, and beat sequencers - all without external audio files or build tools!
Starting the journey of DSP in Clojure.
Eugen Nesbakken, Daniel Slutsky
Recreate the classic Galaga arcade game with formation patterns, swooping enemies, and intense space combat - all running in the browser with zero build tools!
Nov 9, 2025
Create a classic Asteroids arcade game with physics simulation, collision detection, canvas graphics, and retro sound effects - now with mobile touch controls! All running in the browser with zero build tools!
Create an interactive Simon-style memory game that runs entirely in the browser using ClojureScript and Scittle - no build tools required!
Nov 8, 2025
Build a QR code scanner that runs entirely in your browser using Scittle and ClojureScript - no build tools, no backend, just pure browser magic!
Learn to build weather applications using the free NWS API with Scittle and ClojureScript - no API key required!
Nov 7, 2025
Run Python code directly in the browser using Pyodide with Scittle and ClojureScript
Nov 5, 2025
2D Geometric structures
Tomasz Sulej
Create interactive presentation systems without build tools using Scittle and Reagent
Nov 4, 2025
reflections from a personal learning journey
Nov 1, 2025
Rendering vector field based 3D surfaces.
Oct 27, 2025
Quickstart for Clojurians
Daniel Szmulewicz
Elements of a high performance schema validation library
Oct 18, 2025
Ben Sless
We built this code in the Civitas Workshop. We selected Tableplot as the topic to write about.
Oct 17, 2025
What is Clay, why use it, and how to use it.
Oct 16, 2025
This example demonstrates how to create and visualize a Bell state circuit and how to simulate a quantum computer executing the circuit, using both an ideal simulator and a…
Ludger Solbach
A Publisher’s Journey into Data-Driven Book Sales – exploring how association rule mining can transform business insights using the SciCloj stack.
Oct 13, 2025
Tomáš Baránek
This notebook walks through the steps required to create an interactive map widget displaying simple band-ratio algorithms for water quality analysis using cloud-optimized…
Sep 26, 2025
Produce a “pronunciation” of a sequence of numbers. For example, [1 1] is pronounced as [2 1] (“two ones”), which in turn is pronounced as [1 2 1 1] (“one two, one one”).…
Sep 25, 2025
Using LWJGL’s OpenGL bindings and Fastmath to render data from NASA’s CGI Moon Kit
Sep 24, 2025
A portfolio analysis program with market narratives generated by an LLM.
Sep 20, 2025
Edward Widjaja, Tanvi Nagar, Matthias Buehlmaier
This blog post presents a functional, reproducible implementation of rolling regression in Clojure to estimate time-varying alpha(α) and beta(β) for student-managed…
Sep 16, 2025
The following examples are taken from the MIT open-access book Structure and Interpretation of Classical Mechanics (SICM).
Sep 10, 2025
A familiar image is re-discovered in a sequence of complex numbers, and the binary bits of natural numbers.
How to create notebooks with secrets, large files, and slow processes.
Sep 9, 2025
Build physics simulations from words with Instaparse, sans compilation.
Sep 7, 2025
Explain complex concepts with mermaid.js
Sep 5, 2025
Emil Bengtsson
In this article I look at the extent of Clojure support for some popular on-cluster data processing tools that Clojure users might need for their data engineering or data…
Sep 4, 2025
Alex Coyle
Transform your Clojure code into a beautiful, journal-style PDF, complete with math, charts, and images.
Sep 3, 2025
A simple exploration to create time-series data visualization
Aug 30, 2025
Siyoung Byun
On the joy of building, the challenge of writing, and how to make blogging more fun and productive for Clojure developers.
Aug 19, 2025
Looking at leveraging cesium for geospatial visualization.
Aug 13, 2025
joinr
A lightweight way to cook with Clay and Scittle
tree-seq
Step-by-step development of a depth-first search, using tree-seq, to solve a classic puzzle.
Aug 11, 2025
Selective interaction with a persistent REPL sidebar inside your Clay documents
Aug 5, 2025
Macroexpand 2025: A pair of conferences by Scicloj: Macroexpand-Noj and Macroexpand-Deep. Call for proposals is open!
Aug 4, 2025
Daniel Slutsky, Siyoung Byun
How to add UI components and ClojureScript to your Clojure namespace
Aug 1, 2025
Did you know your blog post can be a slideshow?
Jul 30, 2025
A key idea of Lisp is that all syntax is a list
Jul 20, 2025
A quick exploration to simulate a classic fluid dynamics equation in Clojure using Java arrays.
Jul 15, 2025
I’m new to Clojure. I asked my new friend Timothy how to make a square appear on the screen:
Jul 9, 2025
Matt Kleinsmith
A couple of quick ideas about visualizing data, especially with regard to comparison.
Jun 24, 2025
In the last post on transliteration, I introduced the idea of transliteration as implemented in programming, and pointed out that the process of transforming text is more…
Jun 22, 2025
Sharing ideas and pirate treasure with ClojureCivitas.
Jun 18, 2025
Transliteration is about systematically converting the way in which text encodes language (or information) from one writing system (or convention or format) to another.
Jun 8, 2025
A simple probability puzzle turns into a journey through triangular numbers and tessellated hexagons.
Jun 5, 2025
Most Clojure tutorials start out with sequence functions like map, filter etc, and then explain how to avoid some of the problems that lazy sequences can cause. Transducers…
map
filter
May 31, 2025
Sean Corfield
The SciNoj Light #1 Conference brought together Clojure enthusiasts, data scientists, and researchers for an engaging exploration of data analysis stories. The event…
May 28, 2025
Adapts the Sieve of Eratosthenes to prime factorize numbers through n.
n
Tim Schafer
The Clojure default for printing objects is noisy. Clojure’s print-method for Object delegates to clojure.core/print-object
print-method
Object
clojure.core/print-object
May 26, 2025
Welcome back code champs, number ninjas, and data divers to our first episode of Beating Code Interviews with Stupid Stuff. People often send me emails asking, “How can I…
May 25, 2025
Chris Houser, Timothy Pratley
Transcript of Noj Reload Executable
May 6, 2025
Long before he flew too high, before the wax gave way and the world remembered only his fall, Icarus flew low. They often leave out this part of his misadventures, when…
May 1, 2025
Daniel Slutsky, Timothy Pratley
Welcome to Asynctopolis, a city where agents act on signals, not orders. Here, unseen agents pass messages, track patterns, and sound alarms when the moment calls. No one…
Alex Miller, Timothy Pratley
I’m on the hunt for a simple tool to build simple websites. In my last post I explained a bit about what I mean by that and why I find the existing options unsatisfactory.…
Apr 28, 2021
Kira Howe
I am perpetually annoyed at how frustrating it is to build simple websites. Fair warning, this post is a bit ranty. I will explore technical solutions to these problems in a…
Apr 24, 2021
There is something conspicuously missing from software development education. As developers, we learn all about how to write, organize, design, share, use, and test…
Mar 10, 2021
Originally published on February 18, 2021
Feb 18, 2021
This is the second post in a series about things the 2020 pandemic has taught me. The first was that journalism is important. This one is about appreciating my friends and…
Feb 7, 2021
I just came across this TikTok video on Twitter and it broke my heart. It’s a woman crying, utterly dismayed at how unfair life is, begging the totally legitimate question…
Jan 30, 2021
I get asked a lot for advice on becoming a software developer. I didn’t study anything related to software in university, but now it’s what I do for a living. I also spent…
Jan 19, 2021
I made a goal for myself in January 2020 to stop using Google products by the end of the year. That might sound like way too generous a timeline, but Google owned pretty…
Jan 5, 2021
I’m really excited that 2020 is over! This was the hardest year of my life so far. It was also the first one that was worse and not better than all the previous ones, which…
Dec 31, 2020
Update: I recently switched to using Github Actions to run my tests because I started getting git auth failures trying to fetch git deps on CircleCI. Learning the random…
Dec 30, 2020
One of my goals for 2020 was to stop using Google’s products. There are a lot of reasons why, but that’s not the point of this post. I found out about Nextcloud last month…
Dec 19, 2020
A stellar example of virtual conferencing done well
I went to a virtual conference this weekend called BarCamp Philly and had a really good time. The way they ran the conference was new to me. They somehow made the experience…
Dec 7, 2020
When I started hanging in out in religious circles in my late twenties for the first time in my life, I had a lot to learn. Not just about the diversity and depth of…
Oct 30, 2020
This is the first post in a series on things the 2020 pandemic has taught me. It’s been by far the weirdest and hardest thing I’ve experienced so far in my life. It was a…
Oct 15, 2020
I grew up as an outsider to religion. I never considered it a worthwhile pursuit and spent quite a few years as an outspoken critic. As an adult I began to explore it for…
Sep 16, 2020
What are our ethical obligations to each other? It’s a complicated question. Living in a civilised society implies abiding by a set of shared rules. Some are explicit like…
Sep 2, 2020
I first got into programming because I wanted to make my own websites. Back then all it took was two files, an index.html and a style sheet. I recently decided to take up…
index.html
Aug 3, 2020
What is the point of going to church? I ask myself this question weekly. I didn’t grow up going to any sort of regular religious services, but I’m becoming increasingly…
Dec 10, 2019
No matching items