# Ascii art in the console

**URL:** <https://openrndr.discourse.group/t/ascii-art-in-the-console/784>\
**Category:** Tutorials\
**Created:** [August 25, 2026, 4:53pm UTC](https://openrndr.discourse.group/t/ascii-art-in-the-console/784 "2026-08-25T16:53:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![abe](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/abe/32/700_2.png) [@abe](https://openrndr.discourse.group/u/abe)\
**Post date:** [August 25, 2026, 4:53pm UTC](https://openrndr.discourse.group/t/ascii-art-in-the-console/784/1 "2026-08-25T16:53:38Z")

</div>

Sometimes I log a number to the console with a simple `println()` and it may get lost among other texts. So today I did this:

```kotlin
fun asciiText(text: String, font: String = "doh") =
    Runtime.getRuntime().exec("pyfiglet -f $font $text").inputStream.bufferedReader().readText().trimEnd()

```

This only works if you have [`pyfiglet`](https://pypi.org/project/pyfiglet/) installed.

Then I use it like this:

```kotlin
println(asciiText(circles.size.toString()))
println(asciiText("circles.size", "cybermedium"))

```

and the output:

```ascii
> Task :p2026_08.LaserHoles01Kt.main()
kotlin-logging: initializing... active logger factory: Slf4jLoggerFactory
                                                          
                                                          
     999999999 222222222222222 888888888     
   99:::::::::99 2:::::::::::::::22 88:::::::::88   
 99:::::::::::::99 2::::::222222:::::2 88:::::::::::::88 
9::::::99999::::::92222222 2:::::2 8::::::88888::::::8
9:::::9 9:::::9 2:::::2 8:::::8 8:::::8
9:::::9 9:::::9 2:::::2 8:::::8 8:::::8
 9:::::99999::::::9 2222::::2 8:::::88888:::::8 
  99::::::::::::::9 22222::::::22 8:::::::::::::8  
    99999::::::::9 22::::::::222 8:::::88888:::::8 
         9::::::9 2:::::22222 8:::::8 8:::::8
        9::::::9 2:::::2 8:::::8 8:::::8
       9::::::9 2:::::2 8:::::8 8:::::8
      9::::::9 2:::::2 2222228::::::88888::::::8
     9::::::9 2::::::2222222:::::2 88:::::::::::::88 
    9::::::9 2::::::::::::::::::2 88:::::::::88   
   99999999 22222222222222222222 888888888
_________  _________  ________ _ _______ 
| | | __/ | | |___ [__[__ | / |___ 
| ___| | \ |___ | ___|___ ___] .___] | / __|___
[main] INFO org.openrndr.internal.gl3.ApplicationGLFWGL3 - 3.5.0 Wayland X11 GLX Null EGL OSMesa monotonic shared
[main] INFO org.openrndr.internal.gl3.ApplicationGLFWGL3 - OpenGL vendor: NVIDIA Corporation
[main] INFO org.openrndr.internal.gl3.ApplicationGLFWGL3 - OpenGL renderer: NVIDIA GeForce RTX 3080 Laptop GPU/PCIe/SSE2
[main] INFO org.openrndr.internal.gl3.ApplicationGLFWGL3 - OpenGL version: 4.6.0 NVIDIA 580.178.04
[main] WARN org.openrndr.internal.gl3.ShaderUniformsGL3 - Shader 'shade-style-custom:expansion-1590419418' does not have a uniform called 'bounds'

```

Hard to miss it now 😅

ps. [fonts here](https://www.figlet.org/examples.html)
