A Go implementation of Andy Sloan's donut.c, showing a rotating toroid in the terminal rendered with characters
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md
donut.go
license.txt

README.md

donut.go is a Go implementation of Andy Sloan's donut.c.

It demonstrates:

  • 3d rendering in a terminal window with ascii characters
  • determining the terminal screen size
  • using a channel as a timer

Screenshot

	        @@@@@$$             
	      @@@$$#####$$          
	    $@$$$##*!*!**#$         
	   #$$$$#*!===!!!*##        
	   $$$$#*!=;:::;=!*##       
	  #$$$$#*=;~-,-~:=**##      
	  #$$$#**=:-  .-:=*###*     
	 *#$$$##!=~    .~=*##$#     
	 *#$$$##*=~     -;*#$$#=    
	 *######*!:     -=*#$$#!    
	 !*#####**=     ~!#$$$#*    
	 !*######**=    ;#$$$$#!    
	 =**#######*!  =#$@@@$#!    
	 =!**###########$@@@@$#!    
	 :!!**######$$$$$@@@$#*;    
	  =!!**#####$$$$$$$$$#!;    
	  :=!****####$$$$$$##*=     
	   :=!!!***########**=:     
	   -;;=!!!**********!;,     
	    ,:;==!!!*!!!!!!!;-      
	     ,~;;====!====;:-       
	       -~:;;;;;;:~~         
	         .---~~-,           

Usage

To run:

$ go run donut.go

Notes

The code was tested on Mac OSX Mountain Lion. The Go Syscall defines appear portable, but your milage may vary.

License

The code is available at github GaryBoone/GoDonut under MIT license.