> For the complete documentation index, see [llms.txt](https://trizen.gitbook.io/sidef-lang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://trizen.gitbook.io/sidef-lang/programming_tasks/w/write_language_name_in_3d_ascii.md).

# Write language name in 3D ASCII

```ruby
var text = <<'EOT'
 
     ***
    *     *     *        **
    *           *       *
    *     *     *  ***  **
     ***  *  **** *   * *
        * * *   * ***** *
        * * *   * *     *
        * * *   * *     *
     ***  *  ****  ***  *
EOT
 
func banner3D(text, shift=-1) {
    var txt = text.lines.map{|line| line.gsub('*','__/').gsub(' ','   ')}
    var offset = txt.len.of {|i| " " * (shift.abs * i) }
    shift < 0 && offset.reverse!
    (offset »+« txt).join("\n")
}
 
say banner3D(text)
```

#### Output:

```

                        __/__/__/
                    __/               __/               __/                        __/__/
                   __/                                 __/                     __/
                  __/               __/               __/      __/__/__/      __/__/
                    __/__/__/      __/      __/__/__/__/   __/         __/   __/
                            __/   __/   __/         __/   __/__/__/__/__/   __/
                           __/   __/   __/         __/   __/               __/
                          __/   __/   __/         __/   __/               __/
                __/__/__/      __/      __/__/__/__/      __/__/__/      __/

```
