Having trouble reading this email? View it in your browser.
New This Week

The Ray Tracer Challenge »

Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch! It's easier than you think. In just a couple of weeks, build a ray tracer that renders beautiful scenes with shadows, reflections, and brilliant refraction effects. With each chapter, implement another piece of the puzzle in whichever language and environment you prefer, and do it entirely test-first. Recharge yourself with this project's immense potential for personal exploration, experimentation, and discovery.

A Swift Kickstart, Second Edition »

Newly updated! This best-selling book gets experienced programmers up to speed quickly with Swift. This new version is updated to Swift 5 and is filled with hands-on examples that you can follow along with on a Mac using Xcode or on an iPad using Swift Playgrounds. Learn the basics of Swift programming, including functions, variables, constants, and types, then expand your skills with classes, structs, enumerations, and protocols.

Recently Released:

 

Coming Up Next:

  • Programming WebAssembly with Rust: Unified Development for Web, Mobile, and Embedded Applications, in print
  • Programming Machine Learning: From Zero to Deep Learning, in beta
  • Web Development with ReasonML: Type-Safe, Functional Programming for JavaScript Developers, in print
The Ray Tracer Challenge
February 27, 2019

Pixar worked on their internal ray tracer, RenderMan, from 1984 until its first internal release in 1988. It was another seven years before they released their first feature-length animated film in 1995. RenderMan continues to be the company's primary rendering engine, with continual updates that take advantage of more powerful hardware. Building your own ray tracer might seem like an impossible challenge, even for experienced developers, but you may surprise yourself if you try. In The Ray Tracer Challenge, Jamis Buck guides you through the process, but the code and tests are your own, in the language of your choice. There's plenty of room to experiment and make the code your own.

Also, A Swift Kickstart, Second Edition has been updated for Swift 5.0. If you already own a copy from us, this is a free update.

The Ray Tracer Challenge: A Test-Driven Guide to Your First 3D Renderer

The renderer is a ray tracer, which means it simulates the physics of light by tracing the path of light rays around your scene. Each chapter presents a bite-sized piece of the puzzle, building on earlier chapters and setting the stage for later ones. Requirements are given language-agnostically; it's up to you to translate them into tests and code using whatever language you prefer. When the project is complete, you'll look back and realize you've built an entire system test-first.

There's no research necessary—all the necessary formulas and algorithms are presented and illustrated right here. Dive into intriguing topics from fundamental concepts such as vectors and matrices; to the algorithms that simulate the intersection of light rays with spheres, planes, cubes, cylinders, and triangles; to geometric patterns such as checkers and rings. Lighting and shading effects, such as shadows and reflections, make your scenes come to life, and constructive solid geometry (CSG) enables you to combine your graphics primitives in simple ways to produce complex shapes.

Play and experiment as you discover the fun of writing a ray tracer. Accept the challenge today!

In print and shipping from pragprog.com/book/jbtracer.

A Swift Kickstart, Second Edition: Introducing the Swift Programming Language

Here's what's new in A Swift Kickstart, Second Edition:

  • This is the Swift 5 / Xcode 10 release.
  • For the Pragmatic Programmer pdf, the navigation bug has been fixed.
  • I've added a mention of Raw Strings to the print() section.
  • One of the custom operators was changed from >>> to |> as it is now widely accepted for piping forward. >>> is still used for function composition.
  • I've updated the flatMap material to use the new name compactMap for the one that was renamed.
  • All of the code has been tested in Xcode 10 and on Swift playgrounds.

For sale at pragprog.com/book/d-dsswift.

Upcoming Author Appearances

  • 2019-02-28 Fred Hebert, CodeBEAM San Francisco
  • 2019-02-28 Andrea Leopardi, Code BEAM SF 2019
  • 2019-03-15 Johanna Rothman, New England Software Symposium
  • 2019-03-28 Kevin Hoffman, Rust LATAM 2019
  • 2019-04-09 Frances Buontempo, ACCU
  • 2019-04-09 Fred Hebert, Web à Québec
  • 2019-04-11 Frances Buontempo, ACCU
  • You Could Be a Published Author

    Is there a tech topic you are deeply passionate about and want to share with the rest of us? You could become a published Pragmatic Bookshelf author! Take a look at our pragprog.com/write-for-us page for details, including our 50% royalty (yes, for real!) and world-class development editors.

    Don't Get Left Out

    Are your friends jealous that you get these spiffy email newsletters and they don't? Clue them in that all they need to do is create an account on pragprog.com (email address and password is all it takes) and select the checkbox to receive newsletters.

    Are you following us on Twitter and/or Facebook? Here's where you can find us and keep up with the latest news and commentary, and occasional discounts:

    Tell your friends! Tweet this

    Follow us on Twitter: @pragprog, @pragpub, Andy Hunt @PragmaticAndy.

    Andy Hunt
    Publisher, Pragmatic Bookshelf

    Books • eBooks • PragPub Magazine • Audiobooks and Screencasts
    PragProg.com

    Manage your subscription using your account, or permanently unsubscribe here.
    Sent by the Pragmatic Programmers, LLC. • 9650 Strickland Rd Ste 103-255• Raleigh NC 27615