anchor.diff:  
     @override
     List<PathPoint> get points {
  -    double halfWidth = width / 2.0;
  -    double halfHeight = height / 2.0;
  +    double halfWidth = width / 2;
  +    double halfHeight = height / 2;
  +    double renderRadius = min(_radius, min(halfWidth, halfHeight));
       List<PathPoint> _rectanglePathPoints = <PathPoint>[];
       _rectanglePathPoints.add(StraightPathPoint.fromValues(
  -        Vec2D.fromValues(-halfWidth, -halfHeight), _radius));
  +        Vec2D.fromValues(-halfWidth, -halfHeight), renderRadius));
       _rectanglePathPoints.add(StraightPathPoint.fromValues(
  -        Vec2D.fromValues(halfWidth, -halfHeight), _radius));
  +        Vec2D.fromValues(halfWidth, -halfHeight), renderRadius));
       _rectanglePathPoints.add(StraightPathPoint.fromValues(
  -        Vec2D.fromValues(halfWidth, halfHeight), _radius));
  +        Vec2D.fromValues(halfWidth, halfHeight), renderRadius));
       _rectanglePathPoints.add(StraightPathPoint.fromValues(
  -        Vec2D.fromValues(-halfWidth, halfHeight), _radius));
  +        Vec2D.fromValues(-halfWidth, halfHeight), renderRadius));
   
       return _rectanglePathPoints;
     }
  
positive.code: import "actor_artboard.dart";
  import "actor_node.dart";
  import "math/vec2d.dart";
  import "stream_reader.dart";
  import "actor_path.dart";
  import "path_point.dart";
  import "actor_component.dart";
  
  const double CircleConstant = 0.55;
  
  class ActorRectangle extends ActorProceduralPath {
    double _radius = 0.0;
  
negative.code:   @override
    void invalidatePath() {}
  
    @override
    ActorComponent makeInstance(ActorArtboard resetArtboard) {
      ActorRectangle instance = ActorRectangle();
      instance.copyRectangle(this, resetArtboard);
  