/GoDonut

A Go implementation of Andy Sloan's donut.c, showing a rotating toroid in the terminal rendered with characters

Primary LanguageGoMIT LicenseMIT

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.